CLI reference

Every statuz command with its flags, MCP tool name, where it runs and examples. Generated from the command catalog.

Posts

statuz posts createWrite a post or thread; publish now, schedule it or keep a draft

Each --text is one post of a thread. --media takes file paths or media ids and attaches to the first post; use --input with a `thread` array to put media on later posts. Text is checked against every destination before anything is saved, so a post never fails later for being too long. Without --at it publishes right away and returns the links.

MCP posts_createwriteLocal and Cloud
--text
Post text; repeat for a thread · string · repeatable
--media
Image or video path, or a media id, for the first post · string · repeatable
--thread
The whole thread with media per post (instead of --text) · object · repeatable
--to
Account id, handle or platform name (x, bluesky, mastodon, linkedin = its default account). Default: every default account · string · repeatable
--at
When to publish: ISO time or plain words ("tomorrow 9am", "in 2 hours", "fri 17:30"). Without it the post goes out now · string
--timezone
IANA time zone for --at words (default: this machine's; on Statuz Cloud, the org's) · string
--quote
URL of a post to quote (X, Bluesky) · string
--draft
Save without publishing or scheduling · boolean · default false
--watermark
Statuz Cloud: stamp the org's logo on the images and videos (default: the org's setting) · boolean
--group
Joins this post to its other halves in other homes (the Mac app sends one per home) · string
Examples
statuz posts create --text "Shipping v2 today" --to x --to bluesky
statuz posts create --text "1/ A thread" --text "2/ that keeps going" --at "tomorrow 9am"
statuz posts create --text "New screenshots" --media ./shot.png --to mastodon --draft
echo '{"thread":[{"text":"Hello","media":[]}],"to":["linkedin"]}' | statuz posts create --input -
statuz posts listList posts, soonest first (scheduled) or newest first (the rest)
MCP posts_listreadLocal and Cloud
--status
Only these statuses (repeatable) · draft | scheduled | publishing | published | failed | missed | held · repeatable
--platform
Only posts going to it · x | bluesky | mastodon | linkedin
--from
Scheduled at or after (ISO or words) · string
--until
Scheduled before (ISO or words) · string
--limit
number (1–500) · default 50
Examples
statuz posts list --status scheduled
statuz posts list --from today --until "next monday"
statuz posts getOne post with every destination and its result
MCP posts_getreadLocal and Cloud
--id
string · required
Examples
statuz posts get --id p_k3m9x2abqe
statuz posts editChange a draft, scheduled, missed or failed post

Fields you pass replace the old ones. Published posts can’t be edited. Moving --at into the past publishes on the next tick.

MCP posts_editwriteLocal and Cloud
--id
string · required
--text
Replace the thread text · string · repeatable
--media
string · repeatable
--thread
object · repeatable
--to
Account id, handle or platform name (x, bluesky, mastodon, linkedin = its default account). Default: every default account · string · repeatable
--at
When to publish: ISO time or plain words ("tomorrow 9am", "in 2 hours", "fri 17:30"). Without it the post goes out now · string
--timezone
IANA time zone for --at words (default: this machine's; on Statuz Cloud, the org's) · string
--quote
URL of a post to quote (X, Bluesky) · string
--draft
true parks it as a draft; false schedules it again · boolean
--watermark
Statuz Cloud: stamp the org's logo on the images and videos (default: the org's setting) · boolean
Examples
statuz posts edit --id p_k3m9x2abqe --at "fri 10:00"
statuz posts edit --id p_k3m9x2abqe --text "Fixed typo"
statuz posts deleteDelete a post: from the platforms it went out to, then from Statuz

Every published part of the thread is deleted on its platform first. If a platform refuses, the post stays in Statuz with only what is left, so deleting again retries it.

MCP posts_deletewriteLocal and Cloud
--id
string · required
--keep-on-platforms
Only delete it from Statuz; published copies stay up · boolean · default false
Examples
statuz posts delete --id p_k3m9x2abqe
statuz posts delete --id p_k3m9x2abqe --keep-on-platforms
statuz posts publishPublish now: a draft, a scheduled or missed post, or retry failures

A failed post only retries the destinations that failed; the ones that went out are not posted twice.

