octop is a single Click app installed as octop on pip install octop.
It is registered in src/octop/cli/main.py; commands are loaded
lazily from src/octop/cli/registry.py.
$ octop --help
Usage: octop [OPTIONS] COMMAND [ARGS]...
Octop command-line interface.
Options:
-v, --version Show the installed octop version.
--user TEXT Default --user for subcommands (admin acting on behalf
of a user). [env: OCTOP_USER]
--agent TEXT Default --agent for subcommands. [env: OCTOP_AGENT]
--json Emit machine-readable JSON for list-style commands.
-h, --help Show this message and exit.
Commands:
acp Run Octop agent as ACP server (stdio).
admin Admin commands.
agent Agent lifecycle commands.
backup Export and restore Octop backups.
chat [deprecated] Alias for `octop chats`.
chats Chat REPL and session management.
channel Channel management commands.
clean Remove CLI state or wipe all of ~/.octop.
completion Shell completion utilities.
config CLI state (base URL, defaults).
cron Cron job management commands.
init Bootstrap an Octop server install.
models Model catalog and active-model settings.
plugin Install and manage plugins.
provider Provider management (admin write).
run Run octop-server in the foreground.
service System service lifecycle (start/stop/restart/status).
skills Per-agent skill enable/disable.
update Check for and install a newer Octop release.
user User management commands.
version Show the installed octop version.
Tip. Regenerate the per-subcommand listings below with
make docs-cli(eachoctop <cmd> --helpis captured to stdout).
| Option | Env | Effect |
|---|---|---|
--user NAME |
OCTOP_USER |
Default --user for subcommands (admin acting on behalf of a user) |
--agent ID |
OCTOP_AGENT |
Default --agent for subcommands |
--json |
— | Emit machine-readable JSON for list-style commands |
-v, --version |
— | Print version and exit |
Octop commands pick one of three transports:
| Layer | When | Login? | Examples |
|---|---|---|---|
| Offline (local DB only) | Need to read/write ~/.octop without a running server |
No | init, backup, plugin, agent list, chats list/get/create/update/delete, cron list, user *, admin overview/audit, models presets/list/active |
| Attach (HTTP / WS) | Need a live octop run process (IM, streams, model pulls) |
Yes (octop user login) |
chats send/repl, channel test/probe, models ollama-*, skills enable/disable, provider test |
| Embedded (in-process) | CLI boots OctopServer for a single command |
No | octop acp, octop chats repl, octop chats send (defaults to embedded), octop agent create/from-expert/start/stop/reload |
The dashboards and HTTP callers manage their own JWTs and do not
share ~/.octop/cli_state.json.
Bootstrap a fresh install (DB migrations, JWT secret, first admin).
Idempotent on the DB; pass --force to wipe ~/.octop first.
Usage: octop init [OPTIONS]
Bootstrap an Octop server (~/.octop dir, DB migrations, JWT secret, first admin).
Options:
--admin-username TEXT [env: OCTOP_ADMIN_USERNAME]
--admin-password TEXT [env: OCTOP_ADMIN_PASSWORD]
--admin-display-name TEXT [env: OCTOP_ADMIN_DISPLAY_NAME]
--force Wipe existing ~/.octop contents before bootstrapping.
--yes Skip all interactive prompts.
-h, --help Show this message and exit.
Start the FastAPI app in the foreground (delegates to
octop.launch.run_foreground_blocking).
Usage: octop run [OPTIONS]
Start the Octop server (foreground; uvicorn).
Options:
--host TEXT Override OCTOP_BIND_HOST.
--port INTEGER Override OCTOP_PORT.
--reload / --no-reload Enable uvicorn auto-reload (dev only).
--ssl / --no-ssl Enable HTTPS with a self-signed cert (or a real one).
--certfile PATH TLS certificate (PEM).
--keyfile PATH TLS private key (PEM).
--log-level [debug|info|warning|error]
-h, --help Show this message and exit.
Install and manage the Octop system service. The backend is detected
automatically (systemd on Linux, launchd on macOS); the scope
(user vs system) can be forced via --scope or
OCTOP_SERVICE_SCOPE.
Usage: octop service [OPTIONS] COMMAND [ARGS]...
Manage the Octop system service (systemd on Linux, launchd on macOS).
Commands:
start Install (if missing) and start the service.
stop Stop the service.
restart Restart the service.
status Print whether the service is installed / running / healthy.
status probes the HTTP health endpoint and prints journal/log hints
on failure.
Local-DB user management. login requires a running server; the
rest are offline.
Usage: octop user [OPTIONS] COMMAND [ARGS]...
User management commands (local DB; no server login required).
Commands:
create Create a new user.
list List all users.
passwd Reset a user's password (admin).
role Set a user's role.
disable Disable a user.
delete Delete a user.
login Login against a running server; stores JWT for optional remote HTTP attach.
Lifecycle and templates. Most commands boot an embedded
OctopServer to operate on the local DB without a remote round-trip.
Usage: octop agent [OPTIONS] COMMAND [ARGS]...
Agent lifecycle commands.
Commands:
create Create a new agent.
from-expert Create an agent from a bundled expert template.
list List agents.
use Pin this agent as the default for subsequent commands.
start Start the agent runtime.
stop Stop the agent runtime.
reload Reload the agent runtime.
delete Delete the agent row (and runtime).
experts List bundled expert templates.
create and from-expert accept --user (admin only) to create
agents on behalf of another user. use writes the agent id into
~/.octop/cli_state.json so subsequent commands default to it.
Thread CRUD + interactive REPL. The REPL and send use an embedded
server (no separate octop run needed); list / get / create /
update / delete work fully offline against ~/.octop/octop.db.
Usage: octop chats [OPTIONS] COMMAND [ARGS]...
Thread list/history and interactive chat (CLI channel / local DB).
Commands:
list List conversation threads for an agent.
get Show message history for a thread.
create Start a new thread (/new equivalent).
update Rename or pin a thread.
delete Delete a thread.
send Send one message and stream the response.
repl Interactive chat REPL (embedded server + CLI gateway channel).
octop chat is a deprecated alias that prints a stderr warning and
forwards to chats.
Local DB channel CRUD plus platform-specific bot creators. The
wecom / weixin / feishu-setup subcommands drive the QR-code
bot-creator flows; config is the offline config editor.
Usage: octop channel [OPTIONS] COMMAND [ARGS]...
Channel management commands.
Commands:
list List channels for an agent.
get Show one channel row.
create Create a channel.
patch Update a channel.
delete Delete a channel.
test Test a channel (instantiate → start → stop).
config Edit channel config offline.
feishu-setup Drive the Feishu bot-creator flow.
bind Bind-group helper for WeCom / Weixin (QR login, etc.).
Local DB cron management. run-now requires a running octop run
because the actual fire is dispatched through the live
CronManager.
Usage: octop cron [OPTIONS] COMMAND [ARGS]...
Cron job management commands.
Commands:
list List cron jobs for an agent.
create Create a cron job.
delete Delete a cron job.
run-now Trigger a cron job immediately.
create --trigger accepts cron expressions ("0 9 * * *") and the
interval:N / date:ISO8601 aliases. --task-type text pushes the
prompt verbatim; --task-type agent (default) runs the LLM and
pushes the reply. --prompt is required, must be non-empty and ≤
2000 characters.
Local DB provider CRUD. test requires a running server.
Usage: octop provider [OPTIONS] COMMAND [ARGS]...
Provider management commands (local DB).
Commands:
list List providers.
create Create a provider.
delete Delete a provider.
test Ping the provider (requires running server).
Provider presets and active model management.
Usage: octop models [OPTIONS] COMMAND [ARGS]...
Model catalog and active-model settings.
Commands:
presets List built-in provider templates from harness-agent.
list List all resolved models across enabled providers.
active Show or set the global default model (admin).
config Interactively create a provider from presets and set the active model.
ollama-list List local Ollama models (requires a running server).
ollama-pull Pull a model via Ollama (requires a running server).
ollama-rm Remove a local Ollama model (requires a running server).
Per-agent skill enable / disable. All subcommands need a running
server (the dashboard's Skill Hub and bundled ~/.octop/skills/
library are queried at boot).
Usage: octop skills [OPTIONS] COMMAND [ARGS]...
Manage agent skills (enable / disable / list).
Commands:
list List skills for an agent.
enable Enable a skill for the agent.
disable Disable a skill for the agent.
config Show / edit the per-agent skills config.
Local DB admin operations. rotate-jwt-secret works without a
running server (it edits the SQLite secret row directly).
Usage: octop admin [OPTIONS] COMMAND [ARGS]...
Admin commands (local DB).
Commands:
overview Show admin overview (user count, agent state distribution).
audit Show audit log entries.
providers Global (admin) providers.
rotate-jwt-secret Rotate the JWT secret directly via the local DB.
Export and restore Octop backups. Works fully offline — the wheel
includes a octop-backup entrypoint that the dashboard can also
invoke.
Usage: octop backup [OPTIONS] COMMAND [ARGS]...
Export and restore Octop backups.
Commands:
create Create a backup archive (DB + workspaces + config).
restore Restore a backup archive into ~/.octop.
Check for and install a newer Octop release from the configured channel (PyPI by default).
Usage: octop update [OPTIONS]
Check for and install a newer Octop release.
Options:
--check / --no-check Only check; do not install.
--channel TEXT Release channel (pypi, testpypi, custom index).
-h, --help Show this message and exit.
Install and manage third-party plugins (drop into ~/.octop/plugins/).
The same plugin manager powers the dashboard's "Plugins" page.
Usage: octop plugin [OPTIONS] COMMAND [ARGS]...
Install and manage plugins.
Commands:
list List installed plugins.
install Install a plugin (local path or git URL).
uninstall Remove an installed plugin.
reload Reload all installed plugins without restart.
Expose an Octop agent as a stdio JSON-RPC ACP server. Boots a
standalone OctopServer (reads ~/.octop); does not require
octop run to be running.
Usage: octop acp [OPTIONS]
Run Octop agent as ACP server (stdio).
Options:
--agent TEXT Agent to expose (default: OCTOP_AGENT or first agent).
--debug Log to stderr.
-h, --help Show this message and exit.
See ACP integration for the Zed setup example and the runner object schema.
Reset CLI state or wipe the whole ~/.octop tree. Destructive — read
the help carefully.
Usage: octop clean [OPTIONS]
Remove CLI state or wipe all of ~/.octop.
Options:
--state / --all What to remove.
--yes Skip the confirmation prompt.
-h, --help Show this message and exit.
Inspect / edit ~/.octop/cli_state.json (default base URL, user,
agent).
Usage: octop config [OPTIONS] COMMAND [ARGS]...
CLI state (base URL, defaults).
Commands:
show Print the current CLI state.
set-user Pin the default --user.
$ octop completion show bash # dump a shell snippet
$ octop completion install # append to ~/.zshrc / ~/.bashrc
$ octop version # print the installed octop version
~/.octop/cli_state.json stores:
{
"base_url": "http://127.0.0.1:8088",
"token": null,
"default_user": null,
"default_agent": null
}The path is exposed as octop.cli.support.state.default_state_path()
and can be overridden via OCTOP_HOME. Delete the file to log out
the CLI without hitting the server. The dashboard and HTTP callers
do not share this file — they manage their own tokens.