# Statuz A free CLI that schedules and publishes posts to X, Bluesky, Mastodon and LinkedIn. Agents drive it directly or over MCP. Runs on your Mac or Linux computer, or on Statuz Cloud. https://statuz.app/index.txt --- Connect accounts https://statuz.app/docs/accounts.txt You sign in on each platform's own page. Locally, it returns to http://127.0.0.1:3851 and tokens go into your OS keychain. They never reach our servers. PlatformSetup BlueskyNone MastodonNone XYour own X developer app LinkedInYour own LinkedIn developer app On Statuz Cloud (/docs/cloud) no developer app is needed. Bluesky statuz accounts connect --platform blueskyCopy On your own PDS: add --server with your handle (--server alice.example.com) or your PDS URL. Mastodon statuz accounts connect --platform mastodon --server mastodon.socialCopy Use your server's domain. X developer app • Open developer.x.com (https://developer.x.com/), then your app's User authentication settings → Set up. • Permissions: Read and write. • Type: Native App. • Callback URI: http://127.0.0.1:3851/callback/x • Website URL: any site you own. • Copy the OAuth 2.0 Client ID. Statuz doesn't need the Client Secret. Scopes Statuz requests: tweet.read, tweet.write, users.read, offline.access, media.write. Terminalstatuz config set --key x.client-id --value statuz accounts connect --platform x LinkedIn developer app • Create an app at linkedin.com/developers (https://www.linkedin.com/developers/apps). It needs a company page; yours works. • Products: add Share on LinkedIn and Sign In with LinkedIn using OpenID Connect. • Auth → Redirect URL: http://127.0.0.1:3851/callback/linkedin • Copy the Client ID and Primary Client Secret. Terminalstatuz config set --key linkedin.client-id --value statuz config set --key linkedin.client-secret --value statuz accounts connect --platform linkedin No browser Add --no-browser to print the sign-in link. Open it on the same computer. Manage Terminalstatuz accounts list statuz accounts check statuz accounts default --account @you.bsky.social statuz accounts move --account @you.bsky.social --position 1 statuz accounts remove --account @you.bsky.social • check tests every sign-in now. statuz status also flags accounts that need reconnecting. • default sets which account --to bluesky (or x, mastodon, linkedin) means. • move changes the order accounts show in, here and in the Mac app. • remove deletes the tokens. Posts that only went to it become drafts. Secrets live in the keychain, not ~/.statuz/config.json. See them with statuz config list; clear one with statuz config unset --key linkedin.client-secret. (/)Schedule posts from your terminal or your agent. LightDarkAuto © 2026 Intenseloop, Inc. (https://intenseloop.com) (https://x.com/intent/follow?screen_name=stewones) --- MCP server for X, Bluesky, Mastodon and LinkedIn https://statuz.app/docs/agents.txt Install Statuzbrew, npm or the shell script. Then statuz init. (/download)Add it to your agentOne command or one config block, below. (#setup)AskIt writes, schedules and checks. You approve. (#prompts) Choose your agent CLIMCP Claude CodeCursorCodexClaude DesktopVS CodeWindsurfGemini CLICopilot CLIOpenCodeLM StudioOther Your agent runs statuz in a terminal, like you do. statuz init lets you pick which apps learn how. Run this in your terminalstatuz initCopy • Tick Claude Code in the list it shows; the Statuz skill goes in ~/.claude/skills. • Ask: "Schedule a post to Bluesky for tomorrow 9am." Claude Code runs statuz for you. Run this in your terminalclaude mcp add statuz -- statuz mcpCopy • In Claude Code, run /mcp and check statuz is connected. • Ask: "Schedule a post to Bluesky for tomorrow 9am." Run this in your terminalstatuz initCopy • Tick Cursor in the list it shows; the Statuz skill goes in ~/.cursor/skills. • The agent runs statuz in its terminal and asks before each command. Add to ~/.cursor/mcp.json{ "mcpServers": { "statuz": { "command": "statuz", "args": ["mcp"] } } } • Open Cursor Settings → MCP and turn statuz on. • Ask the agent to draft a thread with posts_create and draft: true. Run this in your terminalstatuz initCopy • Tick Codex in the list it shows; the Statuz skill goes in ~/.agents/skills. • Ask: "What is scheduled this week?" Codex runs statuz and shows each result. Run this in your terminalcodex mcp add statuz -- statuz mcpCopy • Start codex; the statuz tools load with it. • Ask: "What is scheduled this week on Statuz?" Claude Desktop can't run terminal commands. Use MCP: Statuz shows up as tools in a new chat. Run this in your terminalstatuz agents add --agent claude-desktopCopy • It adds Statuz to claude_desktop_config.json; your other servers stay. • Restart Claude Desktop. Statuz shows up under the tools icon in a new chat. Run this in your terminalstatuz initCopy • Tick VS Code in the list it shows; the Statuz skill goes in ~/.copilot/skills. • Copilot in agent mode runs statuz in the terminal after you approve. Add to .vscode/mcp.json{ "servers": { "statuz": { "type": "stdio", "command": "statuz", "args": ["mcp"] } } } • Run "MCP: List Servers" and start statuz. • Use it from Copilot Chat in agent mode. Run this in your terminalstatuz initCopy • Tick Windsurf in the list it shows; the Statuz skill goes in ~/.codeium/windsurf/skills. • Cascade runs statuz in its terminal. Add to ~/.codeium/windsurf/mcp_config.json{ "mcpServers": { "statuz": { "command": "statuz", "args": ["mcp"] } } } • Refresh the MCP list in Cascade. • Ask Cascade to schedule a post. Run this in your terminalstatuz initCopy • Tick Gemini CLI in the list it shows; the Statuz skill goes in ~/.gemini/skills. • Gemini CLI asks before it runs each statuz command. Add to ~/.gemini/settings.json{ "mcpServers": { "statuz": { "command": "statuz", "args": ["mcp"] } } } • In Gemini CLI, run /mcp and check statuz is listed. • Ask: "Draft a thread for Friday at 10." Run this in your terminalstatuz initCopy • Tick Copilot CLI in the list it shows; the Statuz skill goes in ~/.copilot/skills. • Copilot CLI asks before it runs each statuz command. Add to ~/.copilot/mcp-config.json{ "mcpServers": { "statuz": { "type": "local", "command": "statuz", "args": ["mcp"], "tools": ["*"] } } } • In copilot, run /mcp and check statuz is listed. • Ask: "What is scheduled this week on Statuz?" Run this in your terminalstatuz initCopy • Tick OpenCode in the list it shows; the Statuz skill goes in ~/.config/opencode/skills. • OpenCode runs statuz in its shell. Add to ~/.config/opencode/opencode.json{ "mcp": { "statuz": { "type": "local", "command": ["statuz", "mcp"] } } } • Start opencode; the statuz tools load with it. • Ask it to schedule a post to Mastodon. LM Studio can't run terminal commands. Use MCP: Statuz shows up as tools in a new chat. Run this in your terminalstatuz agents add --agent lm-studioCopy • It adds Statuz to ~/.lmstudio/mcp.json; your other servers stay. • LM Studio loads it on save. Chat with a model that can call tools. Any agent with a terminalstatuz help --jsonCopy • Every command and flag with its JSON Schema, for the agent to read. • Add --json to any command; errors come back with a code and a plain message. Any MCP client: start this over stdiostatuz mcpCopy • Or use HTTP: http://127.0.0.1:3850/mcp while statuz start runs. • Send the token in ~/.statuz/run/relay.token as a Bearer header. What your agent can do Write and schedulePosts and threads, now or at "fri 17:30", checked against every limit. Plan a weekLists what is scheduled, moves posts, fills the gaps. Attach mediaAdds images and video from your disk with alt text. Check accountsFinds an expired sign-in before a post is due. Try asking Schedule a week of launch posts: one a day at 9am, Monday to Friday, to X and Bluesky. Show me the list first.Copy What's scheduled for next week?Copy Anything failed? Retry it.Copy Two ways in, same commands. Agents with a shell (Claude Code, Cursor, Codex) call statuz directly; apps without one, like Claude Desktop, use statuz mcp, which serves every command as a tool over stdio. The CLI reference (/docs/cli) lists them all. Teach your agent statuz initCopy Writes AGENTS.md and the Statuz skill into ~/.statuz, then lists the agent apps it finds. Tick the ones that should use Statuz. Apps with a terminal get the skill in their own folder; apps without one get an MCP server in their config: AppWhere Claude Code~/.claude/skills Codex, Zed, OpenHands~/.agents/skills Cursor~/.cursor/skills VS Code, Copilot CLI~/.copilot/skills Windsurf~/.codeium/windsurf/skills Gemini CLI~/.gemini/skills OpenCode~/.config/opencode/skills Amp~/.config/amp/skills Goose~/.config/goose/skills Cline~/.cline/skills Kilo Code~/.kilo/skills Factory Droid~/.factory/skills Qwen Code~/.qwen/skills Crush~/.config/crush/skills Warp~/.warp/skills Junie~/.junie/skills Mistral Vibe~/.vibe/skills Kimi Code~/.kimi-code/skills Qoder~/.qoder/skills Pi~/.pi/agent/skills Letta Code~/.letta/skills Trae~/.trae/skills Claude DesktopMCP server in claude_desktop_config.json LM StudioMCP server in ~/.lmstudio/mcp.json JanMCP server in mcp_config.json AnythingLLMMCP server in anythingllm_mcp_servers.json BoltAIMCP server in ~/.boltai/mcp.json Show 20 more Some apps also read other apps' folders (Cursor reads ~/.claude/skills), so ticking several can show the skill twice. Nothing already there is overwritten. Untick an app to disconnect it, or use statuz agents list | add | remove. Tool names Command id with dots turned into underscores. Inputs match the flags, in camelCase. CLIMCP tool statuz posts createposts_create statuz posts listposts_list statuz accounts listaccounts_list statuz statusstatus Try it Connect an account (Accounts (/docs/accounts)), run statuz start, then ask: Schedule a week of launch posts: one a day at 9am, Monday to Friday, to X and Bluesky. Under 280 characters each. Show me the list first. More prompts: • "What's scheduled for next week?" • "Move Thursday's post to Friday at 10." • "Anything failed? Retry it." • "Open my post for Monday." Posts too long for a destination are rejected before saving, and the agent sees why. Open in the app statuz open --post (or --page queue) shows it in the Mac app when it's installed, else on statuz.cloud for Cloud's posts. An agent on Statuz Cloud gets the link to hand you instead. Read and write Every command is read or write; the CLI reference (/docs/cli) marks each. On Statuz Cloud (/docs/cloud), an API key has its own role: viewer (reads), member (also writes posts and connects accounts) or admin (also runs the team and settings). There are no owner keys, so no key reaches billing, and a key never does more than its creator can today. Make one with statuz cloud keys create --label CI --role member; revoke it from the API keys page or statuz cloud keys revoke. Local or Cloud Agents follow the target: statuz use local or statuz use cloud. (/)Schedule posts from your terminal or your agent. LightDarkAuto © 2026 Intenseloop, Inc. (https://intenseloop.com) (https://x.com/intent/follow?screen_name=stewones) --- CLI reference https://statuz.app/docs/cli.txt AllPostsAccountsMediaConfigSetup and daemonAgent appsSign-inStatuz Cloud Posts statuz posts createWrite a post or thread; publish now, schedule it or keep a draftEach --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 --titlePost title; required when a destination is Reddit · string --subredditReddit: the subreddit, without r/ (default: the account’s own profile) · string --flairReddit: a flair id for the subreddit (see `accounts flairs`) · 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) · string Examplesstatuz 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 create --text "A write-up" --to reddit --subreddit test --title "A write-up" 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 | reddit --fromScheduled at or after (ISO or words) · string --untilScheduled before (ISO or words) · string --limitnumber (1–500) · default 50 Examplesstatuz posts list --status scheduled statuz posts list --from today --until "next monday" statuz posts getOne post with every destination and its resultMCP posts_getreadLocal and Cloud --idstring · required Examplesstatuz posts get --id p_k3m9x2abqe statuz posts editChange a draft, scheduled, missed or failed postFields 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 --titlePost title; required when a destination is Reddit · string --subredditReddit: the subreddit, without r/ (default: the account’s own profile) · string --flairReddit: a flair id for the subreddit (see `accounts flairs`) · 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) · boolean Examplesstatuz 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 StatuzEvery 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 false Examplesstatuz 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 failuresA failed post only retries the destinations that failed; the ones that went out are not posted twice. MCP posts_publishwriteLocal and Cloud --idstring · required Examplesstatuz posts publish --id p_k3m9x2abqe statuz posts recentAn account's latest posts on the platform, to quote or reply toMCP posts_recentreadLocal and Cloud --accountAccount id, handle or platform name · string · required --limitnumber (1–50) · default 10 Examplesstatuz posts recent --account bluesky --limit 5 Accounts statuz accounts listConnected accounts and how their sign-ins are doingMCP accounts_listreadLocal and Cloud --platformx | bluesky | mastodon | linkedin | reddit Examplesstatuz accounts list statuz accounts list --platform x statuz accounts connectConnect an account by signing in with the platform in your browserLocally 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 | reddit · required --serverMastodon instance (mastodon.social) or your Bluesky handle, for a custom server · string --no-browserOpen the browser (--no-browser prints the link) · boolean Examplesstatuz accounts connect --platform bluesky statuz accounts connect --platform mastodon --server fosstodon.org statuz accounts removeDisconnect an account and delete its tokensScheduled posts that only went to this account are kept as drafts. MCP accounts_removewriteLocal and Cloud --accountAccount id or handle · string · required Examplesstatuz accounts remove --account @statuz_app statuz accounts defaultMake an account the default for its platformMCP accounts_defaultwriteLocal and Cloud --accountAccount id or handle · string · required Examplesstatuz accounts default --account stewan.io statuz accounts moveMove an account up or down the listThe 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) · required Examplesstatuz 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 · string Examplesstatuz accounts check statuz accounts flairsThe flairs a subreddit offers a Reddit account for a new postMCP accounts_flairsreadLocal and Cloud --toReddit account id or handle · string · required --subredditWithout r/ · string · required Examplesstatuz accounts flairs --to u/statuzapp --subreddit test Media statuz media addCopy an image or video into Statuz and get an id to attachJPEG, 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 · string Examplesstatuz media add --path ./shot.png --alt "The new composer" statuz media listMedia added to Statuz, newest firstMCP media_listreadLocal and Cloud --limitnumber (1–500) · default 50 Examplesstatuz media list statuz media editChange the alt text of a media itemMCP media_editwriteLocal and Cloud --idstring · required --altstring · required Examplesstatuz media edit --id m_x8k2pq4nre --alt "A cat on a keyboard" statuz media removeDelete a media item that no unpublished post usesMCP media_removewriteLocal and Cloud --idstring · required Examplesstatuz media remove --id m_x8k2pq4nre Config statuz config listEvery setting in ~/.statuz, including your own X and LinkedIn app keysMCP config_listreadLocal only Examplesstatuz config list statuz config getOne settingMCP config_getreadLocal only --keystring · required Examplesstatuz config get --key timezone statuz config setChange a setting; secrets go to the OS keychainMCP config_setwriteLocal only --keystring · required --valuestring · required Examplesstatuz config set --key x.client-id --value statuz config set --key linkedin.client-secret --value statuz config set --key timezone --value America/Sao_Paulo statuz config unsetClear a settingMCP config_unsetwriteLocal only --keystring · required Examplesstatuz config unset --key linkedin.client-secret Setup and daemon statuz initSet up ~/.statuz, write the agent guide and connect your agent appsWrites 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) · boolean Examplesstatuz init statuz init --agents statuz init --no-agents statuz startStart the local daemon that publishes scheduled postsRuns 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) · boolean Examplesstatuz start statuz stopStop the local daemon (scheduled posts wait until it starts again)MCP stopwriteLocal only Examplesstatuz stop statuz statusIs the daemon running, what is next, and what needs youMCP statusreadLocal only Examplesstatuz status statuz logsThe last lines of the daemon logMCP logsreadLocal only --linesnumber (1–5000) · default 100 Examplesstatuz logs --lines 50 statuz openShow the person a post or a page: in the Mac app when it is installed, else on statuz.cloudOpens 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 | billing Examplesstatuz open --post p_k3m9x2abqe statuz open --page queue --cloud statuz feedbackSend feedback or a bug report to the Statuz teamAgents: 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 · string Examplesstatuz 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 themApps 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 Examplesstatuz 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 · repeatable Examplesstatuz 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 · repeatable Examplesstatuz agents remove --agent cursor Sign-in statuz auth whoamiWho you are signed in as on Statuz Cloud, and your orgsMCP auth_whoamireadCloud only Examplesstatuz whoami Statuz Cloud statuz cloud moveMove this computer's scheduled posts and drafts to Statuz CloudConnect 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 false Examplesstatuz cloud move --dry-run statuz cloud move statuz cloud pricingStatuz Cloud prices (works offline; local publishing is free)MCP cloud_pricingreadLocal and Cloud Examplesstatuz cloud pricing statuz cloud billing balanceThe org's credit balance, the next expiry and auto-reloadMCP cloud_billing_balancereadCloud only Examplesstatuz 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) · required Examplesstatuz 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) Examplesstatuz cloud billing auto-reload --on --below 5 --amount 20 statuz cloud billing ledgerDeposits, spending, promos and expiries, newest firstMCP cloud_billing_ledgerreadCloud only --since30d, 6m or an ISO date · string · default "30d" --limitnumber (1–1000) · default 100 Examplesstatuz cloud billing ledger --since 30d statuz cloud billing cardSave a card, or manage cards and receipts in the Stripe portal once there is oneWithout 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 Examplesstatuz cloud billing card statuz cloud org listThe orgs you belong toMCP cloud_org_listreadCloud only Examplesstatuz cloud org list statuz cloud org createCreate an org; you become its ownerMCP cloud_org_createwriteCloud only --namestring · required --timezoneDefault: the creator's zone · string Examplesstatuz cloud org create --name "Intenseloop" statuz cloud org updateRename the org, or change its watermark default or time zoneMCP 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 · string Examplesstatuz cloud org update --watermark statuz cloud org update --timezone America/Sao_Paulo statuz cloud team listWho's in the org, with roles, and pending invitesMCP cloud_team_listreadCloud only Examplesstatuz cloud team list statuz cloud team cancelCancel a pending invite: its link stops workingMCP cloud_team_cancelwriteCloud only --idstring · required Examplesstatuz cloud team cancel --id 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" Examplesstatuz cloud team invite --email ana@example.com statuz cloud team resendSend a pending invite again: a new link, emailed, good for 14 more daysThe old link stops working. You can resend only invites for roles you may give. MCP cloud_team_resendwriteCloud only --idstring · required Examplesstatuz cloud team resend --id statuz cloud team roleChange someone's roleMCP cloud_team_rolewriteCloud only --user-idstring · required --roleowner | admin | member | viewer · required Examplesstatuz cloud team role --user-id --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 · required Examplesstatuz cloud team remove --user-id statuz cloud keys listAPI keys for scripts, CI and agents (only prefixes are shown)MCP cloud_keys_listreadCloud only Examplesstatuz cloud keys list statuz cloud keys createCreate an API key (STATUZ_TOKEN); the secret is shown onceA 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" Examplesstatuz cloud keys create --label "CI" statuz cloud keys create --label "Dashboard" --role viewer statuz cloud keys renameRename an API keyMCP cloud_keys_renamewriteCloud only --idstring · required --labelstring · required Examplesstatuz cloud keys rename --id --label "Release bot" statuz cloud keys revokeRevoke an API keyMCP cloud_keys_revokewriteCloud only --idstring · required Examplesstatuz cloud keys revoke --id statuz cloud accounts connectStart connecting an account to Statuz Cloud: returns a sign-in link to openOpen 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 | reddit · required --serverMastodon instance or your Bluesky handle, for a custom server · string Examplesstatuz cloud accounts connect --platform bluesky statuz cloud accounts connectedWait for a sign-in started with cloud.accounts.connectMCP cloud_accounts_connectedreadCloud only --connect-idstring · required --waitSeconds to wait for it to finish · number (0–25) · default 20 Examplesstatuz cloud accounts connected --connect-id statuz cloud invites getLook up an invite link before accepting itMCP cloud_invites_getreadCloud only --tokenstring · required Examplesstatuz cloud invites get --token inv_… statuz cloud invites acceptJoin the org an invite link is forThe 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 · required Examplesstatuz cloud invites accept --token inv_… Everywhere Global flags6--jsonJSON output for scripts and agents --compactOne-line JSON (with --json) --input Raw input as JSON, or '-' to read stdin --local, --cloudRun this command on this machine or on Statuz Cloud --org Statuz Cloud org (default: your first org) --api 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 browser statuz logoutSign out of Statuz Cloud statuz whoamiWho you are on Statuz Cloud (same as `auth whoami`) statuz use local|cloudWhere commands run by default statuz mcpServe the commands to an agent over MCP (stdio) statuz help [command] [--json]Help; --json prints the catalog for agents statuz --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) --- Local or Cloud https://statuz.app/docs/cloud.txt Same commands in both. Only where they run changes. Local • Free. No account, no watermark. • Posts and media in ~/.statuz. Tokens in the OS keychain. • Publishes straight to each platform. • Bluesky and Mastodon need nothing. X and LinkedIn need your own developer app (how (/docs/accounts)). • Your computer must be on. Posts more than an hour late are marked missed (/docs/scheduling#missed-posts). • Personal computers only; VMs and headless servers are refused. Cloud statuz.cloud (https://statuz.cloud/): • Publishes on time, computer on or off. • Orgs, teams and roles. Viewers look. Members write posts and change their own. Admins also change anyone's and run the team, keys and settings. Owners also hold billing. • Web composer. • No developer apps: Cloud uses Statuz's own X and LinkedIn apps. • Photos bigger than a platform takes are shrunk for it as they go out; the original stays as it is. Videos and GIFs must fit. • API keys for scripts, CI and agents, each with its own role: viewer, member or admin, never owner, so no key touches billing. A key also never does more than the person who made it can today. • Each org has a time zone, for times like "tomorrow 9am" that come without one (agents, mostly). It starts as yours; change it in Settings or with statuz cloud org update --timezone America/Sao_Paulo. • Holds the tokens, posts and media it needs to publish. See Privacy (/privacy). Prices Per post Bluesky, Mastodon, LinkedIn$0.01 X$0.03 X with a link$0.30 • Extra seat: $5 a month. • Prepaid credits, $5 minimum, expire after six months. Oldest spent first. Owners add them. • Free: drafts, scheduling, edits, reads, agent calls, failed or cancelled publishes. • A thread costs the sum of its posts. Current prices: Pricing (/pricing) or statuz cloud pricing. Switch Terminalstatuz use cloud statuz use localSame as statuz config set --key target --value cloud. The CLI, MCP and your agent all follow it. Local and Cloud posts are kept apart. Which one • Local: your computer is on at post time and you want everything on it. • Cloud: posts must go out while you sleep, or more than one person posts. (/)Schedule posts from your terminal or your agent. LightDarkAuto © 2026 Intenseloop, Inc. (https://intenseloop.com) (https://x.com/intent/follow?screen_name=stewones) --- Install the Statuz CLI https://statuz.app/docs/install.txt macOS and Linux, arm64 and x64. Every method installs the same statuz binary. Homebrew brew install intenseloop/tap/statuzCopy npm or Bun Terminalnpm i -g statuz-cli bun add -g statuz-cliDownloads the binary for your system from cdn.statuz.app once and checks its SHA-256. Shell script curl -fsSL https://statuz.app/install | shCopy Detects OS and CPU, downloads from cdn.statuz.app, verifies the SHA-256, installs to ~/.local/bin. Elsewhere: curl -fsSL https://statuz.app/install | STATUZ_INSTALL_DIR=/usr/local/bin shCopy Not on your PATH? export PATH="$HOME/.local/bin:$PATH"Copy npx npx statuz-cli loginCopy Signs in to Statuz Cloud without installing. Needs Node.js. For local scheduling, install with one of the methods above. Check Terminalstatuz --help statuz initData lives in ~/.statuz. Tokens go into the OS keychain (Keychain on macOS, libsecret on Linux). Update Terminalbrew upgrade statuz npm i -g statuz-cli@latest bun add -g statuz-cli@latest curl -fsSL https://statuz.app/install | shThen restart the daemon: statuz stop && statuz startCopy Uninstall statuz stopCopy Then brew uninstall statuz, npm rm -g statuz-cli, bun rm -g statuz-cli, or delete ~/.local/bin/statuz. To delete your data: statuz accounts remove --account for each account (clears keychain tokens), then remove ~/.statuz. Where the daemon runs Personal computers with a desktop session only. VMs and headless servers are refused; use Statuz Cloud (/docs/cloud) there. Mac app Optional. macOS 26 or later. Get it from Download (/download). (/)Schedule posts from your terminal or your agent. LightDarkAuto © 2026 Intenseloop, Inc. (https://intenseloop.com) (https://x.com/intent/follow?screen_name=stewones) --- Quick start https://statuz.app/docs/quickstart.txt 1. Install With Homebrew, on macOS or Linux: brew install intenseloop/tap/statuzCopy Or with npm: npm i -g statuz-cliCopy Bun and a shell script work too: Install (/docs/install). 2. Set up statuz initCopy Creates ~/.statuz and an agent guide (AGENTS.md, skills), then lists the agent apps it finds (Claude Code, Codex, Cursor, Gemini CLI, Claude Desktop and more (/docs/agents)) so you can pick which ones use Statuz. Safe to rerun. 3. Connect an account statuz accounts connect --platform blueskyCopy Approve in the browser. The token goes into your OS keychain. • Mastodon: add --server mastodon.social (your server). • X and LinkedIn: need your own developer app first. See Accounts (/docs/accounts). Statuz Cloud (/docs/cloud) brings its own. 4. Schedule a post statuz posts create --text "Hello from Statuz" --to bluesky --at "tomorrow 9am"Copy Leave out --at to publish now. More in Scheduling (/docs/scheduling). 5. Start the daemon Terminalstatuz start statuz statusThe daemon sends scheduled posts and survives reboots. status shows what's next and what needs you. Computer often off at post time? Use Statuz Cloud (/docs/cloud). Next • Agents and MCP (/docs/agents) • Accounts (/docs/accounts) • CLI reference (/docs/cli) (/)Schedule posts from your terminal or your agent. LightDarkAuto © 2026 Intenseloop, Inc. (https://intenseloop.com) (https://x.com/intent/follow?screen_name=stewones) --- Scheduling posts https://statuz.app/docs/scheduling.txt --at sets when a post goes out. Without it, it publishes now. Times --atMeans 2026-10-05T09:00:00ZThat moment "tomorrow 9am"9:00 tomorrow "in 2 hours"Two hours from now "fri 17:30"Coming Friday, 17:30 "next monday 8:00"Monday next week, 8:00 statuz posts create --text "Office hours in 10 minutes" --to mastodon --at "fri 14:50"Copy Time zones Words use your computer's zone. Override per post or for all: Terminalstatuz posts create --text "Good morning, Lisbon" --to x --at "tomorrow 8am" --timezone Europe/Lisbon statuz config set --key timezone --value America/Sao_PauloIANA names only. Posts are stored in UTC, so changing the setting doesn't move scheduled posts. Threads One --text per post, up to 25: Terminalstatuz posts create --to bluesky --at "tomorrow 10am" \ --text "1/ What we changed in v2" \ --text "2/ One CLI for every platform" \ --text "3/ Agents can drive it directly" • Each post is checked against every destination's limit before saving. On Cloud, a photo over a size limit is shrunk for that platform instead. • --media attaches to the first post. For media on later posts, pass the thread as JSON with --input (CLI reference (/docs/cli)). • A post without media that has a link gets a link card (title, description, image) on Bluesky and LinkedIn. When the link ends the post, they get the card without the URL in the text, as their own composers do. X and Mastodon make their own cards. Drafts Terminalstatuz posts create --text "Idea for later" --draft statuz posts edit --id --no-draft --at "mon 9am" statuz posts publish --id Drafts never publish on their own. Queue Terminalstatuz posts list --status scheduled statuz posts list --from today --until "next monday" Edit, move, delete Terminalstatuz posts edit --id p_k3m9x2abqe --at "fri 10:00" statuz posts edit --id p_k3m9x2abqe --text "Fixed typo" statuz posts delete --id p_k3m9x2abqe statuz posts delete --id p_k3m9x2abqe --keep-on-platforms • Passed fields replace the old ones. Published posts can't be edited. • --at in the past publishes on the next check. • Delete takes a published post down from every platform it went out to, the whole thread, then removes it from Statuz. • If a platform refuses, the post stays in Statuz with only that copy. Delete again to retry. • --keep-on-platforms only removes it from Statuz. Missed posts Locally, the daemon (statuz start) publishes. If your computer is off or asleep at post time: • Back within 60 minutes: it goes out late. • Later: marked missed. It waits for you. Terminalstatuz posts publish --id p_k3m9x2abqe statuz posts edit --id p_k3m9x2abqe --at "tomorrow 9am"Statuz Cloud (/docs/cloud) publishes on time either way. Failed posts • One failing destination doesn't stop the others. • Network errors and rate limits retry with backoff. • statuz posts get --id shows each destination's result. • statuz posts publish --id retries only what failed. Nothing posts twice. (/)Schedule posts from your terminal or your agent. LightDarkAuto © 2026 Intenseloop, Inc. (https://intenseloop.com) (https://x.com/intent/follow?screen_name=stewones) --- Notes on scheduling and cross-posting https://statuz.app/blog.txt Guide · 5 Oct · 1 minHow to Schedule Posts on BlueskyHow to schedule posts on Bluesky: a free Bluesky scheduler for posts, threads, images and several accounts, alongside X, Mastodon and LinkedIn. (/blog/how-to-schedule-posts-on-bluesky-the-complete-guide-for-2025)Guide · 5 Oct · 2 minHow to Schedule LinkedIn PostsHow to schedule LinkedIn posts: the built-in scheduler, then a free LinkedIn post scheduler for your profile alongside X, Bluesky and Mastodon. (/blog/linkedin-post-scheduling-a-professionals-guide-to-consistent-content)Guide · 5 Oct · 2 minHashtags on Twitter (X), Bluesky, Mastodon and LinkedInHow Twitter hashtags work today, and how hashtags on Bluesky, Mastodon and LinkedIn differ: how many to use, where they help, and how to post with them. (/blog/mastering-hashtag-strategy-across-x-bluesky-and-mastodon-in-2025)Guide · 4 Oct · 2 minBest Time to Post Art on Twitter (X)The best time to post art on Twitter (X) by art type, how to post art so it looks right, and how to schedule it for followers in other time zones. (/blog/best-times-to-post-art-and-visual-content-on-x-twitter-in-2025)Guide · 4 Oct · 2 minHow to Schedule YouTube Videos and PostsHow to schedule YouTube videos, Shorts, Premieres and community posts in YouTube Studio, then the announcement on X, Bluesky, Mastodon and LinkedIn. (/blog/how-to-schedule-posts-on-youtube-complete-guide-for-videos-and-community-updates)Guide · 4 Oct · 3 minImage Sizes for Twitter (X), Bluesky, Mastodon and LinkedInTwitter image size, Bluesky banner size and profile picture size, plus Mastodon and LinkedIn: dimensions, file limits and formats in one table. (/blog/mastering-image-sizes-for-x-twitter-bluesky-and-mastodon-in-2025)Guide · 4 Oct · 2 minHow to Make a Thread on Twitter, Bluesky and MastodonHow to make a thread on Twitter (X), Bluesky and Mastodon: thread limits per platform, how to split long text, and how to schedule a thread everywhere. (/blog/mastering-threaded-posts-across-social-platforms)Guide · 1 Oct · 2 minCross-Posting to X, Bluesky and MastodonCross-posting social media across X, Bluesky and Mastodon: limits, culture, what to adapt, and a workflow that takes minutes. (/blog/the-ultimate-guide-to-cross-posting-between-x-bluesky-and-mastodon)Guide · 1 Oct · 2 minHow to Schedule a Tweet (and Posts on X)How to schedule a tweet on X: the built-in scheduler, then threads, other platforms and AI agents with the free Statuz CLI. (/blog/how-to-schedule-posts-on-x-twitter-the-ultimate-guide-for-2025)Guide · 1 Oct · 1 minHow to Schedule Posts on MastodonHow to schedule posts on Mastodon: the built-in scheduler, then threads, several servers and other platforms with the Statuz CLI. (/blog/how-to-schedule-posts-on-mastodon-complete-guide-for-2025) (/)Schedule posts from your terminal or your agent. LightDarkAuto © 2026 Intenseloop, Inc. (https://intenseloop.com) (https://x.com/intent/follow?screen_name=stewones) --- What's new in Statuz https://statuz.app/changelog.txt • Statuz 2 The CLI, the Mac app and Statuz Cloud, one command catalog. • v2.0.0October 6, 2026Latest Statuz 2: a CLI, a Mac app and Statuz Cloud Statuz is rebuilt around one command catalog: the CLI, the Mac app, MCP and Statuz Cloud all run the same commands. Free on your own computer, always on in the cloud. statuz CLISchedule posts and threads from your terminal. Free. Four platformsX, Bluesky, Mastodon and, new, LinkedIn, from one post. AgentsClaude Code, Codex and Cursor post for you over MCP. 13 new · 3 changed · 4 removed All changes New • statuz CLI. Schedule posts and threads from your terminal. Free. • Four platforms. X, Bluesky, Mastodon and, new, LinkedIn, from one post. • Agents. Claude Code, Codex and Cursor post for you over MCP. • Install anywhere. Homebrew, npm, Bun or a shell script, on macOS and Linux. Install (/docs/install). • Agent setup. statuz init connects your agent apps; statuz mcp serves every command over MCP. Agents and MCP (/docs/agents). • Plain-word times. --at "tomorrow 9am" or "fri 17:30", in your time zone. • Checked before it's saved. Every post is checked against every platform's limits when you write it, not at publish time. • Link cards. On Bluesky and LinkedIn a link shows as a card with its title and image. A link that ends the post becomes the card, out of the text. • Never posts twice. Failures retry after 1, 5 and 15 minutes; a half-sent thread resumes where it stopped. Posts that miss their time by more than an hour wait for you. • Local runtime. Data in ~/.statuz, tokens in the OS keychain, a daemon (statuz start) on macOS and Linux. • Statuz Cloud. Always-on publishing from our servers, workspaces with roles and email invites, a web composer, API keys and pay-per-post credits. Photos too big for a platform are shrunk for it. Local or Cloud (/docs/cloud). • Move to Cloud. In the Mac app, move a post to Statuz Cloud from its menu, or all of them from Settings. • Send feedback from statuz feedback, the Mac app's Help menu or the menu bar. It reaches us with what you were doing. Changed • Mac app. Rebuilt in SwiftUI with Liquid Glass for macOS 26: a native client for this Mac and Statuz Cloud. It bundles the CLI, so your agent and the app share one queue. • No licenses. Scheduling, multiple accounts and MCP, Premium in Statuz 1, are free on your own computer now. • Your own app keys. X and LinkedIn need your own developer apps when you run locally; Statuz Cloud brings its own. See Accounts (/docs/accounts). Removed • Video editor and subtitles. • Community forum. • Licenses and Premium. • Web tools (character counter, image resizer, best time to post, hashtag analysis). The thread splitter (/tools/thread-splitter) stays. • Statuz 1 The Mac menu bar app, from the first beta in December 2024. • v1.1.0July 23, 2026 A simpler checkout The last Statuz 1 release: a shorter way to buy Premium. 1 changed · 1 fixed All changes Changed • Checkout. One page from pricing to paid. Fixed • License activation after the first Statuz Cloud prototype. • v1.0.11January 20, 2026 Schedule from the calendar Right-click any day or time in the calendar to start a post there. 2 new All changes New • Quick schedule. Right-click a day or a time slot in the calendar to open the composer set to it. • Coupon codes at checkout. • v1.0.9January 16, 2026 Ready for macOS Tahoe 2 fixed All changes Fixed • App icon follows macOS Tahoe's icon rules. • Cursor quick action in MCP settings works every time. • v1.0.8January 16, 2026 MCP fix 1 fixed All changes Fixed • MCP server reads accounts from the new account format. • v1.0.7January 16, 2026 Accounts carried over 1 changed All changes Changed • Accounts saved by older versions move to the new format on their own, with nothing to reconnect. • v1.0.6January 14, 2026 Community, grown up Replies, roles and votes for the community forum, and a sturdier composer. 3 new · 2 changed · 1 fixed All changes New • Forum replies. Quote a reply, minimize long threads, vote on answers. • Forum roles for moderators. • Release notes for the Mac app, public on the site. Changed • Toolbar closer to Liquid Glass. • Markdown editor opens a file dialog for images. Fixed • Attachments from other apps land in the composer reliably. • v1.0.5January 12, 2026 The Statuz community A forum for questions, ideas and show-and-tell, right on the site. 2 new · 1 changed All changes New • Community forum with notifications, profiles and avatars. • Publishing errors in the calendar. A post that failed shows why, on its day. Changed • More hashtags allowed per post. • v1.0.4January 8, 2026 Calendar badge 1 fixed All changes Fixed • Calendar icon badge updates when posts go out. • v1.0.2January 6, 2026 Image exports 1 fixed All changes Fixed • Image export always asks where to save. • v1.0.1January 6, 2026 Fixes after 1.0 3 fixed All changes Fixed • URL scheme. Media sent through it adds up instead of replacing what's there. • Composer opens in the right place on a cold start. • Send Feedback has a working back button. • v1.0.0January 4, 2026 Statuz 1.0 After a year of betas, Statuz reaches 1.0: onboarding, feedback from the menu bar and a steadier updater. 4 new · 3 fixed All changes New • Onboarding window for new users. • Send Feedback from the menu bar. • Calendar icon menu. Right-click the calendar icon for quick actions. • Learn more links next to each social connection. Fixed • Mastodon posts with several files publish. • Image previews are sharper. • Auto-updater is simpler and more reliable. • v0.13.0January 3, 2026 Clearer Mastodon errors 1 changed All changes Changed • Mastodon errors say what the server refused and why. • v0.12.0January 1, 2026 Hashtag analysis 2 new All changes New • Hashtag analysis on the site: how a hashtag is doing, before you use it. • Anonymous usage tracking , to learn which features get used. • v0.11.0December 15, 2025 Reviews and a lifetime license 2 new All changes New • Leave a review from inside the app. • Lifetime license. Pay once for Premium. • v0.8.0November 6, 2025 Watermarks 1 new All changes New • Watermark your images and videos with your logo as they go out. • v0.7.1November 5, 2025 Remote media 1 new · 1 changed All changes New • Media from a URL. Attach images and videos by link. Changed • Agents can't edit published posts. • v0.7.0November 5, 2025 MCP server Your AI agent can drive Statuz: a built-in MCP server and a URL scheme for everything. 2 new · 1 fixed All changes New • MCP server with settings, and tools to write, schedule and manage posts. • URL scheme covers every feature, for Shortcuts, AppleScript and other apps. Fixed • Duplicate posts can't happen anymore. • v0.6.0October 24, 2025 Calendar polish 2 fixed All changes Fixed • Today in the calendar is highlighted only when you're on today. • Week view grows to fit its posts. • v0.5.1October 19, 2025 Quotes button 1 fixed All changes Fixed • Quotes shows up in the composer again. • v0.5.0October 18, 2025 Scheduling, a calendar and a video editor The most requested feature: schedule posts and see them on a calendar. Plus a video editor with subtitles, and Statuz becomes free with Premium. 8 new · 2 changed All changes New • Scheduling. Pick a time in plain words ("tomorrow 9am") or a quick pick; Statuz posts it and notifies you. • Calendar. Day, week, month and year views. Drag posts to move them; open the composer from any day. • Video editor. Trim, with undo, and export presets. • Subtitles. Generate them for a video and jump between them with Tab. • Image editor. Redact parts of an image and download the result. • Share in Statuz. Send text, links and files from any app with the share extension. • Calendar icon that shows today's date. • Export and import scheduled posts as JSON. Changed • Free with Premium. Statuz is free; scheduling, multiple accounts and subtitled video exports are Premium. • X errors are friendlier. • v0.4.1August 15, 2025 Publish to specific accounts 1 new · 1 fixed All changes New • Pick accounts from Publish. With several accounts set up, the Publish button jumps to account selection when you don't want the default. Fixed • Community search from 0.4.0. • v0.4.0August 13, 2025 X Communities 1 new · 1 changed · 1 fixed All changes New • X Communities. Browse your recent communities or search any you're in, public or private, and post to it. Changed • X error messages say clearly what went wrong. Fixed • Several X accounts connect again. • v0.3.1March 18, 2025 Bluesky fixes 1 changed · 1 fixed All changes Changed • Shorter links on Bluesky. URLs show 32 characters, without https://; #section endings no longer turn into hashtags. Fixed • Notifications for non-default Bluesky accounts open the right profile. • v0.3.0March 10, 2025 Multiple accounts and thread tools The most requested feature: several accounts per platform, with nicknames and defaults. 5 new · 1 fixed All changes New • Multiple accounts per platform, each with its own connection, nickname and default. • Post to one platform at a time; the composer stays open to tweak the next one. • Auto-split. Paste more than 280 characters and Statuz splits it into a thread at word boundaries. You can turn it off. • Link previews in the composer, like X's. • Composer tools. Copy Thread, Start Over, and a cancel button while publishing. Fixed • Bluesky formatting. Line breaks, mentions and long links. • v0.2.0January 27, 2025 Quote your best posts 1 new · 1 changed · 3 fixed All changes New • Quote your best posts. Search your past posts and quote the one that did best. Changed • Context menu opens with Control-click and Option-click too. Fixed • Bluesky hashtags work as they should. • Alt text on X goes out with your images. • Updates no longer error when you're offline. • v0.1.0January 1, 2025 Hello, Mastodon The third platform: post to Mastodon alongside X and Bluesky, from your menu bar. 4 new · 1 changed · 1 fixed All changes New • Mastodon. Everything X and Bluesky have. • Left-click to write. Left-click the menu bar icon to open the composer, right-click for the menu. • Live status of a post on its Publish button. • Sound effects when the composer opens and a post goes out (you can turn them off). Changed • Settings redesigned: accounts and preferences in one place. Fixed • Automatic updates. • v0.0.2December 16, 2024 Settings and composer fixes 2 fixed All changes Fixed • X sign-in stops reusing old credentials, so new tokens take. • Composer clears after a post goes out. • v0.0.1December 13, 2024 Introducing Statuz A menu bar app for macOS that posts to several social accounts in one place. 5 new All changes New • X and Bluesky at once, or just the ones you pick, with rate limits and sessions handled for you. • Menu bar. One click to write; drop files on the icon; a notification when a post goes out or fails. • Threads of up to 15 posts, reordered by drag, with live character counts. • Images and videos by drag and drop, in grids of up to 4, with alt text, previews and automatic video conversion. • Native macOS look, keyboard shortcuts, auto-saved drafts and full accessibility. (/)Schedule posts from your terminal or your agent. LightDarkAuto © 2026 Intenseloop, Inc. (https://intenseloop.com) (https://x.com/intent/follow?screen_name=stewones) --- Statuz docs https://statuz.app/docs.txt In two minutes Install, connect, publish HomebrewnpmBunShell Run this in your terminalbrew install intenseloop/tap/statuzCopy macOS and Linux. Updates with brew upgrade. • statuz init sets up ~/.statuz; pick which agent apps use it • statuz accounts connect --platform bluesky approve in the browser • statuz start publishes scheduled posts Run this in your terminalnpm i -g statuz-cliCopy Installs the binary for your OS and CPU. • statuz init sets up ~/.statuz; pick which agent apps use it • statuz accounts connect --platform bluesky approve in the browser • statuz start publishes scheduled posts Run this in your terminalbun add -g statuz-cliCopy The same package as npm. • statuz init sets up ~/.statuz; pick which agent apps use it • statuz accounts connect --platform bluesky approve in the browser • statuz start publishes scheduled posts Run this in your terminalcurl -fsSL https://statuz.app/install | shCopy Checks the download, installs to ~/.local/bin. Read the install scriptstatuz.app/install#!/bin/sh # Statuz installer: curl -fsSL https://statuz.app/install | sh # # Downloads the statuz binary for this OS and CPU from cdn.statuz.app, # checks its SHA-256 against the release's SHA256SUMS, and puts it in # ${STATUZ_INSTALL_DIR:-$HOME/.local/bin}. Needs curl, tar and shasum or sha256sum. set -eu # statuz.app fills in the latest release when it serves this script. version="${STATUZ_VERSION:-2.0.1}" downloads="${STATUZ_DOWNLOAD_URL:-https://cdn.statuz.app/download/cli}" install_dir="${STATUZ_INSTALL_DIR:-$HOME/.local/bin}" fail() { printf 'statuz install: %s\n' "$1" >&2 exit 1 } need() { command -v "$1" >/dev/null 2>&1 || fail "$1 is required" } need curl need tar case "$(uname -s)" in Darwin) os=darwin ;; Linux) os=linux ;; *) fail "unsupported OS $(uname -s): Statuz runs on macOS and Linux" ;; esac case "$(uname -m)" in arm64 | aarch64) arch=arm64 ;; x86_64 | amd64) arch=x64 ;; *) fail "unsupported CPU $(uname -m): Statuz needs arm64 or x64" ;; esac # An x64 shell under Rosetta on Apple silicon: install the native build. if [ "$os" = darwin ] && [ "$arch" = x64 ] && [ "$(sysctl -n sysctl.proc_translated 2>/dev/null || echo 0)" = 1 ]; then arch=arm64 fi if command -v shasum >/dev/null 2>&1; then sha256() { shasum -a 256 "$1" | cut -d ' ' -f 1; } elif command -v sha256sum >/dev/null 2>&1; then sha256() { sha256sum "$1" | cut -d ' ' -f 1; } else fail "shasum or sha256sum is required" fi [ -n "$version" ] || fail "no version: run it as curl -fsSL https://statuz.app/install | sh, or set STATUZ_VERSION" file="statuz-cli-$os-$arch-$version.tgz" release="$downloads/$version" work="$(mktemp -d)" trap 'rm -rf "$work"' EXIT INT TERM sums="$(curl -fsSL "$release/SHA256SUMS")" || fail "could not reach $release/SHA256SUMS" checksum="$(printf '%s\n' "$sums" | sed -n "s/^\([0-9a-f]\{64\}\) $file\$/\1/p" | head -n 1)" [ -n "$checksum" ] || fail "statuz $version has no build for $os-$arch" printf 'Downloading statuz %s for %s-%s\n' "$version" "$os" "$arch" curl -fsSL "$release/$file" -o "$work/statuz.tgz" || fail "download failed: $release/$file" actual="$(sha256 "$work/statuz.tgz")" [ "$actual" = "$checksum" ] || fail "checksum mismatch (expected $checksum, got $actual); nothing was installed" tar -xzf "$work/statuz.tgz" -C "$work" package/bin/statuz || fail "the package has no bin/statuz" mkdir -p "$install_dir" mv "$work/package/bin/statuz" "$install_dir/statuz" chmod +x "$install_dir/statuz" printf '\nInstalled statuz %s to %s/statuz\n' "$version" "$install_dir" case ":$PATH:" in *":$install_dir:"*) ;; *) printf '\n%s is not on your PATH. Add this to your shell profile:\n' "$install_dir" printf ' export PATH="%s:$PATH"\n' "$install_dir" ;; esac printf '\nNext:\n' printf ' statuz init set up ~/.statuz and the agent guide\n' printf ' statuz accounts connect connect X, Bluesky, Mastodon or LinkedIn\n' printf '\nDocs: https://statuz.app/docs\n' • statuz init sets up ~/.statuz; pick which agent apps use it • statuz accounts connect --platform bluesky approve in the browser • statuz start publishes scheduled posts Start Quick startInstall Statuz, connect Bluesky and schedule your first post in two minutes. (/docs/quickstart)Install the Statuz CLIInstall the Statuz CLI on macOS or Linux with Homebrew, npm, Bun or a shell script. Update and uninstall. (/docs/install) Guides Agents and MCPLet Claude Code, Cursor, Codex or Claude Desktop schedule posts to X, Bluesky, Mastodon and LinkedIn with the Statuz CLI or its MCP server. (/docs/agents)Local or CloudRun Statuz free on your own computer, or on Statuz Cloud for always-on publishing, teams and a web composer. (/docs/cloud)Connect accountsConnect Bluesky, Mastodon, X and LinkedIn to Statuz, and set up your own X and LinkedIn developer app. (/docs/accounts)Scheduling postsSchedule posts to Bluesky, X, Mastodon and LinkedIn with plain words like "tomorrow 9am". Threads, drafts, time zones and missed posts. (/docs/scheduling) Reference CLI referenceEvery statuz command with its flags, MCP tool name, where it runs and examples. Generated from the command catalog. (/docs/cli) (/)Schedule posts from your terminal or your agent. LightDarkAuto © 2026 Intenseloop, Inc. (https://intenseloop.com) (https://x.com/intent/follow?screen_name=stewones) --- Install Statuz https://statuz.app/download.txt Mac app Statuz for Mac One queue for you and your agent, in your menu bar. • Menu bar queue • Composer • Calendar • CLI included macOS 26 or laterv2.0.1 Download for MacIntel Mac Open this page on your Mac, or use the CLI below on Linux. Pick how to install HomebrewnpmBunShell Run this in your terminalbrew install intenseloop/tap/statuzCopy macOS and Linux. Updates with brew upgrade. • statuz init sets up ~/.statuz; pick which agent apps use it • statuz accounts connect --platform bluesky approve in the browser • statuz start publishes scheduled posts Run this in your terminalnpm i -g statuz-cliCopy Installs the binary for your OS and CPU. • statuz init sets up ~/.statuz; pick which agent apps use it • statuz accounts connect --platform bluesky approve in the browser • statuz start publishes scheduled posts Run this in your terminalbun add -g statuz-cliCopy The same package as npm. • statuz init sets up ~/.statuz; pick which agent apps use it • statuz accounts connect --platform bluesky approve in the browser • statuz start publishes scheduled posts Run this in your terminalcurl -fsSL https://statuz.app/install | shCopy Checks the download, installs to ~/.local/bin. Read the install scriptstatuz.app/install#!/bin/sh # Statuz installer: curl -fsSL https://statuz.app/install | sh # # Downloads the statuz binary for this OS and CPU from cdn.statuz.app, # checks its SHA-256 against the release's SHA256SUMS, and puts it in # ${STATUZ_INSTALL_DIR:-$HOME/.local/bin}. Needs curl, tar and shasum or sha256sum. set -eu # statuz.app fills in the latest release when it serves this script. version="${STATUZ_VERSION:-2.0.1}" downloads="${STATUZ_DOWNLOAD_URL:-https://cdn.statuz.app/download/cli}" install_dir="${STATUZ_INSTALL_DIR:-$HOME/.local/bin}" fail() { printf 'statuz install: %s\n' "$1" >&2 exit 1 } need() { command -v "$1" >/dev/null 2>&1 || fail "$1 is required" } need curl need tar case "$(uname -s)" in Darwin) os=darwin ;; Linux) os=linux ;; *) fail "unsupported OS $(uname -s): Statuz runs on macOS and Linux" ;; esac case "$(uname -m)" in arm64 | aarch64) arch=arm64 ;; x86_64 | amd64) arch=x64 ;; *) fail "unsupported CPU $(uname -m): Statuz needs arm64 or x64" ;; esac # An x64 shell under Rosetta on Apple silicon: install the native build. if [ "$os" = darwin ] && [ "$arch" = x64 ] && [ "$(sysctl -n sysctl.proc_translated 2>/dev/null || echo 0)" = 1 ]; then arch=arm64 fi if command -v shasum >/dev/null 2>&1; then sha256() { shasum -a 256 "$1" | cut -d ' ' -f 1; } elif command -v sha256sum >/dev/null 2>&1; then sha256() { sha256sum "$1" | cut -d ' ' -f 1; } else fail "shasum or sha256sum is required" fi [ -n "$version" ] || fail "no version: run it as curl -fsSL https://statuz.app/install | sh, or set STATUZ_VERSION" file="statuz-cli-$os-$arch-$version.tgz" release="$downloads/$version" work="$(mktemp -d)" trap 'rm -rf "$work"' EXIT INT TERM sums="$(curl -fsSL "$release/SHA256SUMS")" || fail "could not reach $release/SHA256SUMS" checksum="$(printf '%s\n' "$sums" | sed -n "s/^\([0-9a-f]\{64\}\) $file\$/\1/p" | head -n 1)" [ -n "$checksum" ] || fail "statuz $version has no build for $os-$arch" printf 'Downloading statuz %s for %s-%s\n' "$version" "$os" "$arch" curl -fsSL "$release/$file" -o "$work/statuz.tgz" || fail "download failed: $release/$file" actual="$(sha256 "$work/statuz.tgz")" [ "$actual" = "$checksum" ] || fail "checksum mismatch (expected $checksum, got $actual); nothing was installed" tar -xzf "$work/statuz.tgz" -C "$work" package/bin/statuz || fail "the package has no bin/statuz" mkdir -p "$install_dir" mv "$work/package/bin/statuz" "$install_dir/statuz" chmod +x "$install_dir/statuz" printf '\nInstalled statuz %s to %s/statuz\n' "$version" "$install_dir" case ":$PATH:" in *":$install_dir:"*) ;; *) printf '\n%s is not on your PATH. Add this to your shell profile:\n' "$install_dir" printf ' export PATH="%s:$PATH"\n' "$install_dir" ;; esac printf '\nNext:\n' printf ' statuz init set up ~/.statuz and the agent guide\n' printf ' statuz accounts connect connect X, Bluesky, Mastodon or LinkedIn\n' printf '\nDocs: https://statuz.app/docs\n' • statuz init sets up ~/.statuz; pick which agent apps use it • statuz accounts connect --platform bluesky approve in the browser • statuz start publishes scheduled posts Runs on macOSApple silicon and Intel. Linuxarm64 and x64, with a desktop session. Not for serversVMs and headless boxes: use Statuz Cloud. Statuz Cloud No install: sign in oncenpx statuz-cli loginCopy Then statuz use cloud. Posts go out while your computer sleeps. (/)Schedule posts from your terminal or your agent. LightDarkAuto © 2026 Intenseloop, Inc. (https://intenseloop.com) (https://x.com/intent/follow?screen_name=stewones) --- Pay per post https://statuz.app/pricing.txt Prices Bluesky, Mastodon, LinkedIn, Reddit Beta$0.01 a post X.com$0.03 a post X.com with a link$0.30 a post Each seat past the owner's$5 a month, prorated the month they join A thread costs each of its posts. Drafts, scheduling, edits, agent calls and posts that fail are free. What a month costs A post a day to LinkedIn$0.30 A post a day to X.com, Bluesky and LinkedIn$1.50 A team of 3, a post a day everywhere$11.80 Credits From $5Add credits with a card on Stripe. The owner of the workspace pays. Good for 6 monthsThe oldest credits are spent first. Auto-reloadOff until you turn it on. Then it adds $20 when the balance drops below $5. Posts wait instead of failingWhen the balance runs out, scheduled posts wait and go out in order once you add credits. Bought Statuz 1? Sign in with the same email and add credits or save a card, and $4 is on us, once. Questions Is there a subscription?No. You add prepaid credits, from $5, and each published post spends a little. Drafts, scheduling and edits are free. What happens when credits run out?Scheduled posts wait instead of failing. Add credits and they go out in order. Auto-reload can top up the balance from a saved card. Do credits expire?Yes, 6 months after you add them. The oldest credits are spent first, and Statuz warns you 14 days before. (/)Schedule posts from your terminal or your agent. LightDarkAuto © 2026 Intenseloop, Inc. (https://intenseloop.com) (https://x.com/intent/follow?screen_name=stewones) --- Privacy Policy https://statuz.app/privacy.txt Statuz is made by Intenseloop ("we"). This covers the Statuz CLI, the Mac app, Statuz Cloud (statuz.cloud) and statuz.app. In short • Local: your posts, media and tokens stay on your computer. • Cloud: we hold what we need to publish. Payments go through Stripe. • Usage counts: never your content. Anonymous until you sign in to Cloud or join the newsletter. • Newsletter: only if you leave your email when downloading. Ask and we delete it. 1. On your computer • Posts, drafts, media and settings: ~/.statuz. • Tokens and app secrets: your OS keychain (Keychain on macOS, libsecret on Linux). • Publishing goes straight to the platforms, not through our servers. • Sign-in happens on each platform's page and returns to 127.0.0.1. We never see passwords. • No account with us. Your own X or LinkedIn developer app is between you and that platform. 2. Statuz Cloud We store: • Your email, name, orgs and teams. • Platform tokens, encrypted. • Posts, threads, media and publishing results. • API keys, as a hash and short prefix only. • Billing records: deposits, spending, credit expiry. Payments are processed by Stripe. We never receive or store card numbers (stripe.com/privacy (https://stripe.com/privacy)). We keep payment records as the law requires. If you bought Statuz 1, we check your sign-in email against our Statuz 1 license records when you save a card or add credits, to add your thank-you credit once. Our analytics (UserPath, section 3) learn who you are from Statuz Cloud's server: your Cloud account id, email, name and profile picture when you sign in (on the browser you signed in from too, so its earlier visits to statuz.app and statuz.cloud become yours), whether it was a sign-up or a sign-in and with which provider, and each deposit or auto-reload (amount and currency) as a purchase. Never your posts, accounts or tokens. We use Cloud data only to run the service. We don't sell it or use it for advertising. 3. Usage counts The CLI, MCP server, daemon, Mac app and Statuz Cloud send usage counts to our analytics (UserPath). Each event carries only: • Commands: name, surface (CLI, MCP, relay, daemon; on Cloud: web, Mac app, API key), local or Cloud, success. • Publishing: platform, local or Cloud, scheduled or not, thread length, media counts, error code on failure. • Scheduling: number of platforms and accounts, media counts. • Accounts: platform connected or removed, a sign-in's health changing. • Posts: a published post taken down, and by whom (moderator, automated, the platform, or deleted on purpose). • Reddit (beta): which of its two endpoints (flairs, subreddit requirements) replied in a shape we didn't expect. • Daemon: OS, service manager (launchd, systemd or none), why it refused to start. • Setup: that statuz init ran. • Feedback: that it was sent, its kind, how (signed in or not), the client and agent, the command it is about, and whether a screenshot came along. Never post text, account names or handles, media, links or tokens. Each computer sends them under a random id kept in ~/.statuz, never with your name or email. When that computer's CLI calls Statuz Cloud, it sends that id along, and Statuz Cloud links the computer's counts to your Cloud account (section 2). Counts from Statuz Cloud itself carry your Cloud account id. There is no opt-out. If you don't want them sent, don't use Statuz. 4. This website statuz.app and statuz.cloud count page views and downloads with UserPath, as one site: following a link from one to the other keeps the same anonymous id. No ad pixels or trackers. Our server sees your IP and browser details to serve the page, not to identify you. Newsletter Downloading the Mac app asks, optionally, for your name and email. If you leave your email: • We store it with your name (if given) and when you joined, on Statuz Cloud, to send you release news. We don't sell or share it. • The signup carries this browser's anonymous UserPath id, and Statuz Cloud tells UserPath that this visitor is that email (and name), so we can see which pages brought you. statuz.app itself never sends your email to UserPath. • Every newsletter email has an unsubscribe link. To have your email, name and that visit history deleted, write to us (below). Leave the email empty, or choose "Just download", and nothing is stored. 5. The platforms Published posts go to X, Bluesky, Mastodon, LinkedIn or Reddit under their own privacy policies. Reddit is a beta: Statuz connects it through the Statuz browser extension instead of Reddit's own sign-in. The extension reads your reddit.com cookies only when you click Allow in its window, and only to connect the account you chose. Statuz never sees your Reddit password. The session it hands over is kept like every other platform's sign-in (section 1 locally, section 2 on Cloud). 6. Keeping and deleting • Local: statuz accounts remove deletes an account's tokens. Removing ~/.statuz deletes the rest. • Cloud: delete posts, media, API keys and accounts anytime. Email us to delete your Cloud account. Billing records are kept as tax law requires. • Newsletter: unsubscribe from any email, or email us to delete your signup and the visits linked to it. • Feedback: what you send with statuz feedback, from statuz.cloud or the Mac app (the text, an optional screenshot, the app and page details listed with it) goes to our team and is kept to answer it. Email us to delete it. • Usage counts are kept in aggregate. 7. Security Tokens are in the keychain locally and encrypted on Cloud. All traffic uses TLS. If a breach affects you, we'll tell you. 8. Your rights Ask for a copy of your data, a correction or deletion. We answer within 30 days. 9. Changes We update this page and its date. Significant changes for Cloud users also go out by email. 10. Contact support@statuz.app (mailto:support@statuz.app) (/)Schedule posts from your terminal or your agent. LightDarkAuto © 2026 Intenseloop, Inc. (https://intenseloop.com) (https://x.com/intent/follow?screen_name=stewones) --- Terms of Service https://statuz.app/terms.txt These terms are between you and Intenseloop ("we") for the Statuz CLI, the Mac app, Statuz Cloud (statuz.cloud) and statuz.app ("Statuz"). Using Statuz means you accept them. 1. What Statuz is Statuz writes, schedules and publishes posts to X, Bluesky, Mastodon, LinkedIn and Reddit, on your computer ("local") or our servers ("Cloud"), by you or through AI agents. Reddit is a beta: it works through a browser extension instead of Reddit's own sign-in, may change, and may be limited or withdrawn at any time. 2. CLI and Mac app Free, closed source, owned by Intenseloop. You get a personal, non-exclusive, non-transferable license to use them. You may not: • Redistribute, sell or sublicense them, except by linking to our official downloads. • Reverse engineer, decompile or modify them, except where the law allows. • Remove our notices or pass Statuz off as yours. 3. Your content You're responsible for what you post, by hand or through an agent, and for each platform's rules, including limits on automation and spam. No spam, harassment, impersonation or anything illegal. 4. Your developer apps Locally, X and LinkedIn use developer apps you create. Their keys, limits and costs are between you and the platform. Keep your keys secret. 5. Statuz Cloud You're responsible for the people you invite and for what your API keys and agent grants do. Prepaid credits • Minimum deposit: $5. • Each successful publish to one account costs the price at statuz.app/pricing (https://statuz.app/pricing) when it publishes. Failed or cancelled publishes are free. • Extra seats: $5 a month from your credits on your org's billing day. The owner's seat is included. • Credits expire six months after purchase, oldest spent first. We warn you before they expire. • Credits are non-refundable and not exchangeable for cash, except where the law requires. Charged in error, such as a duplicate payment? Email us within 30 days. • Auto-reload is off until you turn it on. Then we charge your saved card your chosen amount when the balance drops below your threshold. New prices apply to publishes after the change and are announced on the pricing page first. Availability Platforms go down, change APIs, rate-limit or reject posts. We don't guarantee any post publishes at a given time, or at all. We may suspend accounts that break these terms or put the service or platforms at risk. 6. Privacy See the Privacy Policy (/privacy). 7. No warranty Statuz is provided "as is" and "as available", without warranties of any kind, including fitness for a particular purpose. Platforms may stop allowing it to post. 8. Limitation of liability To the extent the law allows, we aren't liable for indirect or consequential damages, lost profits or data, missed or failed posts, or platform actions on your accounts. Our total liability is limited to what you paid us in the 12 months before the claim, or $50 if you paid nothing. 9. Ending Stop anytime. We can end your access if you break these terms. Sections 2, 3, 7 and 8 survive. 10. Changes We update the date above. Material changes for Cloud users are emailed at least 30 days ahead. Continued use means you accept them. 11. Contact support@statuz.gg (mailto:support@statuz.gg) (/)Schedule posts from your terminal or your agent. LightDarkAuto © 2026 Intenseloop, Inc. (https://intenseloop.com) (https://x.com/intent/follow?screen_name=stewones) --- Free tools https://statuz.app/tools.txt Thread splitterPaste long text and split it into a thread that fits X (280), Bluesky (300) or Mastodon (500), with numbering. Free, in your browser. (/tools/thread-splitter)LinkedIn post previewType a LinkedIn post to see it as the feed shows it, where …see more cuts it, and your count against the 3,000-character limit. Then schedule it. (/tools/linkedin-post-preview) (/)Schedule posts from your terminal or your agent. LightDarkAuto © 2026 Intenseloop, Inc. (https://intenseloop.com) (https://x.com/intent/follow?screen_name=stewones) --- Schedule posts from your menu bar https://statuz.app/index.txt Mac appAgents & CLICloud app Schedule posts from your menu bar A native Mac app with your queue, a composer and a calendar for X, Bluesky, Mastodon and LinkedIn. Free on your Mac, always on with Statuz Cloud. Download for Mac (/download?from=home-hero#mac)Take the tour (#mac-tour) ⌃⌘C: new post from any appUp nextTomorrow 9:00One composer, four placesMissed its time: publish now? • 1 Your queue in the menu bar What goes out next and what needs you, one click away. Start or stop publishing from there. • 2 Write once, post everywhere Threads, media and alt text, with every platform’s limit checked as you type. ⌃⌘C opens it from any app. • 3 See your whole week Every scheduled post on a calendar: this Mac’s and your Statuz Cloud workspace’s, side by side. • 4 Every account, one list Accounts on this Mac and in Statuz Cloud, each with how its sign-in is doing. Also in the Mac app macOS 26 or later Share from any appSend a link, text or up to 4 files to a new post. The CLI insideIt bundles the same CLI, so your agent and the app share one queue. Local or CloudFree on this Mac, or signed in to your Statuz Cloud workspace. Or both. Keys in your keychainSign-ins live in the macOS keychain, never in plain files. Schedule posts from your terminal A free CLI and MCP server for X, Bluesky, Mastodon and LinkedIn. Claude Code, Codex and Cursor drive it, and so can you. Get started (/docs/quickstart)Connect your agent (#agents) Terminal — statuz $ statuz posts create --text "Shipping v2 today" --at "fri 17:30"id: p_uqb9pezdt6status: scheduledat: 2026-10-09T20:30:00.000Zdestinations: ACCOUNTID STATUS ATTEMPTS acc_x pending 0 acc_bsky pending 0 acc_masto pending 0 acc_li pending 0 Your agent • Turn the changelog into a thread and schedule it for tomorrow 9am. • statuz · posts_create3 posts · X and Bluesky · tomorrow 9:00 AM • Scheduled: 3 posts, each under every limit. It goes out Monday at 9:00 AM. • What's going out this week? • statuz · posts_list2 scheduled • Your thread on Monday, then "Shipping v2 today" on Friday at 5:30 PM. Terminal $ statuz statusdaemon: running: yes service: launchdaccounts: 4scheduled: 2attention: 0next: id: p_yk4rwqgsvp at: 2026-10-05T12:00:00.000Z One post, four placesFri 5:30 PMscheduledPublished to BlueskyLinkedIn timed out: retry in 5 min Terminal $ statuz accounts connect --platform blueskyaccount: id: acc_bsky platform: bluesky handle: statuz.app health: ok$ statuz accounts listID PLATFORM HANDLE REMOTEID DEFAULT HEALTHacc_x x @statuzapp 1 yes okacc_bsky bluesky statuz.app did:plc:statuz yes okacc_masto mastodon @statuz@mastodon.social 2 yes okacc_li linkedin Statuz urn:li:person:3 yes ok Terminal $ statuz posts create \ --text "1/ Why we rebuilt Statuz" \ --text "2/ Agents are users now" \ --text "3/ So every command is one spec" \ --at "tomorrow 9am"id: p_yk4rwqgsvpstatus: scheduledthread: 1/ Why we rebuilt Statuz 2/ Agents are users now 3/ So every command is one specat: 2026-10-05T12:00:00.000Z Terminal $ statuz posts create --text "$(cat launch.md)" --to xerror: X.com (@statuzapp): 352 characters, the limit is 280 thread.0.text: X.com (@statuzapp): 352 characters, the limit is 280$ statuz posts create --text "Statuz 2 ships" --to x --at "fri 9am"status: scheduled Terminal $ statuz startdaemon: running: yes service: launchd$ statuz statusaccounts: 4scheduled: 2attention: 0next: at: 2026-10-05T12:00:00.000Z • Terminal $ statuz accounts connect --platform blueskyaccount: id: acc_bsky platform: bluesky handle: statuz.app health: ok$ statuz accounts listID PLATFORM HANDLE REMOTEID DEFAULT HEALTHacc_x x @statuzapp 1 yes okacc_bsky bluesky statuz.app did:plc:statuz yes okacc_masto mastodon @statuz@mastodon.social 2 yes okacc_li linkedin Statuz urn:li:person:3 yes ok 1 Connect once Sign in to each platform in your browser. Tokens go to your keychain, never to a file. • Terminal $ statuz posts create \ --text "1/ Why we rebuilt Statuz" \ --text "2/ Agents are users now" \ --text "3/ So every command is one spec" \ --at "tomorrow 9am"id: p_yk4rwqgsvpstatus: scheduledthread: 1/ Why we rebuilt Statuz 2/ Agents are users now 3/ So every command is one specat: 2026-10-05T12:00:00.000Z 2 Write it your way A post or a thread of up to 25, now or "tomorrow 9am" in your time zone. • Terminal $ statuz posts create --text "$(cat launch.md)" --to xerror: X.com (@statuzapp): 352 characters, the limit is 280 thread.0.text: X.com (@statuzapp): 352 characters, the limit is 280$ statuz posts create --text "Statuz 2 ships" --to x --at "fri 9am"status: scheduled 3 Checked before it’s saved Every post meets every platform’s limits up front, so nothing fails at 9am for being too long. • Terminal $ statuz startdaemon: running: yes service: launchd$ statuz statusaccounts: 4scheduled: 2attention: 0next: at: 2026-10-05T12:00:00.000Z 4 Out on time, once The daemon publishes while your computer is on and retries what a platform drops. A copy that went out never goes again. Your agent • Anything that needs me? • statuz · status1 failed: LinkedIn timed out • The LinkedIn copy of "Shipping v2 today" timed out. X, Bluesky and Mastodon went out. Retry LinkedIn? • Yes, and move tomorrow’s posts to 10am. • statuz · posts_publish, posts_editLinkedIn published · 3 posts moved • Done. LinkedIn is out, and tomorrow starts at 10:00 AM. • Schedule this thread for Friday 9am • What's going out this week? • Retry the LinkedIn post that failed • Move tomorrow's posts to 10am • You or your agentThe CLI, MCP or the Mac app runs statuz • This computerThe daemon and your keychain Your own sign-in • The platformsX, Bluesky, Mastodon, LinkedIn • Our serversNever in the middle • Never posts twice Failures retry after 1, 5 and 15 minutes. A half-sent thread picks up where it stopped. • Late posts wait Computer asleep past the time? The post waits for you instead of going out hours late. • Keys in your keychain Tokens live in the OS keychain. Nothing in plain files, nothing on our side. • Free, no account No sign-up, no watermark, no post limit on your own computer. How scheduling works (/docs/scheduling) Try it Shipping Statuz v2 today: one CLI for X, Bluesky, Mastodon and LinkedIn. statuz.app 184217404291739917 Thread WhenNowTomorrow 9amFri 17:30Mon 10am TerminalYour agent statuz posts create \ --text 'Shipping Statuz v2 today: one CLI for X, Bluesky, Mastodon and LinkedIn. statuz.app' \ --at 'tomorrow 9am'Copy Install Install Statuz HomebrewnpmBunShell Run this in your terminalbrew install intenseloop/tap/statuzCopy macOS and Linux. Updates with brew upgrade. • statuz init sets up ~/.statuz; pick which agent apps use it • statuz accounts connect --platform bluesky approve in the browser • statuz start publishes scheduled posts Run this in your terminalnpm i -g statuz-cliCopy Installs the binary for your OS and CPU. • statuz init sets up ~/.statuz; pick which agent apps use it • statuz accounts connect --platform bluesky approve in the browser • statuz start publishes scheduled posts Run this in your terminalbun add -g statuz-cliCopy The same package as npm. • statuz init sets up ~/.statuz; pick which agent apps use it • statuz accounts connect --platform bluesky approve in the browser • statuz start publishes scheduled posts Run this in your terminalcurl -fsSL https://statuz.app/install | shCopy Checks the download, installs to ~/.local/bin. Read the install scriptstatuz.app/install#!/bin/sh # Statuz installer: curl -fsSL https://statuz.app/install | sh # # Downloads the statuz binary for this OS and CPU from cdn.statuz.app, # checks its SHA-256 against the release's SHA256SUMS, and puts it in # ${STATUZ_INSTALL_DIR:-$HOME/.local/bin}. Needs curl, tar and shasum or sha256sum. set -eu # statuz.app fills in the latest release when it serves this script. version="${STATUZ_VERSION:-2.0.1}" downloads="${STATUZ_DOWNLOAD_URL:-https://cdn.statuz.app/download/cli}" install_dir="${STATUZ_INSTALL_DIR:-$HOME/.local/bin}" fail() { printf 'statuz install: %s\n' "$1" >&2 exit 1 } need() { command -v "$1" >/dev/null 2>&1 || fail "$1 is required" } need curl need tar case "$(uname -s)" in Darwin) os=darwin ;; Linux) os=linux ;; *) fail "unsupported OS $(uname -s): Statuz runs on macOS and Linux" ;; esac case "$(uname -m)" in arm64 | aarch64) arch=arm64 ;; x86_64 | amd64) arch=x64 ;; *) fail "unsupported CPU $(uname -m): Statuz needs arm64 or x64" ;; esac # An x64 shell under Rosetta on Apple silicon: install the native build. if [ "$os" = darwin ] && [ "$arch" = x64 ] && [ "$(sysctl -n sysctl.proc_translated 2>/dev/null || echo 0)" = 1 ]; then arch=arm64 fi if command -v shasum >/dev/null 2>&1; then sha256() { shasum -a 256 "$1" | cut -d ' ' -f 1; } elif command -v sha256sum >/dev/null 2>&1; then sha256() { sha256sum "$1" | cut -d ' ' -f 1; } else fail "shasum or sha256sum is required" fi [ -n "$version" ] || fail "no version: run it as curl -fsSL https://statuz.app/install | sh, or set STATUZ_VERSION" file="statuz-cli-$os-$arch-$version.tgz" release="$downloads/$version" work="$(mktemp -d)" trap 'rm -rf "$work"' EXIT INT TERM sums="$(curl -fsSL "$release/SHA256SUMS")" || fail "could not reach $release/SHA256SUMS" checksum="$(printf '%s\n' "$sums" | sed -n "s/^\([0-9a-f]\{64\}\) $file\$/\1/p" | head -n 1)" [ -n "$checksum" ] || fail "statuz $version has no build for $os-$arch" printf 'Downloading statuz %s for %s-%s\n' "$version" "$os" "$arch" curl -fsSL "$release/$file" -o "$work/statuz.tgz" || fail "download failed: $release/$file" actual="$(sha256 "$work/statuz.tgz")" [ "$actual" = "$checksum" ] || fail "checksum mismatch (expected $checksum, got $actual); nothing was installed" tar -xzf "$work/statuz.tgz" -C "$work" package/bin/statuz || fail "the package has no bin/statuz" mkdir -p "$install_dir" mv "$work/package/bin/statuz" "$install_dir/statuz" chmod +x "$install_dir/statuz" printf '\nInstalled statuz %s to %s/statuz\n' "$version" "$install_dir" case ":$PATH:" in *":$install_dir:"*) ;; *) printf '\n%s is not on your PATH. Add this to your shell profile:\n' "$install_dir" printf ' export PATH="%s:$PATH"\n' "$install_dir" ;; esac printf '\nNext:\n' printf ' statuz init set up ~/.statuz and the agent guide\n' printf ' statuz accounts connect connect X, Bluesky, Mastodon or LinkedIn\n' printf '\nDocs: https://statuz.app/docs\n' • statuz init sets up ~/.statuz; pick which agent apps use it • statuz accounts connect --platform bluesky approve in the browser • statuz start publishes scheduled posts Connect your agent Choose your agent CLIMCP Claude CodeCursorCodexClaude DesktopVS CodeWindsurfGemini CLICopilot CLIOpenCodeLM StudioOther Your agent runs statuz in a terminal, like you do. statuz init lets you pick which apps learn how. Run this in your terminalstatuz initCopy • Tick Claude Code in the list it shows; the Statuz skill goes in ~/.claude/skills. • Ask: "Schedule a post to Bluesky for tomorrow 9am." Claude Code runs statuz for you. Run this in your terminalclaude mcp add statuz -- statuz mcpCopy • In Claude Code, run /mcp and check statuz is connected. • Ask: "Schedule a post to Bluesky for tomorrow 9am." Run this in your terminalstatuz initCopy • Tick Cursor in the list it shows; the Statuz skill goes in ~/.cursor/skills. • The agent runs statuz in its terminal and asks before each command. Add to ~/.cursor/mcp.json{ "mcpServers": { "statuz": { "command": "statuz", "args": ["mcp"] } } } • Open Cursor Settings → MCP and turn statuz on. • Ask the agent to draft a thread with posts_create and draft: true. Run this in your terminalstatuz initCopy • Tick Codex in the list it shows; the Statuz skill goes in ~/.agents/skills. • Ask: "What is scheduled this week?" Codex runs statuz and shows each result. Run this in your terminalcodex mcp add statuz -- statuz mcpCopy • Start codex; the statuz tools load with it. • Ask: "What is scheduled this week on Statuz?" Claude Desktop can't run terminal commands. Use MCP: Statuz shows up as tools in a new chat. Run this in your terminalstatuz agents add --agent claude-desktopCopy • It adds Statuz to claude_desktop_config.json; your other servers stay. • Restart Claude Desktop. Statuz shows up under the tools icon in a new chat. Run this in your terminalstatuz initCopy • Tick VS Code in the list it shows; the Statuz skill goes in ~/.copilot/skills. • Copilot in agent mode runs statuz in the terminal after you approve. Add to .vscode/mcp.json{ "servers": { "statuz": { "type": "stdio", "command": "statuz", "args": ["mcp"] } } } • Run "MCP: List Servers" and start statuz. • Use it from Copilot Chat in agent mode. Run this in your terminalstatuz initCopy • Tick Windsurf in the list it shows; the Statuz skill goes in ~/.codeium/windsurf/skills. • Cascade runs statuz in its terminal. Add to ~/.codeium/windsurf/mcp_config.json{ "mcpServers": { "statuz": { "command": "statuz", "args": ["mcp"] } } } • Refresh the MCP list in Cascade. • Ask Cascade to schedule a post. Run this in your terminalstatuz initCopy • Tick Gemini CLI in the list it shows; the Statuz skill goes in ~/.gemini/skills. • Gemini CLI asks before it runs each statuz command. Add to ~/.gemini/settings.json{ "mcpServers": { "statuz": { "command": "statuz", "args": ["mcp"] } } } • In Gemini CLI, run /mcp and check statuz is listed. • Ask: "Draft a thread for Friday at 10." Run this in your terminalstatuz initCopy • Tick Copilot CLI in the list it shows; the Statuz skill goes in ~/.copilot/skills. • Copilot CLI asks before it runs each statuz command. Add to ~/.copilot/mcp-config.json{ "mcpServers": { "statuz": { "type": "local", "command": "statuz", "args": ["mcp"], "tools": ["*"] } } } • In copilot, run /mcp and check statuz is listed. • Ask: "What is scheduled this week on Statuz?" Run this in your terminalstatuz initCopy • Tick OpenCode in the list it shows; the Statuz skill goes in ~/.config/opencode/skills. • OpenCode runs statuz in its shell. Add to ~/.config/opencode/opencode.json{ "mcp": { "statuz": { "type": "local", "command": ["statuz", "mcp"] } } } • Start opencode; the statuz tools load with it. • Ask it to schedule a post to Mastodon. LM Studio can't run terminal commands. Use MCP: Statuz shows up as tools in a new chat. Run this in your terminalstatuz agents add --agent lm-studioCopy • It adds Statuz to ~/.lmstudio/mcp.json; your other servers stay. • LM Studio loads it on save. Chat with a model that can call tools. Any agent with a terminalstatuz help --jsonCopy • Every command and flag with its JSON Schema, for the agent to read. • Add --json to any command; errors come back with a code and a plain message. Any MCP client: start this over stdiostatuz mcpCopy • Or use HTTP: http://127.0.0.1:3850/mcp while statuz start runs. • Send the token in ~/.statuz/run/relay.token as a Bearer header. A social media scheduler that never sleeps Statuz Cloud posts to X, Bluesky, Mastodon and LinkedIn from our servers, for you, your team and your AI agent. From $0.01 a post, no subscription. Get started (https://statuz.cloud/signin)Pricing (/pricing) • X.com • Bluesky • Mastodon • LinkedIn • RedditBeta statuz.cloud/queue statuz.cloud/compose statuz.cloud/queue Posted at 3:00 AM, laptop closed5 people, one queuePublished to all fourLinkedIn timed out: retry in 5 min statuz.cloud/accounts statuz.cloud/compose statuz.cloud/queue statuz.cloud/team • statuz.cloud/accounts 1 Connect in a click Sign in to each platform once. Statuz Cloud brings its own X and LinkedIn apps: no developer keys. • statuz.cloud/compose 2 Write in the browser Threads, media and alt text, checked against every platform as you type. Or from the Mac app, the CLI or your agent. • statuz.cloud/queue 3 Plan the week Every post on a calendar. Your computer can be closed: we publish at the time you picked. • statuz.cloud/team 4 Bring the team Viewers look, members write, admins run keys and accounts. Nobody hands out a password. Your agent • Schedule the launch thread for Monday 9am, team account. • statuz · posts_create3 posts · the workspace's 4 accounts · Mon 9:00 AM • Scheduled on Statuz Cloud. It goes out Monday at 9:00 AM, even with your laptop closed. • Sign in as you • MCP at api.statuz.cloud/mcp • Read-only API keys • Same queue as the team Terminal $ npx statuz-cli loginOpen this link to sign in: https://api.statuz.cloud/oauth/authorize?…Signed in to Statuz Cloud (https://api.statuz.cloud).$ statuz use cloud$ statuz posts create --text "Launch day" --at "mon 9am"id: p_k2v8tqwm4dstatus: scheduled • Your team and agentsWeb, Mac app, CLI or MCP by role • Statuz CloudAlways on, encrypted sign-ins At the time you picked • The platformsX, Bluesky, Mastodon, LinkedIn • Your passwordsNobody on the team ever sees one • Roles Viewers look. Members write and change their own posts. Admins run the team; the owner pays. • Never posts twice Failures retry. A half-sent thread picks up where it stopped. • Your logo all the way Turn on the watermark and Statuz adds it to images and videos as they go out. • One balance The workspace pays per post; each seat past the owner's is $5 a month. Pricing All prices (/pricing) Bluesky, Mastodon, LinkedIn, Reddit Beta$0.01 a post X.com$0.03 a post X.com with a link$0.30 a post Each seat past the owner's$5 a month, prorated the month they join Prepaid credits from $5. Drafts, scheduling, edits and agent calls are free. Connect your agent Agent setup (/docs/agents) Sign in from a terminalnpx statuz-cli loginCopy Or add the MCP serverhttps://api.statuz.cloud/mcpCopy Statuz Cloud questions Do I need X or LinkedIn developer apps?No. Statuz Cloud signs in with its own X and LinkedIn apps. You click Connect and approve. Is there a subscription?No. You add prepaid credits, from $5, and each published post spends a little. Drafts, scheduling and edits are free. What happens when credits run out?Scheduled posts wait instead of failing. Add credits and they go out in order. Auto-reload can top up the balance from a saved card. Do credits expire?Yes, 6 months after you add them. The oldest credits are spent first, and Statuz warns you 14 days before. Can my AI agent post?Yes. Claude, Codex, Cursor and others connect over MCP or run the statuz CLI. Scripts and CI use API keys with their own role (viewer, member or admin), so an agent gets only the reach you choose, never billing. Can I run Statuz without the cloud?Yes. The CLI and the Mac app are free on your own computer. Statuz Cloud is for posts that must go out while it sleeps, and for teams. statuz.cloud/queue • Posts while your Mac sleeps • Workspaces and roles • A composer in the browser • From $0.01 a post Your computer or Statuz Cloud Compare (/docs/cloud) Your computerPublishes while it's awake. Your own X and LinkedIn app keys.Free Statuz CloudAlways on, teams and a web composer. Prepaid credits.From $0.01 (/#cloud) Side by side9Feature Your computer Statuz Cloud PriceFreeFrom $0.01 a post, prepaid AccountNoneSign in with Google or Apple Publishes while you sleepWhen the computer is awakeAlways X and LinkedIn appsYour own developer appsStatuz's, nothing to set up Sign-in tokensYour OS keychainEncrypted on our servers Bluesky sign-inReconnect every 2 weeksStays signed in Teams—Orgs and roles, $5 a month per extra seat WatermarkNoneYour logo, per post ClientsCLI, MCP, Mac appCLI, MCP, Mac app, web Questions Is Statuz free?Yes. The CLI and the Mac app are free, with no watermark. Statuz Cloud is optional and paid per post. Do I need an account?Not to run it on your own computer. You only sign in for Statuz Cloud. Which platforms does it post to?X, Bluesky, Mastodon and LinkedIn: posts, threads, images and video. Reddit too, in beta. Can ChatGPT, Claude or Cursor use it?Yes. Agents run the CLI directly, or connect to statuz mcp as an MCP server. Where are my sign-in tokens?Locally, in your OS keychain. With Statuz Cloud, on our servers, so Cloud can publish for you. What does Statuz Cloud cost?$0.01 per post on Bluesky, Mastodon, LinkedIn and Reddit (beta), $0.03 on X. Prepaid credits from $5. From the blog All posts (/blog) Guide · 5 Oct · 1 minHow to Schedule Posts on BlueskyHow to schedule posts on Bluesky: a free Bluesky scheduler for posts, threads, images and several accounts, alongside X, Mastodon and LinkedIn. (/blog/how-to-schedule-posts-on-bluesky-the-complete-guide-for-2025)Guide · 5 Oct · 2 minHow to Schedule LinkedIn PostsHow to schedule LinkedIn posts: the built-in scheduler, then a free LinkedIn post scheduler for your profile alongside X, Bluesky and Mastodon. (/blog/linkedin-post-scheduling-a-professionals-guide-to-consistent-content)Guide · 5 Oct · 2 minHashtags on Twitter (X), Bluesky, Mastodon and LinkedInHow Twitter hashtags work today, and how hashtags on Bluesky, Mastodon and LinkedIn differ: how many to use, where they help, and how to post with them. (/blog/mastering-hashtag-strategy-across-x-bluesky-and-mastodon-in-2025)Guide · 4 Oct · 2 minBest Time to Post Art on Twitter (X)The best time to post art on Twitter (X) by art type, how to post art so it looks right, and how to schedule it for followers in other time zones. (/blog/best-times-to-post-art-and-visual-content-on-x-twitter-in-2025)Guide · 4 Oct · 2 minHow to Schedule YouTube Videos and PostsHow to schedule YouTube videos, Shorts, Premieres and community posts in YouTube Studio, then the announcement on X, Bluesky, Mastodon and LinkedIn. (/blog/how-to-schedule-posts-on-youtube-complete-guide-for-videos-and-community-updates)Guide · 4 Oct · 3 minImage Sizes for Twitter (X), Bluesky, Mastodon and LinkedInTwitter image size, Bluesky banner size and profile picture size, plus Mastodon and LinkedIn: dimensions, file limits and formats in one table. (/blog/mastering-image-sizes-for-x-twitter-bluesky-and-mastodon-in-2025) Your queue, one click away Free on your Mac. Add Statuz Cloud when posts can’t wait for it. Download for Mac (/download?from=home-start#mac) • X.com • Bluesky • Mastodon • LinkedIn • RedditBeta (/)Schedule posts from your terminal or your agent. LightDarkAuto © 2026 Intenseloop, Inc. (https://intenseloop.com) (https://x.com/intent/follow?screen_name=stewones) --- Formats: .txt | .md | Accept: text/plain | Accept: text/markdown