# 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)