CLI

One command your agent already knows how to run.

Anything that can run a shell command can schedule and publish to every channel you’ve connected, then answer the replies that come back. Nothing to wire up, and no integration to write.

npx @orbitwrite/cli post "Shipped it." --all --next
Start 10 day free trial for $0

Cancel anytime before the trial ends.

  • Nothing to install
  • Runs anywhere a shell does
  • Safe to leave running

A key and a shell

No project to set up. The whole configuration is one environment variable.

  1. 1

    Create a key

    In Settings, choose what this key may do. It belongs to one workspace, so there is nothing else to pick.

  2. 2

    Put it in the environment

    One variable. In CI that's a secret; for an agent it's a line in the environment it already has.

  3. 3

    Run it

    Ask it which workspace answered, then point it at whatever you want posted.

SetupAny shell
npm install -g @orbitwrite/cli
export ORBITWRITE_API_KEY=orbit_sk_...
orbitwrite whoami

Six commands

Enough to run a launch, check on it afterwards and answer the replies it brings in. For more than that, the same workspace is a few lines away through the SDK.

  • orbitwrite whoami

    Which workspace this key belongs to.

  • orbitwrite channels

    The channels you've connected.

  • orbitwrite post <text>

    Post now, at a time you name, at the next free slot, or as a draft.

  • orbitwrite posts

    What's drafted, queued and published.

  • orbitwrite slots

    The times your workspace posts at.

  • orbitwrite inbox

    Replies and mentions. Read the thread, answer, snooze, assign and resolve.

PublishingSay when — there is no default
# Right now, to one channel
orbitwrite post "Shipped it." --channel acc_1 --now

# At the next free posting slot, everywhere
orbitwrite post "Shipped it." --all --next

# At a time in plain English
orbitwrite post "Morning all" -c acc_1 --at "tomorrow 9am"
In a release scriptReading it back
# The channels, for a script that picks its own
orbitwrite channels --json

# What's queued
orbitwrite posts --status scheduled

# Announce the tag that just shipped
orbitwrite post "$(git tag --points-at HEAD) is out." --all --now
The inboxReplies and mentions
# Open conversations nobody owns yet
orbitwrite inbox --unassigned

# Read the thread, answer it, and close it out
orbitwrite inbox show c_123
orbitwrite inbox reply c_123 "Thanks, that's fixed now."
orbitwrite inbox resolve c_123

# Come back to it later
orbitwrite inbox snooze c_456 --until "tomorrow 9am"

The details

Agents and scripts run without anyone watching. Most of what follows is about making that safe.

For agents with only a shell

No client to configure and nothing to connect. If it can run a command, it can post.

Times in plain words

Tomorrow morning, next Friday, the next free slot. All read in your workspace's timezone.

It never guesses

Anything it can't read one way is handed back rather than resolved with a coin toss.

It uses your real schedule

Posts land in the times your workspace already keeps, and never on top of each other.

Answers a machine can read

Every result is available as structured data, so nothing has to parse a layout.

Safe to leave running

It says clearly whether to fix the request or try again, so automation can decide for itself.

Your team's rules still hold

Approvals and permissions apply wherever a post or reply came from, including a terminal.

Access you can take back

A key does only what you allow, and revoking it stops everything using it.

Nothing to install

One download, no dependencies, and nothing added to your project.

The binary is published as @orbitwrite/cli. If your agent speaks MCP, the server gives it more to work with than six commands; if it’s Claude Code, the plugin is a shorter way in.

Keep reading