# Sienna > Sienna is an agent-friendly marketing CLI: AI agents (Claude Code, Codex, or > any shell-capable agent) install it, authenticate through a hosted browser > handoff, and query Meta Ads and Google Ads with stable JSON contracts and > exit codes. Humans only paste one prompt and click one login link. ## Install and learn - Primary macOS install: download the latest notarized DMG from https://sienna.work/#download, drag Sienna to Applications, open `/Applications/Sienna.app`, and finish Setup. - The app-owned CLI launcher points to `/Applications/Sienna.app/Contents/MacOS/sienna`; Sparkle updates the complete app bundle. - Install the native Plugin: `sienna setup agent --claude` or `sienna setup agent --codex` - Standalone CLI fallback for supported macOS, Linux, and managed POSIX terminals: ```sh install_script="$(mktemp)" && trap 'rm -f "$install_script"' EXIT && curl --proto '=https' --proto-redir '=https' -fsSLo "$install_script" https://get.sienna.work/install.sh && bash "$install_script" ``` - Standard Skill source: https://get.sienna.work/plugins/marketplace/plugins/sienna/skills/sienna/SKILL.md - Onboarding manifest: https://get.sienna.work/plugins/onboarding.json ## Claude Cowork - Open Customize, choose Plugins, then Add marketplace. - Add `https://github.com/sienna-work/sienna-plugin` and install `sienna@sienna`. ## Authenticate (headless-friendly) - `sienna auth login --no-browser --persist --json` prints a verification URL; show it to the human, then resume with `sienna auth login --resume --json`. - Connect ad providers with `sienna ads provider connect meta --no-browser --persist --json`, `sienna ads provider connect google --no-browser --persist --json`, or `sienna ads provider connect adjust --no-browser --persist --json`, then use the matching `--resume --json` command. - `sienna auth status --json` reports exactly what is missing. ## Query and Jobs - Accounts and Adjust apps: `sienna ads accounts list --json`; repeat `--platform meta|google|adjust` to filter. - Structured metrics: `sienna ads metrics query --platform --account-id --arguments-json '' --json`. - Natural-language metrics: `sienna ads metrics ask "" [--platform ...] [--detach] --json`. - Public research: `sienna research ask "" [--scope market|brand|competitor] [--depth quick|standard] [--detach] --json`. - Every action returns a top-level `job_id`; use `sienna jobs list|status|wait|answer|cancel|delete|restore|purge` for its lifecycle. - Contract: stdout is data, stderr is diagnostics; exit codes 0 ok / 2 input / 3 not found / 4 auth / 5 network; errors carry recovery hints. ## Endpoints - Homepage: https://sienna.work - Downloads and agent instructions: https://get.sienna.work (latest.json, install.sh, /vX.Y.Z/ binaries) - Sign-in and account connection: https://auth.sienna.work (privacy: /privacy, data deletion: /data-deletion)