A quick reference for every openprogram subcommand. Each command has its own help via openprogram <command> -h; subcommand verbs nest one level deeper, e.g. openprogram logs tail -h.
Note
The CLI commands section in the sidebar holds one generated page per
command — full flag tables, rebuilt from the argument parser on every
docs build, so they can never drift from the code. This page is the
curated overview.
menu opens the interactive picker; give a section name to jump straight there (model / tools / agent / skills / ui / memory / profile / search / tts / channels / backend)
config
View / change settings
list (every setting: value, group, apply mode), get <key>, set <key> <value>
Log in to a provider; --api-key / --api-key-stdin supply the key non-interactively, --account selects the account, --method forces a specific login method
logout
Remove a provider's credentials
list
List credential pools by account
available (aliases search, catalog)
List every configurable provider, optionally filtered with QUERY
status
Check a provider's current credentials
use
Set which account a provider uses
discover / adopt
Scan external credential sources / import them into the credential store
Create and print a token for the authenticated local stdio MCP server
serve
Serve the authenticated MCP server over local stdio
list
List every configured MCP server and its status
show
Show a server's tools and full schemas
add
Add a stdio command server; writes mcp_servers.json and starts it immediately
rm
Remove (stop + delete config)
restart / enable / disable
Restart / enable and start / stop and mark disabled (config kept)
edit
Compatibility command that reports raw config editing was removed; use add / rm or the MCP settings page
test
Start a config temporarily to verify it comes up and returns its tool list, without persisting
token create prints the raw token on one line but does not set
OPENPROGRAM_MCP_TOKEN. Run it once, copy the printed line, and set the
variable before serve:
openprogrammcptokencreate
exportOPENPROGRAM_MCP_TOKEN="<paste the token printed above>"
openprogrammcpserve
If a token already exists, reuse the token you previously saved. serve
requires an exact OPENPROGRAM_MCP_TOKEN match.
Spawn an agent in a session as a new branch: --session and --prompt required; --parent-msg picks the fork node, --label names the branch, --agent picks the agent profile (default main), --context inherit|clean (or --clean), --no-json for a human-readable summary
merge
Merge subagent sessions into a target with a new turn: --target and repeatable --branch SID required; --message is the merge instruction, --agent the merge agent, --base N marks one branch as the merge base, --no-json for a human-readable summary
Run a program; --arg key=value (repeatable), --provider, --model
list
List saved programs
available
List installable programs and installed third-party harnesses
install / uninstall
Developer-only first-party source overlays (gui/research/wiki/all), or install/uninstall an additional third-party harness (git URL / owner/repo); supported releases already include all first-party Programs and reject mutation of their immutable runtime
Who reaches the agent: list, approve <code>, allow <user_id>, revoke <user_id>. Unknown senders follow the default pairing flow; the owner can use allow <user_id> to add a known platform user ID directly to the allowlist (Chat Channels)
list; tail [name] (-n line count, -f follow); path [name]. name is worker / runtime / ink, default worker
update
Check for and apply updates
--check only checks; --force bypasses the 6-hour throttle
scheduler-worker (cron-worker alias)
Foreground loop that fires one-time, recurring, and monitor Scheduler tasks; an ordinary daemon tick failure writes a warning and traceback to stderr, then evaluation continues at the next minute boundary without replaying a failed initial @reboot tick (the persistent worker's redirected stderr goes to its worker log)
--once evaluates one tick and exits with failures propagated; --list shows current task match state