# CLI reference

AllPostsAccountsMediaConfigSetup and daemonAgent appsSign-inStatuz Cloud
## 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--textPost text; repeat for a thread · string · repeatable--mediaImage or video path, or a media id, for the first post · string · repeatable--threadThe whole thread with media per post (instead of --text) · object · repeatable--toAccount id, handle or platform name (x, bluesky, mastodon, linkedin = its default account). Default: every default account · string · repeatable--atWhen to publish: ISO time or plain words ("tomorrow 9am", "in 2 hours", "fri 17:30"). Without it the post goes out now · string--timezoneIANA time zone for --at words (default: this machine's; on Statuz Cloud, the org's) · string--quoteURL of a post to quote (X, Bluesky) · string--draftSave without publishing or scheduling · boolean · default false--watermarkStatuz Cloud: stamp the org's logo on the images and videos (default: the org's setting) · boolean--groupJoins this post to its other halves in other homes (the Mac app sends one per home) · stringExamples
```
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--statusOnly these statuses (repeatable) · draft | scheduled | publishing | published | failed | missed | held · repeatable--platformOnly posts going to it · x | bluesky | mastodon | linkedin--fromScheduled at or after (ISO or words) · string--untilScheduled before (ISO or words) · string--limitnumber (1–500) · default 50Examples
```
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--idstring · requiredExamples
```
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--idstring · required--textReplace the thread text · string · repeatable--mediastring · repeatable--threadobject · repeatable--toAccount id, handle or platform name (x, bluesky, mastodon, linkedin = its default account). Default: every default account · string · repeatable--atWhen to publish: ISO time or plain words ("tomorrow 9am", "in 2 hours", "fri 17:30"). Without it the post goes out now · string--timezoneIANA time zone for --at words (default: this machine's; on Statuz Cloud, the org's) · string--quoteURL of a post to quote (X, Bluesky) · string--drafttrue parks it as a draft; false schedules it again · boolean--watermarkStatuz Cloud: stamp the org's logo on the images and videos (default: the org's setting) · booleanExamples
```
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--idstring · required--keep-on-platformsOnly delete it from Statuz; published copies stay up · boolean · default falseExamples
```
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--idstring · requiredExamples
```
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--accountAccount id, handle or platform name · string · required--limitnumber (1–50) · default 10Examples
```
statuz posts recent --account bluesky --limit 5
```

## Accounts

statuz accounts listConnected accounts and how their sign-ins are doing

MCP accounts_listreadLocal and Cloud--platformx | bluesky | mastodon | linkedinExamples
```
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--platformx | bluesky | mastodon | linkedin · required--serverMastodon instance (mastodon.social) or your Bluesky handle, for a custom server · string--no-browserOpen the browser (--no-browser prints the link) · booleanExamples
```
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--accountAccount id or handle · string · requiredExamples
```
statuz accounts remove --account @statuz_app
```

statuz accounts defaultMake an account the default for its platform

MCP accounts_defaultwriteLocal and Cloud--accountAccount id or handle · string · requiredExamples
```
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--accountAccount id or handle · string · required--positionIts place in the list: 1 is the top; past the end is the end · number (1–9007199254740991) · requiredExamples
```
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--accountOnly this account · stringExamples
```
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--pathFile to add · string · required--altAlt text for screen readers · stringExamples
```
statuz media add --path ./shot.png --alt "The new composer"
```

statuz media listMedia added to Statuz, newest first

MCP media_listreadLocal and Cloud--limitnumber (1–500) · default 50Examples
```
statuz media list
```

statuz media editChange the alt text of a media item

MCP media_editwriteLocal and Cloud--idstring · required--altstring · requiredExamples
```
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--idstring · requiredExamples
```
statuz media remove --id m_x8k2pq4nre
```

## Config

statuz config listEvery setting in ~/.statuz, including your own X and LinkedIn app keys

MCP config_listreadLocal onlyExamples
```
statuz config list
```

statuz config getOne setting

MCP config_getreadLocal only--keystring · requiredExamples
```
statuz config get --key timezone
```

statuz config setChange a setting; secrets go to the OS keychain