MCP posts_publishwriteLocal and Cloud
--id
string · required
Examples
statuz posts publish --id p_k3m9x2abqe
statuz posts recentAn account's latest posts on the platform, to quote or reply to
MCP posts_recentreadLocal and Cloud
--account
Account id, handle or platform name · string · required
--limit
number (1–50) · default 10
Examples
statuz posts recent --account bluesky --limit 5

Accounts

statuz accounts listConnected accounts and how their sign-ins are doing
MCP accounts_listreadLocal and Cloud
--platform
x | bluesky | mastodon | linkedin
Examples
statuz accounts list
statuz accounts list --platform x
statuz accounts connectConnect an account by signing in with the platform in your browser

Locally the sign-in returns to 127.0.0.1:3851 and the tokens go into the OS keychain. X and LinkedIn use your own developer app: set its keys first with `statuz config set x.client-id …` (see `statuz help config`). Bluesky and Mastodon need nothing.

MCP accounts_connectwriteLocal and Cloud
--platform
x | bluesky | mastodon | linkedin · required
--server
Mastodon instance (mastodon.social) or your Bluesky handle, for a custom server · string
--no-browser
Open the browser (--no-browser prints the link) · boolean
Examples
statuz accounts connect --platform bluesky
statuz accounts connect --platform mastodon --server fosstodon.org
statuz accounts removeDisconnect an account and delete its tokens

Scheduled posts that only went to this account are kept as drafts.

MCP accounts_removewriteLocal and Cloud
--account
Account id or handle · string · required
Examples
statuz accounts remove --account @statuz_app
statuz accounts defaultMake an account the default for its platform
MCP accounts_defaultwriteLocal and Cloud
--account
Account id or handle · string · required
Examples
statuz accounts default --account stewan.io
statuz accounts moveMove an account up or down the list

The list is kept in this order everywhere it shows: `statuz accounts list`, the Mac app and the composer.

MCP accounts_movewriteLocal and Cloud
--account
Account id or handle · string · required
--position
Its place in the list: 1 is the top; past the end is the end · number (1–9007199254740991) · required
Examples
statuz accounts move --account @you.bsky.social --position 1
statuz accounts checkCheck every sign-in now (the daemon also does it before posts are due)
MCP accounts_checkreadLocal and Cloud
--account
Only this account · string
Examples
statuz accounts check

Media

statuz media addCopy an image or video into Statuz and get an id to attach

JPEG, PNG, WebP, GIF, MP4 and MOV. The file is copied, so moving or deleting the original later is fine. Statuz never edits media; platform limits are checked when a post is created.

MCP media_addwriteLocal and Cloud
--path
File to add · string · required
--alt
Alt text for screen readers · string
Examples
statuz media add --path ./shot.png --alt "The new composer"
statuz media listMedia added to Statuz, newest first
MCP media_listreadLocal and Cloud
--limit
number (1–500) · default 50
Examples
statuz media list
statuz media editChange the alt text of a media item
MCP media_editwriteLocal and Cloud
--id
string · required
--alt
string · required
Examples
statuz media edit --id m_x8k2pq4nre --alt "A cat on a keyboard"
statuz media removeDelete a media item that no unpublished post uses
MCP media_removewriteLocal and Cloud
--id
string · required
Examples
statuz media remove --id m_x8k2pq4nre

Config

statuz config listEvery setting in ~/.statuz, including your own X and LinkedIn app keys
MCP config_listreadLocal only
Examples
statuz config list
statuz config getOne setting
MCP config_getreadLocal only
--key
string · required
Examples
statuz config get --key timezone
statuz config setChange a setting; secrets go to the OS keychain
MCP config_setwriteLocal only
--key
string · required
--value
string · required
Examples
statuz config set --key x.client-id --value <client-id>
statuz config set --key linkedin.client-secret --value <secret>
statuz config set --key timezone --value America/Sao_Paulo
statuz config unsetClear a setting
MCP config_unsetwriteLocal only
--key
string · required
Examples
statuz config unset --key linkedin.client-secret

Setup and daemon

statuz initSet up ~/.statuz, write the agent guide and connect your agent apps

