Orbitwrite has a command line now. It runs on the same API the app does, so a post you send from the terminal lands on the same calendar, in the same slots, behind the same approval rules as everything else.
npm install -g @orbitwrite/cli
orbitwrite login
orbitwrite post "Shipped it." --all --next
Sign in with your browser
orbitwrite login opens your browser, asks which workspace to use if you're in several, and asks you to approve access. There's no key to copy. The sign-in is saved in ~/.config/orbitwrite/credentials.json, readable only by you, and it refreshes itself, so you sign in once per machine.
The CLI shows up as "Orbitwrite CLI" under Settings, MCP, Connected apps, and Disconnect there cuts it off straight away. orbitwrite logout signs out from the terminal end.
Scripts and CI still use a workspace API key. Set ORBITWRITE_API_KEY or pass --api-key, and a key always wins over a stored sign-in.
Posting and scheduling
Every post says when it goes out, with one of --now, --at, --next, --draft or --plan.
orbitwrite post "Morning all" -c acc_1 --at "tomorrow 9am"
orbitwrite post "Shipped it." --all --next
orbitwrite post "Launch post" -c acc_1 --next --plan
--at takes plain English: 1pm, wednesday, next friday 2pm, in 2 hours. Times are read in your workspace timezone and printed back, so you can see what it picked before anything goes out. --next takes the earliest slot that's free on every channel you named, and --plan holds that slot without publishing.
Everything else it does
orbitwrite whoami The workspace you're working in
orbitwrite channels Connected channels
orbitwrite posts Recent posts, filterable by status and score
orbitwrite score <post-id> The post score and its checklist
orbitwrite plan <post-id> Hold a slot for a saved post
orbitwrite slots The weekly posting times
orbitwrite inbox Replies and mentions, with reply, resolve and snooze
orbitwrite hashtags Saved hashtag sets and each network's limits
orbitwrite cover <post-id> The cover frame for a Reel or TikTok
orbitwrite alt-text <media> Suggested alt text for an image
orbitwrite autodm Auto-DM campaigns
Add --json to any command and it prints that command's result as JSON, which keeps jq happy:
orbitwrite channels --json | jq -r '.[].id'
Underneath it is the SDK, if you'd rather build this into something, and the CLI page has the full command reference.
