Develop
Command reference
mobius groups its commands by the thing you're working on. This page tells
you which group to reach for. For the exact commands and options, run
mobius <group> --help, which always matches the version you have installed.
The groups
| Group | Use it for |
|---|---|
auth | Sign in, check who you are, switch between logins. |
organizations | Your organization's own settings. |
agents | Agents, their memory, their inboxes, and what they're allowed to use. |
sessions | Conversations: start one, read it, watch it live, steer it mid-reply. |
routines | Recurring agent work: list, create, pause, resume, cancel, and read occurrences. |
actions | Manage organization-wide custom actions, run one directly, see past calls. |
catalog | See what's available to you: actions, events, and AI models. |
skills | Manage organization-wide reusable instructions for agents. |
interactions | Approvals, questions, and reviews waiting on a person. |
tables | Shared tables and the rows in them. |
artifacts | Files an agent produced: list, inspect, download, delete, share. |
api-keys | API keys for software that calls Mobius. |
blueprints | Stamp out the same setup for a new client. |
worker | Run a worker on this machine. |
billing | List usage events, to see where the credits went. |
A few more exist for access administration: principals, roles, and
permissions. You'll meet those when you're setting up who can do what, not day
to day.
Sending a file instead of typing flags
Anything with more than a couple of fields is easier to keep in a file.
Commands that create or update something take --file, in JSON or YAML:
mobius agents create \
--file scout.yaml \
--fields id,name,status \
--output json{
"id": "agent_9q2m7x5v3p8n4r6t",
"name": "Scout",
"status": "active"
}Two things make this pleasant to live with:
--dry-runprints the request without sending it. Use it every time you change the file. It costs nothing and catches typos before they become a half-created resource.--var KEY=valuefills in blanks. Write${CLIENT}in the file and pass--var CLIENT=ridgeline, and one file covers every client.
Flags you pass on the command line win over what's in the file.
Working with routines
List what is scheduled, and for which agent:
mobius routines list \
--fields id,name,status,next_fire_at \
--output json{
"items": [
{
"id": "rtn_9q2m7x5v3p8n4r6t",
"name": "Morning brief",
"status": "active",
"next_fire_at": "2026-09-01T08:00:00Z"
}
],
"has_more": false
}Read what each occurrence did:
mobius routines list-occurrences rtn_9q2m7x5v3p8n4r6t \
--fields scheduled_for,status \
--output jsonStop one without losing its schedule:
mobius routines pause rtn_9q2m7x5v3p8n4r6tPausing is the safe first move when a routine is misbehaving. resume puts it
back on its schedule; cancel ends it for good.
Working with conversations
mobius sessions list
mobius sessions get <session-id>
mobius sessions stream <session-id>stream holds the line open and prints the agent's reply as it arrives.
If an agent is working and heading the wrong way, you don't have to wait for it to finish. Send it a note mid-reply:
mobius sessions nudge <session-id> \
--content "Draft the reply, but don't send anything to the client." \
--fields id,status,delivery \
--output json{
"id": "<nudge-id>",
"status": "pending",
"delivery": "current_turn"
}current_turn means it reaches the agent during the reply it's writing now.
Working with data
mobius artifacts list
mobius tables listWriting is per-resource, so ask the command what it wants:
mobius tables create --help
mobius tables upsert-row --helpRunning a worker
A worker is how Mobius reaches things it can't reach on its own, like a server inside a client's network. Start one:
mobius workerIt logs a lot on startup. Two lines are the ones that matter, in this order:
level=INFO msg="starting worker" api_url=... queues=... ...
level=INFO msg="worker registered" worker_instance_id=<instance-id> heartbeat_cadence_seconds=<seconds>The first says the process started. The second says Mobius knows about it and will send it work. Until you see the second one, nothing is happening.
By default it takes work from every queue in your organization. Use --queues to
narrow it when you're running more than one worker and want them doing
different things.
The process stays in the foreground while it's connected, so leave the window
open or run it as a service. A reconnect message now and then is normal, that's
a brief network blip. Worry when worker registered never appears at all, or
when it reconnects over and over without settling.
Secrets that print once
Commands that create an API key or a signing secret show you the full value one time and never again. There's no "show it to me" command later, by design.
mobius api-keys create \
--name ci-worker \
--principal-id <principal-id> \
--output json{
"id": "<key-id>",
"name": "ci-worker",
"key": "<one-time-api-key>"
}Put it in your password manager or secret store before you close the terminal. If you lose it, the fix is to create a new key and delete the old one.
Next
- Install and sign in.
- Learn the conventions in the CLI overview.
- Use the interactive API reference when a command doesn't exist yet for what you need.