Writes AGENTS.md and the Statuz skill, then finds the agent apps on this machine (`statuz agents list` names every one Statuz knows). In a terminal you pick which ones to connect from a list; --agents connects every one found without asking, --no-agents skips the list. Safe to run again.

MCP initwriteLocal only
--agents
Connect every installed agent app (default: ask in a terminal, otherwise only report) · boolean
Examples
statuz init
statuz init --agents
statuz init --no-agents
statuz startStart the local daemon that publishes scheduled posts

Runs in the background and comes back after a reboot (launchd on macOS, a systemd user unit on Linux). It only runs on a personal computer: virtual machines and machines without a desktop session are refused; use Statuz Cloud there.

MCP startwriteLocal only
--no-service
Install the login service (--no-service runs it once) · boolean
Examples
statuz start
statuz stopStop the local daemon (scheduled posts wait until it starts again)
MCP stopwriteLocal only
Examples
statuz stop
statuz statusIs the daemon running, what is next, and what needs you
MCP statusreadLocal only
Examples
statuz status
statuz logsThe last lines of the daemon log
MCP logsreadLocal only
--lines
number (1–5000) · default 100
Examples
statuz logs --lines 50
statuz openShow the person a post or a page: in the Mac app when it is installed, else on statuz.cloud

Opens it on this computer and says where. This computer's posts show in the Mac app only. Statuz Cloud opens nothing by itself: `statuz open --cloud` opens its link here, and an agent working on Statuz Cloud gives the person `links.web`.

MCP openreadLocal and Cloud
--post
Post id (statuz posts list) · string
--page
A page instead of a post (billing is Statuz Cloud only) · queue | compose | accounts | settings | billing
Examples
statuz open --post p_k3m9x2abqe
statuz open --page queue --cloud
statuz feedbackSend feedback or a bug report to the Statuz team

Agents: send it when something confuses you, fails, or could be better, with the command and error. It reaches the team; nobody else sees it. Read-only credentials may send it.

MCP feedbackreadLocal and Cloud
--message
string · required
--kind
bug, idea, confusing, praise or other · bug | idea | confusing | praise | other · default "other"
--command
The command it is about, like posts.create · string
--error
The error it gave · string
--task
What you were trying to do · string
--agent
Your agent, if you are one · string
--model
Your model, if you are one · string
--email
Where we can reply, when not signed in · string
--client
object
--page
object
--screenshot
A JPEG or PNG data URL; the CLI takes a file: --screenshot shot.png · string
Examples
statuz feedback --message "Scheduling from Raycast would be great" --kind idea
statuz feedback --kind bug --command posts.create --error "media too large" --message "A 40 MB video was refused"

Agent apps

statuz agents listAgent apps on this machine and whether Statuz is connected to them

Apps with a terminal (Claude Code, Codex, Cursor, VS Code, Copilot CLI, Windsurf, Gemini CLI, OpenCode, Amp, Goose, Cline, Kilo Code, Factory Droid, Qwen Code, Crush, Warp, Zed, Junie, Mistral Vibe, Kimi Code, Qoder, OpenHands, Pi, Letta Code and Trae) get the Statuz skill in a skills folder they read; apps without one (Claude Desktop, LM Studio, Jan, AnythingLLM and BoltAI) get an MCP server entry.

MCP agents_listreadLocal only
Examples
statuz agents list
statuz agents addConnect Statuz to your agent apps (all the installed ones by default)

Links ~/.statuz/skills/statuz into each app’s skills folder (~/.claude/skills, ~/.agents/skills for Codex, ~/.gemini/skills, ~/.config/opencode/skills and so on) and adds an MCP server to the config of apps without a terminal (Claude Desktop, LM Studio, Jan, AnythingLLM and BoltAI). Nothing already there is overwritten. Some apps also read other apps’ folders, so connecting several can show the skill twice. `statuz agents list` shows every path.

