Skip to content

CLI reference

The foxctl CLI is organized by job, not by binary implementation. Each command family targets a specific workflow. Use Command map for task-to-command lookup.

FamilyUse forSee also
foxctl runSkill execution with job tracking, envelopes, and CAS artifactsSkills runtime
foxctl skillsSkill discovery, install, and direct execution with parameter flagsSkills runtime
foxctl index repoRepo graph build, search, expand, and DAG queriesRepoindex and DAG grep
foxctl agentSpawn, ask, watch, resume, and manage agentsAgent lifecycle
foxctl roomDurable room messages, tasks, and coordinationRooms
foxctl obsidianACA vault graph, bridge, and index refreshObsidian bridge
foxctl contextContext summaries and evidence importACA
foxctl mcpMCP status and servingProviders and MCP
foxctl openapiOpenAPI-backed provider integrationOpenAPI and plugins
foxctl shellStructured read-only command-shaped retrieval
foxctl casCAS artifact storage, lookup, pin, and garbage collectionStorage
foxctl backupBackup and restore supportStorage
foxctl hooksHook runtime checks and registrationHooks
foxctl ciCI status and support workflowsCI and evals
foxctl dbDatabase inspection and managementStorage

Three execution paths exist for running skills:

foxctl run <skill> — Job-tracked execution

Section titled “foxctl run <skill> — Job-tracked execution”

The default path. Opens the jobs store, writes CAS/trajectory metadata, and supports async/dedupe behavior.

Terminal window
foxctl run code/semantic_search --input '{"query": "auth middleware"}'

foxctl run <skill> --ephemeral — Stateless execution

Section titled “foxctl run <skill> --ephemeral — Stateless execution”

Skips job persistence. Use for sandboxed agents, hooks, smoke tests, or one-off retrieval when ~/.foxctl is not writable.

Terminal window
foxctl run code/semantic_search --ephemeral --input '{"query": "auth middleware"}'

foxctl skills run <skill> — Direct skill execution

Section titled “foxctl skills run <skill> — Direct skill execution”

Executes the skill directly with manifest-derived parameter flags. Use when validating skill parameters or when a simple flag form is clearer than raw JSON.

Terminal window
foxctl skills run code/semantic_search --query "auth middleware" --limit 10

If foxctl on PATH reports Command 'run' not available in bundled mode, you are using a wrapper from another install. Run ./bin/foxctl ... from the repo checkout or rebuild:

Terminal window
make build
./bin/foxctl run code/semantic_search --input '{"query": "test"}'

Skills accept input in four modes:

Terminal window
foxctl run <skill> --input '{"key":"value"}'
Terminal window
foxctl run <skill> --input-file input.json
foxctl run <skill> --input-file -

Reads an envelope from stdin and passes only its data field to the skill:

Terminal window
foxctl run <skill> --input stdin

Loads raw JSON from CAS by digest:

Terminal window
foxctl run <skill> --input sha256:abc123...

The foxctl agent family manages persistent, multi-agent coordination:

CommandPurpose
foxctl agent spawnCreate and start a new agent
foxctl agent listList all agents
foxctl agent info <id>Detailed agent status
foxctl agent ask <id> --question "..." --waitSend a question and wait for reply
foxctl agent kill <id>Stop an agent
foxctl agent resume <session-id> --prompt "..."Continue a previous session
foxctl agent hierarchy [session-id]Show agent tree
foxctl agent watch <id>Live activity stream
FlagDefaultDescription
--roleoverseer, researcher, coder, planner, reviewer
--exec-modereactivereactive, autonomous, proactive
--llm-providerauto-detectopenrouter, cerebras, groq, openai, anthropic
--llm-modelprovider defaultModel name (e.g., openrouter/aurora-alpha)
--max-iterations10Max tool calls per engine run
--max-auto-turns1Max autonomous continuation turns
--max-context-tokens0Context budget (0 = no limit)

See Agent lifecycle for the full workflow.

CommandPurpose
foxctl index repo build --workspace . --go --typescriptBuild or rebuild the repo graph
foxctl index repo search --workspace . --query "term"Search the index
foxctl index repo expand --workspace . --seed <node-id> --edge CALLS --depth 2Expand from seed nodes

Add --go=false for non-Go repos. See Repoindex and DAG grep for full usage.

Terminal window
foxctl memory put --name "gotcha-x" --type "gotcha" --summary "..."
foxctl memory search "query"

See Memory and continuity for the full memory API.

When repo docs or structure change, refresh the ACA knowledge layer:

Terminal window
foxctl obsidian graph build --workspace . --vault-path "/path/to/vault"
foxctl obsidian graph promote --workspace . --vault-path "/path/to/vault"
foxctl obsidian bridge reconcile --workspace . --vault-path "/path/to/vault"
foxctl obsidian index build --vault-path "/path/to/vault"

See Obsidian bridge for the full vault workflow.

For exhaustive flag lists, use the built-in help:

Terminal window
foxctl --help
foxctl <command> --help
foxctl <command> <subcommand> --help