agentleFS
MuvonMuvon/octomind-tap/skills/octomind-cli/SKILL.md

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

The file

Files
SKILL.md

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; /model and /effort save to the session file, /loglevel is 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.

CommandPurpose
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
configCreate, 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
varsPlaceholder 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

FlagEffect
--name / -nNamed 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-recentResume the most recent session for this directory
--formatplain or jsonl; setting it makes the run non-interactive
--model / -mOverride model, provider:model
--daemonKeep the session alive for messages delivered with octomind send
--sandboxRestrict filesystem writes to the working directory
--hookActivate a [[hooks]] webhook by name; repeatable
--schemaJSON 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

GroupCommands
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:

  • /model and /effort save to the session file, not global config. /loglevel is runtime-only.
  • /role accepts a config role name or a tap tag.
  • /done force-compresses context, bypassing threshold and cost guards, then starts lesson extraction in the background.
  • /mcp is read-only. Runtime server management is the mcp tool of the runtime server.
  • /plan only displays the supervisor-owned plan; nothing in the session can edit it.
  • /workflow lists tap workflows, /workflow <name> shows the definition, /workflow <name> <input> runs it (blocking).
  • /share uploads the session and prints a URL. /analyze uploads 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

VariableEffect
OCTOMIND_DATA_DIRRedirect durable state: config, sessions, logs, cache, learning, taps
OCTOMIND_CONFIG_PATHPrimary config file; its parent becomes the config dir for multi-file merge
OCTOMIND_SKILLSComma-separated exact skill names preloaded at session start
OCTOMIND_CAPABILITIESComma-separated capabilities force-enabled at start; domain and env gates still apply
OCTOMIND_TELEMETRY0/false/off/no disables telemetry for the run
DO_NOT_TRACKCross-tool opt-out, honoured before OCTOMIND_TELEMETRY and config
OCTOMIND_SHARE_URLWeb viewer base for /share and /analyze
RUST_LOGTracing 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-5

What 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.json

Piped 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 --help and the tables above show?
  • One-off change expressed as a CLI flag rather than a config edit?
  • --daemon paired with --format and 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-config for anything inside config.toml.
  • Pairs with octomind-runtime for 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

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.