MCP agents_addwriteLocal only
--agent
Only these apps (repeatable); default: every installed one · claude-code | codex | cursor | vscode | copilot-cli | windsurf | gemini-cli | opencode | amp | goose | cline | kilo | droid | qwen-code | crush | warp | zed | junie | vibe | kimi-code | qoder | openhands | pi | letta | trae | claude-desktop | lm-studio | jan | anythingllm | boltai · repeatable
Examples
statuz agents add
statuz agents add --agent claude-desktop
statuz agents removeDisconnect Statuz from agent apps (all by default)
MCP agents_removewriteLocal only
--agent
Only these apps (repeatable) · claude-code | codex | cursor | vscode | copilot-cli | windsurf | gemini-cli | opencode | amp | goose | cline | kilo | droid | qwen-code | crush | warp | zed | junie | vibe | kimi-code | qoder | openhands | pi | letta | trae | claude-desktop | lm-studio | jan | anythingllm | boltai · repeatable
Examples
statuz agents remove --agent cursor

Sign-in

statuz auth whoamiWho you are signed in as on Statuz Cloud, and your orgs
MCP auth_whoamireadCloud only
Examples
statuz whoami

Statuz Cloud

statuz cloud moveMove this computer's scheduled posts and drafts to Statuz Cloud

Connect the same accounts in Statuz Cloud first: tokens never leave this computer. Each post moves with its media, then its local copy is deleted. Posts whose accounts are not in Cloud yet stay here. --dry-run shows what would move.

MCP cloud_movewriteLocal only
--dry-run
Show what would move; change nothing · boolean · default false
Examples
statuz cloud move --dry-run
statuz cloud move
statuz cloud pricingStatuz Cloud prices (works offline; local publishing is free)
MCP cloud_pricingreadLocal and Cloud
Examples
statuz cloud pricing
statuz cloud billing balanceThe org's credit balance, the next expiry and auto-reload
MCP cloud_billing_balancereadCloud only
Examples
statuz cloud billing balance
statuz cloud billing depositAdd credits: returns a Stripe Checkout link (opened in your browser)
MCP cloud_billing_depositwriteCloud only
--amount
USD, 5 to 1000 · number (5–1000) · required
Examples
statuz cloud billing deposit --amount 20
statuz cloud billing auto-reloadTurn auto-reload on or off (off by default)
MCP cloud_billing_auto-reloadwriteCloud only
--on
--on or --no-on · boolean · required
--below
Reload below this balance (USD) · number (≥ 1)
--amount
Reload this much (USD) · number (≥ 5)
Examples
statuz cloud billing auto-reload --on --below 5 --amount 20
statuz cloud billing ledgerDeposits, spending, promos and expiries, newest first
MCP cloud_billing_ledgerreadCloud only
--since
30d, 6m or an ISO date · string · default "30d"
--limit
number (1–1000) · default 100
Examples
statuz cloud billing ledger --since 30d
statuz cloud billing cardSave a card, or manage cards and receipts in the Stripe portal once there is one

Without a card it opens a Checkout that saves one without charging it (auto-reload uses it). Signed in with the email you bought Statuz 1 with, saving a card or a first deposit adds $4 of credits, once per license.

MCP cloud_billing_cardwriteCloud only
Examples
statuz cloud billing card
statuz cloud org listThe orgs you belong to
MCP cloud_org_listreadCloud only
Examples
statuz cloud org list
statuz cloud org createCreate an org; you become its owner
MCP cloud_org_createwriteCloud only
--name
string · required
--timezone
Default: the creator's zone · string
Examples
statuz cloud org create --name "Intenseloop"
statuz cloud org updateRename the org, or change its watermark default or time zone
MCP cloud_org_updatewriteCloud only
--name
string
--watermark
Watermark posts with the org logo unless a post turns it off · boolean
--timezone
IANA time zone for time words like "tomorrow 9am" when a command names none · string
Examples
statuz cloud org update --watermark
statuz cloud org update --timezone America/Sao_Paulo
statuz cloud team listWho's in the org, with roles, and pending invites
MCP cloud_team_listreadCloud only
Examples
statuz cloud team list
statuz cloud team cancelCancel a pending invite: its link stops working
MCP cloud_team_cancelwriteCloud only
--id
string · required
Examples
statuz cloud team cancel --id <inviteId>
statuz cloud team inviteInvite someone by email (each extra seat is $5 a month in credits, prorated the month they join)
MCP cloud_team_invitewriteCloud only
--email
string · required
--role
owner | admin | member | viewer · default "member"
Examples
statuz cloud team invite --email [email protected]
statuz cloud team resendSend a pending invite again: a new link, emailed, good for 14 more days