MCP config_setwriteLocal only--keystring · required--valuestring · requiredExamples
```
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--keystring · requiredExamples
```
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--agentsConnect every installed agent app (default: ask in a terminal, otherwise only report) · booleanExamples
```
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-serviceInstall the login service (--no-service runs it once) · booleanExamples
```
statuz start
```

statuz stopStop the local daemon (scheduled posts wait until it starts again)

MCP stopwriteLocal onlyExamples
```
statuz stop
```

statuz statusIs the daemon running, what is next, and what needs you

MCP statusreadLocal onlyExamples
```
statuz status
```

statuz logsThe last lines of the daemon log

MCP logsreadLocal only--linesnumber (1–5000) · default 100Examples
```
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--postPost id (statuz posts list) · string--pageA page instead of a post (billing is Statuz Cloud only) · queue | compose | accounts | settings | billingExamples
```
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--messagestring · required--kindbug, idea, confusing, praise or other · bug | idea | confusing | praise | other · default "other"--commandThe command it is about, like posts.create · string--errorThe error it gave · string--taskWhat you were trying to do · string--agentYour agent, if you are one · string--modelYour model, if you are one · string--emailWhere we can reply, when not signed in · string--clientobject--pageobject--screenshotA JPEG or PNG data URL; the CLI takes a file: --screenshot shot.png · stringExamples
```
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 onlyExamples
```
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--agentOnly 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 · repeatableExamples
```
statuz agents add
statuz agents add --agent claude-desktop
```

statuz agents removeDisconnect Statuz from agent apps (all by default)

MCP agents_removewriteLocal only--agentOnly 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 · repeatableExamples
```
statuz agents remove --agent cursor
```

## Sign-in

statuz auth whoamiWho you are signed in as on Statuz Cloud, and your orgs
MCP auth_whoamireadCloud onlyExamples
```
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-runShow what would move; change nothing · boolean · default falseExamples
```
statuz cloud move --dry-run
statuz cloud move
```

statuz cloud pricingStatuz Cloud prices (works offline; local publishing is free)

MCP cloud_pricingreadLocal and CloudExamples
```
statuz cloud pricing
```

statuz cloud billing balanceThe org's credit balance, the next expiry and auto-reload
MCP cloud_billing_balancereadCloud onlyExamples
```
statuz cloud billing balance
```

statuz cloud billing depositAdd credits: returns a Stripe Checkout link (opened in your browser)
MCP cloud_billing_depositwriteCloud only--amountUSD, 5 to 1000 · number (5–1000) · requiredExamples
```
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--belowReload below this balance (USD) · number (≥ 1)--amountReload 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--since30d, 6m or an ISO date · string · default "30d"--limitnumber (1–1000) · default 100Examples
```
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 onlyExamples
```
statuz cloud billing card
```

statuz cloud org listThe orgs you belong to
MCP cloud_org_listreadCloud onlyExamples
```
statuz cloud org list
```

statuz cloud org createCreate an org; you become its owner
MCP cloud_org_createwriteCloud only--namestring · required--timezoneDefault: the creator's zone · stringExamples
```
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--namestring--watermarkWatermark posts with the org logo unless a post turns it off · boolean--timezoneIANA time zone for time words like "tomorrow 9am" when a command names none · stringExamples
```
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 onlyExamples
```
statuz cloud team list
```

statuz cloud team cancelCancel a pending invite: its link stops working
MCP cloud_team_cancelwriteCloud only--idstring · requiredExamples
```
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--emailstring · required--roleowner | admin | member | viewer · default "member"Examples
```
statuz cloud team invite --email ana@example.com
```

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--idstring · requiredExamples
```
statuz cloud team resend --id <inviteId>
```

statuz cloud team roleChange someone's role
MCP cloud_team_rolewriteCloud only--user-idstring · required--roleowner | admin | member | viewer · requiredExamples
```
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-idstring · requiredExamples
```
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 onlyExamples
```
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--labelstring · required--roleviewer, 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--idstring · required--labelstring · requiredExamples
```
statuz cloud keys rename --id <keyId> --label "Release bot"
```

statuz cloud keys revokeRevoke an API key
MCP cloud_keys_revokewriteCloud only--idstring · requiredExamples
```
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--platformx | bluesky | mastodon | linkedin · required--serverMastodon instance or your Bluesky handle, for a custom server · stringExamples
```
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-idstring · required--waitSeconds to wait for it to finish · number (0–25) · default 20Examples
```
statuz cloud accounts connected --connect-id <connectId>
```

statuz cloud invites getLook up an invite link before accepting it
MCP cloud_invites_getreadCloud only--tokenstring · requiredExamples
```
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--tokenstring · requiredExamples
```
statuz cloud invites accept --token inv_…
```

## Everywhere

Global flags6--jsonJSON output for scripts and agents--compactOne-line JSON (with --json)--input <json|->Raw input as JSON, or '-' to read stdin--local, --cloudRun 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 CLI7statuz login [--no-browser]Sign in to Statuz Cloud in your browserstatuz logoutSign out of Statuz Cloudstatuz whoamiWho you are on Statuz Cloud (same as `auth whoami`)statuz use local|cloudWhere commands run by defaultstatuz mcpServe the commands to an agent over MCP (stdio)statuz help [command] [--json]Help; --json prints the catalog for agentsstatuz --versionPrint the version[

](/)
Schedule posts from your terminal or your agent.
LightDarkAuto© 2026 [Intenseloop, Inc.](https://intenseloop.com)[
](https://x.com/intent/follow?screen_name=stewones)