The grozro CLI
The full drafting and approval loop from your terminal. Zero dependencies, single binary, Node 20+.
Install & login
npm install -g grozro
grozro login # shows a code, you approve it in the app — donegrozro login opens your browser to approve a one-time code — no copy-pasting keys. Non-interactive environments (CI, agents) can pass --api-key ak_… from app.grozro.com → Settings → Developer access. Credentials land in ~/.grozro/config.json (0600); point at another stack with --api-url https://….
Commands
| Command | What it does |
|---|---|
grozro login | Browser login: approve a code in the app. CI/agents: --api-key ak_… |
grozro overview | Workspace snapshot: profile, channels, drafted queue, learnings |
grozro batch [--count 6] [--focus …] | Draft a batch of ready-to-post content (async — poll the batch) |
grozro batches list | List recent batches |
grozro batches get <id> | One batch with its drafted items (settles in-flight generation) |
grozro article <topic…> [--outline …] [--length short|medium|long] | Draft one long-form X article (async — poll GET /articles) |
grozro articles [get <id>] | List long-form articles |
grozro articles get <id> | One article |
grozro queue [--status drafted] | List content items by status |
grozro approve <id> [--body …] | Approve a drafted item (optional edited body; articles may retitle) |
grozro reject <id> [--reason …] | Reject a drafted item |
grozro item posted <id> [--url …] | Mark an approved item posted (manual publish path) |
grozro item schedule <id> --at <iso8601> | Schedule an approved item; the worker posts it when due |
grozro post <id> | Post an approved item to X immediately (articles go out as one long post) |
grozro whoami | Connected X account state |
grozro connection disconnect | Disconnect the X account |
grozro accounts [set-default <id>] | List connected X accounts (multi-account) |
grozro accounts set-default <id> | Make an account the default new content posts from |
grozro profile update [--goal …] [--voice …] [--json {…}] | Update the growth profile (voice, goal, audience…) |
grozro channels update <id> [--status active|inactive] [--json {…}] | Update a platform channel (status, format rules, cadence) |
grozro audit | Run an analytics audit (from synced metrics by default) |
grozro audits get <id> | Audit result with extracted learnings |
grozro learnings [add|retire] | List learnings (what worked / flopped / hypotheses) |
grozro learnings add --kind worked|flopped|hypothesis --note … | Add a learning |
grozro learnings retire <id> | Retire a learning |
grozro engage list [--status …] | List engagement suggestions/drafts (replies, quotes) |
grozro engage create <url|id> --action reply|quote|repost|like | Draft an engagement against an X post |
grozro engage approve <id> [--body …] | Approve a drafted engagement |
grozro engage reject <id> [--reason …] | Reject a drafted engagement |
grozro engage execute <id> | Execute an approved engagement on X |
grozro targets list | List target accounts |
grozro targets add <handle> [--category …] [--priority 1-3] | Add a target account to watch |
grozro targets update <id> [--status active|paused] [--priority 1-3] | Update or pause a target |
grozro signals list | List open signals from watched targets |
grozro signals dismiss <id> | Dismiss a signal |
grozro signals engage <id> --action reply|quote|repost|like | Engage a signal (drafts a reply/quote) |
grozro products list | List products available for self-promotion weaving |
grozro products add --name … --one-liner … [--url …] | Add a product |
grozro products update <id> [--status active|archived] [--json {…}] | Update or archive a product |
grozro hooks | Hook-pattern library with usage stats |
grozro reports list | List weekly reports |
grozro reports create | Generate a weekly report |
grozro experiments list | List experiments |
grozro experiments create --name … --hypothesis … | Create an experiment |
grozro experiments conclude <id> --result … | Conclude an experiment with a verdict |
grozro rules list [update|pause-all|resume-all|runs] | List automation rules |
grozro rules update <id> [--status active|paused] [--json {…}] | Update an automation rule |
grozro rules runs [--rule-id <id>] | List recent automation rule runs |
grozro rules pause-all | Pause all automation (kill switch) |
grozro rules resume-all | Resume automation |
grozro calendar | List scheduled/approved items (alias for `queue --status approved`) |
A typical session
$ grozro batch --count 6 --focus "launch week"
$ grozro queue
$ grozro approve 3f2a… --body "sharper hook"
$ grozro article "why shipping weekly beats shipping perfect" --length long
$ grozro articles
$ grozro post 3f2a…