The old link stops working. You can resend only invites for roles you may give.

MCP cloud_team_resendwriteCloud only
--id
string · required
Examples
statuz cloud team resend --id <inviteId>
statuz cloud team roleChange someone's role
MCP cloud_team_rolewriteCloud only
--user-id
string · required
--role
owner | admin | member | viewer · required
Examples
statuz cloud team role --user-id <userId> --role admin
statuz cloud team removeRemove someone from the org, or leave it (your own id)

Anyone may leave, viewers too; removing someone else takes an admin, and an owner takes an owner.

MCP cloud_team_removewriteCloud only
--user-id
string · required
Examples
statuz cloud team remove --user-id <userId>
statuz cloud keys listAPI keys for scripts, CI and agents (only prefixes are shown)
MCP cloud_keys_listreadCloud only
Examples
statuz cloud keys list
statuz cloud keys createCreate an API key (STATUZ_TOKEN); the secret is shown once

A key has its own role, viewer (reads), member (also writes posts and connects accounts) or admin (also runs the team and settings), up to yours; never owner, so no key reaches billing. It acts with the lower of its role and yours as it is when used: demote or remove its creator and it loses that reach too.

MCP cloud_keys_createwriteCloud only
--label
string · required
--role
viewer, member or admin; at most your own role · viewer | member | admin · default "member"
Examples
statuz cloud keys create --label "CI"
statuz cloud keys create --label "Dashboard" --role viewer
statuz cloud keys renameRename an API key
MCP cloud_keys_renamewriteCloud only
--id
string · required
--label
string · required
Examples
statuz cloud keys rename --id <keyId> --label "Release bot"
statuz cloud keys revokeRevoke an API key
MCP cloud_keys_revokewriteCloud only
--id
string · required
Examples
statuz cloud keys revoke --id <keyId>
statuz cloud accounts connectStart connecting an account to Statuz Cloud: returns a sign-in link to open

Open the link in a browser, then wait with cloud.accounts.connected. `statuz accounts connect` does both for you. Cloud signs in with Statuz’s own X and LinkedIn apps: no developer keys.

MCP cloud_accounts_connectwriteCloud only
--platform
x | bluesky | mastodon | linkedin · required
--server
Mastodon instance or your Bluesky handle, for a custom server · string
Examples
statuz cloud accounts connect --platform bluesky
statuz cloud accounts connectedWait for a sign-in started with cloud.accounts.connect
MCP cloud_accounts_connectedreadCloud only
--connect-id
string · required
--wait
Seconds to wait for it to finish · number (0–25) · default 20
Examples
statuz cloud accounts connected --connect-id <connectId>
statuz cloud invites getLook up an invite link before accepting it
MCP cloud_invites_getreadCloud only
--token
string · required
Examples
statuz cloud invites get --token inv_…
statuz cloud invites acceptJoin the org an invite link is for

The invite must be for the email you signed in with. Accepting one you already accepted just returns the org.

MCP cloud_invites_acceptwriteCloud only
--token
string · required
Examples
statuz cloud invites accept --token inv_…

Everywhere

Global flags6
--json
JSON output for scripts and agents
--compact
One-line JSON (with --json)
--input <json|->
Raw input as JSON, or '-' to read stdin
--local, --cloud
Run this command on this machine or on Statuz Cloud
--org <id>
Statuz Cloud org (default: your first org)
--api <url>
Statuz Cloud API URL (default: STATUZ_API_URL, else https://api.statuz.cloud)
Built into the CLI7
statuz login [--no-browser]
Sign in to Statuz Cloud in your browser
statuz logout
Sign out of Statuz Cloud
statuz whoami
Who you are on Statuz Cloud (same as `auth whoami`)
statuz use local|cloud
Where commands run by default
statuz mcp
Serve the commands to an agent over MCP (stdio)
statuz help [command] [--json]
Help; --json prints the catalog for agents
statuz --version
Print the version