octomind-cli
Skill6 starsChanged 8 months agoApache-2.0View on GitHub
Octomind CLI reference: run, server, acp, config, tap, workflow commands, flags, slash commands, API-key env vars. Use to find what a flag or command does.
- Reads credentials
In this repository141 other files it gives its agents.
- AGENTS.mdAGENTS.md
- ad-bingSkill
- ad-frameworksSkill
- ad-googleSkill
- ad-linkedinSkill
- ad-metaSkill
- ad-redditSkill
- ad-tiktokSkill
- ad-xSkill
- ad-youtubeSkill
- ai-agent-designSkill
- ai-cost-finopsSkill
- ai-evals-designSkill
- ai-prompt-injection-defenseSkill
- ai-rag-patternsSkill
- analytical-reportSkill
- ats-optimizationSkill
- browser-backlink-submissionSkill
- browser-social-account-maintenanceSkill
- chef-budget-mealsSkill
- coaching-frameworksSkill
- code-review-lensesSkill
- code-reviewSkill
- content-auditSkill
- content-formatsSkill
- content-geoSkill
- content-groundingSkill
- content-humanizeSkill
- content-locale-humanize-arSkill
- content-locale-humanize-deSkill
- content-locale-humanize-esSkill
- content-locale-humanize-frSkill
- content-locale-humanize-hiSkill
- content-locale-humanize-itSkill
- content-locale-humanize-jaSkill
- content-locale-humanize-koSkill
- content-locale-humanize-ptSkill
- content-locale-humanizeSkill
- content-locale-humanize-thSkill
- content-locale-humanize-zhSkill
- content-translateSkill
- content-voiceSkill
- cover-letterSkill
- device-computer-automationSkill
- device-mobile-automationSkill
- document-exportSkill
- geo-visibility-auditSkill
- git-workflowSkill
- issue-diagnosisSkill
- learning-scienceSkill
- marketing-social-gtmSkill
- markup-landing-pageSkill
- octomind-configSkill
- octomind-runtimeSkill
- octomind-supervisorSkill
- octomind-workflowSkill
- os-alpineSkill
- os-debianSkill
- os-fedoraSkill
- os-linuxSkill
- The first 60 shown.
The file
Files
Overview
This skill covers how to drive Octomind from the outside: the subcommands and flags of the octomind binary, the slash commands inside a running session, and the environment variables that select providers and redirect state. Config file fields belong to the octomind-config skill; how manifests resolve belongs to octomind-runtime.
Answer from this reference rather than guessing flag names. When a user reports behaviour that contradicts it, check octomind --version and octomind <command> --help first — they are the ground truth.
Mental model
Three surfaces, three lifetimes:
- CLI flags — per invocation, never persisted (
--model,--schema,--sandbox). - Slash commands — per session;
/modeland/effortsave to the session file,/loglevelis runtime-only. - Config and environment — durable across sessions.
A change belongs on the narrowest surface that survives long enough. Never edit config for a one-off run.
Rules
Subcommands
Bare octomind behaves like octomind run with the default role.
| Command | Purpose |
run [TAG] | Interactive or non-interactive session — the main command |
server [TAG] | WebSocket server for remote sessions (--host default 127.0.0.1, --port/-p default 8080, --sandbox, repeatable --allow-origin) |
acp [TAG] | Agent Client Protocol agent over stdio for editors (-n, -r, --resume-recent, -m, --sandbox, --hook) |
login [chatgpt] | Sign in to an Octomind account (stores the hub key as OCTOHUB_API_KEY); login chatgpt lets chatgpt:<model> run on a ChatGPT plan |
config | Create, validate, display, or upgrade configuration |
tap [TAP] [PATH] | Add a tap (user/repo clones github.com/user/octomind-repo; with PATH it links a local directory); bare lists taps |
tap init <user/repo> | Scaffold a new tap from the default tap's scaffold, validate it, git-init it, register it (--agent domain:spec, --dir) |
untap <TAP> | Remove a tap |
vars | Placeholder variables and resolved values (-p/--preview, -e/--expand) |
send --name <NAME> [MESSAGE] | Inject a message into a running named session; message from stdin when omitted |
evaluate [FILE] | Ask the evaluation model typed questions about a JSON state ({"state", "questions"} from FILE or stdin), answers printed as JSON; -m overrides the model |
workflow [NAME|FILE] | Run a multi-step workflow; bare lists tap workflows (--dry-run, --format jsonl) |
completion <SHELL> | bash, zsh, fish, elvish, or powershell completions |
Hidden helpers: octomind complete run prints every runnable tag (tap agents plus config roles), octomind complete workflow every tap workflow name — handy for scripting and discovery.
TAG resolution
run, server, and acp take an optional TAG: a plain role name matched against [[roles]] in config, or a tap agent tag in domain:spec form resolved through installed taps. Omitted, it uses default from config — except when resuming, where the session's own role is restored. Model priority, highest first: --model, the role's model, a [taps] entry for that tag, then the main [model] profile.
octomind run flags
| Flag | Effect |
--name / -n | Named session: created if new, resumed if it exists |
--resume / -r [SESSION] | Resume by name; bare --resume opens the interactive picker (error when non-interactive) |
--resume-recent | Resume the most recent session for this directory |
--format | plain or jsonl; setting it makes the run non-interactive |
--model / -m | Override model, provider:model |
--daemon | Keep the session alive for messages delivered with octomind send |
--sandbox | Restrict filesystem writes to the working directory |
--hook | Activate a [[hooks]] webhook by name; repeatable |
--schema | JSON Schema file constraining the final reply |
Interactivity: with --format unset and stdin a TTY, the session is interactive. Otherwise input is read from stdin, and empty stdin is an error. --daemon is non-interactive and needs --format; attached to a terminal its initial input is empty.
--schema constrains the final reply for the session's lifetime; tool calls still flow underneath. Models without structured-output support fail fast. It is not persisted — pass it again on resume.
octomind config flags
Mutating (saved to the config file): --model, --log-level none|info|debug, --mcp-providers, --mcp-server name,url=X|command=Y,args=Z, --system (default resets), --markdown-enable, --markdown-theme.
Inspect or maintain: --show, --validate, --list-themes, --upgrade.
--api-key parses but is always rejected at runtime — keys live in the environment, never in config. Bare octomind config creates a default config only when none exists.
Session slash commands
| Group | Commands |
| Session | /help, /exit (/quit), /clear, /list [PAGE], /new [TITLE], /rename [TITLE] |
| Output | /copy [last|assistant|user|all], /reply [N|words] (quote an earlier reply into the prompt) |
| Monitoring | /info, /status [agents [id]|monitors|jobs], /report [day|week|month] [here], /usage, /share, /analyze |
| Runtime switches | /model [MODEL], /role [ROLE], /effort [none|low|medium|high|xhigh|max], /loglevel [none|info|debug] |
| Context | /context [all|assistant|user|tool|system|large], /done |
| Media | /image [PATH], /video [PATH] |
| Tools | /mcp [list|info|full|health|dump|validate], /skill [NAME|PAGE|PATTERN] |
| Config-driven | /run [COMMAND], /prompt [NAME] |
| State | /plan, /schedule [list|add|edit|remove], /learning [list|show|delete|clear|evolution], /workflow [NAME [INPUT]] |
| Account | /login |
Behaviour worth knowing:
/modeland/effortsave to the session file, not global config./loglevelis runtime-only./roleaccepts a config role name or a tap tag./doneforce-compresses context, bypassing threshold and cost guards, then starts lesson extraction in the background./mcpis read-only. Runtime server management is themcptool of theruntimeserver./planonly displays the supervisor-owned plan; nothing in the session can edit it./workflowlists tap workflows,/workflow <name>shows the definition,/workflow <name> <input>runs it (blocking)./shareuploads the session and prints a URL./analyzeuploads nothing — it serves a token-gated local bridge for the web viewer./?shows in autocomplete but is not dispatched; use/help.
Provider environment variables
Most providers read <PREFIX>_API_KEY for their model prefix — groq: reads GROQ_API_KEY, openrouter: reads OPENROUTER_API_KEY. It is a per-provider contract, not a universal rule. Exceptions worth knowing: google-vertex: uses GOOGLE_VERTEX_CREDENTIAL_FILE (or GOOGLE_APPLICATION_CREDENTIALS) plus optional GOOGLE_VERTEX_PROJECT_ID/GOOGLE_VERTEX_LOCATION; amazon: uses AWS_BEARER_TOKEN_BEDROCK (a Bedrock API key, not SigV4 keys) plus AWS_BEDROCK_REGION; cloudflare: needs CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID; moonshot:/kimi: share MOONSHOT_API_KEY; opencode-zen:/opencode-go: share OPENCODE_API_KEY; octohub: reads OCTOHUB_API_KEY, which octomind login writes.
Many providers accept a <PREFIX>_API_URL endpoint override; local: with LOCAL_API_URL targets any self-hosted OpenAI-compatible server. The cli:BACKEND/MODEL meta-provider runs an installed coding CLI and needs no key.
Octomind environment variables
| Variable | Effect |
OCTOMIND_DATA_DIR | Redirect durable state: config, sessions, logs, cache, learning, taps |
OCTOMIND_CONFIG_PATH | Primary config file; its parent becomes the config dir for multi-file merge |
OCTOMIND_SKILLS | Comma-separated exact skill names preloaded at session start |
OCTOMIND_CAPABILITIES | Comma-separated capabilities force-enabled at start; domain and env gates still apply |
OCTOMIND_TELEMETRY | 0/false/off/no disables telemetry for the run |
DO_NOT_TRACK | Cross-tool opt-out, honoured before OCTOMIND_TELEMETRY and config |
OCTOMIND_SHARE_URL | Web viewer base for /share and /analyze |
RUST_LOG | Tracing filter; in CLI mode it enables the stderr subscriber |
.env precedence
Two files load, later winning: user-scope <config_dir>/.env, then project-local ./.env. Both override the system environment.
Examples
Example 1: one-off model change
❌ Bad:
octomind config --model openai:gpt-5 # rewrites global config for one task✅ Good:
octomind run developer:general -m openai:gpt-5What changed: the narrowest surface that survives long enough — a flag, not a persisted setting.
Example 2: non-interactive with structured output
echo "List the top 3 TODOs" | octomind run developer:general \
--format jsonl --schema todos.schema.jsonPiped stdin already forces non-interactive mode; --format jsonl makes the stream machine-readable.
Example 3: daemon plus webhook
octomind run --name ci-watcher --daemon --format jsonl --hook github-push
echo "status?" | octomind send --name ci-watcher--daemon without --format is the common mistake.
Checklist
- Flag or slash command named exactly as
--helpand the tables above show? - One-off change expressed as a CLI flag rather than a config edit?
--daemonpaired with--formatand a--name?- API key set via environment or
.env, never suggested for config.toml? - Provider variable is the exact name that provider reads, including the documented exceptions?
- Session-scoped answers use slash commands; durable ones route to
octomind-config?
Composition / References
- Pairs with
octomind-configfor anything insideconfig.toml. - Pairs with
octomind-runtimefor how a TAG resolves to a manifest. - Octomind docs:
doc/reference/01-cli-reference.md,doc/reference/02-session-commands.md,doc/reference/04-environment-variables.md
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

