docs/reference/cli.md
Complete reference for the published CLI package. During the rename transition, both package names work:
oh-my-openagent (preferred package name)oh-my-opencode (compatibility package name)Plugin registration inside opencode.json prefers oh-my-openagent.
All published packages expose the same compiled CLI with these bin entries:
oh-my-opencode (legacy name, still primary)oh-my-openagent (renamed primary)omo (short alias, recommended in docs and prompts)lazycodex-ai (Light edition shortcut; lazycodex-ai install is equivalent to omo install --platform=codex unless --platform is explicitly overridden)# Display help (preferred package)
bunx oh-my-openagent
# Compatibility package
bunx oh-my-opencode
| Command | Description |
|---|---|
install | Interactive setup wizard |
doctor | Installation health diagnostics |
run <message> | Non-interactive OpenCode session runner with completion enforcement |
get-local-version | Show current installed version and check for updates |
refresh-model-capabilities | Refresh cached model capabilities snapshot from models.dev |
boulder | Inspect Sisyphus boulder work-state (active plan, per-task timers, session lineage) |
version | Show CLI version |
mcp oauth | OAuth token management for MCP servers |
Interactive installation tool for initial setup.
bunx oh-my-openagent install
| Option | Description |
|---|---|
--no-tui | Run in non-interactive mode (requires all needed options) |
--platform <value> | Install target edition: opencode (Ultimate, default), codex (Light), or both |
--claude <value> | Claude subscription: no, yes, max20 (Ultimate only) |
--openai <value> | OpenAI/ChatGPT subscription: no, yes (Ultimate only) |
--gemini <value> | Gemini integration: no, yes (Ultimate only) |
--copilot <value> | GitHub Copilot subscription: no, yes (Ultimate only) |
--opencode-zen <value> | OpenCode Zen access: no, yes (Ultimate only) |
--zai-coding-plan <value> | Z.ai Coding Plan subscription: no, yes (Ultimate only) |
--kimi-for-coding <value> | Kimi For Coding subscription: no, yes (Ultimate only) |
--opencode-go <value> | OpenCode Go subscription: no, yes (Ultimate only) |
--vercel-ai-gateway <value> | Vercel AI Gateway: no, yes (Ultimate only) |
--codex-autonomous | Configure Codex with approval_policy = "never", sandbox_mode = "danger-full-access", and network_access = "enabled" when installing Light or Both |
--no-codex-autonomous | Leave existing Codex permission settings unchanged when installing Light or Both |
--skip-auth | Skip authentication setup hints |
When using the lazycodex-ai bin alias, install defaults to --platform=codex. lazycodex-ai is only the npm/bin alias; lazycodex is the marketplace repository name. The Codex config uses marketplace sisyphuslabs and plugin omo, enabled as omo@sisyphuslabs, with the marketplace source set to the local built cache under ~/.codex/plugins/cache/sisyphuslabs.
Subscription flags (--claude, --openai, etc.) only apply when --platform is opencode or both. They are rejected under --platform=codex because the Light edition does not write OpenCode model config. --codex-autonomous and --no-codex-autonomous only affect installs where the selected platform includes Codex.
Anonymous telemetry uses PostHog with a hashed installation identifier. Two streams exist:
omo_daily_active: fired by the main plugin and oh-my-openagent run.omo_codex_daily_active: fired by omo install --platform=codex or --platform=both (reason: "install_completed") and by the Codex plugin's SessionStart hook on every Codex session (reason: "session_start"). Both sources share the same UTC-day deduplication, so daily/weekly/monthly active counts reflect real Codex usage, not just install events.Opt-out env vars:
OMO_SEND_ANONYMOUS_TELEMETRY=0 or OMO_DISABLE_POSTHOG=1omo_codex_daily_active: OMO_CODEX_SEND_ANONYMOUS_TELEMETRY=0 or OMO_CODEX_DISABLE_POSTHOG=1For the full Codex Light event inventory, collected properties, local state path, and lazycodex marketplace copy path, see Codex Light telemetry.
Diagnoses your environment and configuration. Checks are grouped into four categories: System, Config, Tools, and Models.
bunx oh-my-openagent doctor
| Option | Description |
|---|---|
--status | Show compact system dashboard |
--verbose | Show detailed diagnostic information |
--json | Output results in JSON format |
>= 1.4.0.oh-my-opencode) is still present in opencode.json.Runs a non-interactive session and exits only when both conditions are true:
bunx oh-my-openagent run <message>
| Option | Description |
|---|---|
-a, --agent <name> | Agent to use (default resolution chain applies) |
-m, --model <provider/model> | Model override (example: anthropic/claude-sonnet-4) |
-d, --directory <path> | Working directory |
-p, --port <port> | Server port (attaches if already in use) |
--attach <url> | Attach to an existing OpenCode server URL |
--on-complete <command> | Run shell command after completion |
--json | Output structured JSON result |
--no-timestamp | Disable timestamp prefix in output |
--verbose | Show full event stream (default: messages/tools only) |
--session-id <id> | Resume an existing session |
--agentOPENCODE_DEFAULT_AGENTdefault_run_agent in plugin configSisyphusShows local plugin version state and update status.
bunx oh-my-openagent get-local-version
| Option | Description |
|---|---|
-d, --directory <path> | Working directory used for plugin/config detection |
--json | Output JSON for scripting |
Refreshes the cached model capabilities snapshot from models.dev.
bunx oh-my-openagent refresh-model-capabilities
| Option | Description |
|---|---|
-d, --directory <path> | Working directory used to read plugin config |
--source-url <url> | Override models.dev source URL |
--json | Output refresh summary as JSON |
{
"model_capabilities": {
"enabled": true,
"auto_refresh_on_start": true,
"refresh_timeout_ms": 5000,
"source_url": "https://models.dev/api.json"
}
}
Shows CLI package version.
bunx oh-my-openagent version
OAuth token management for MCP servers (Tier-3 MCP OAuth flow, including PKCE and dynamic client registration when supported by the server).
# Authenticate
bunx oh-my-openagent mcp oauth login <server-name> --server-url https://api.example.com
# Authenticate with explicit client ID and scopes
bunx oh-my-openagent mcp oauth login <server-name> --server-url https://api.example.com --client-id my-client --scopes read write
# Remove stored tokens
bunx oh-my-openagent mcp oauth logout <server-name> --server-url https://api.example.com
# Show token status
bunx oh-my-openagent mcp oauth status [server-name]
| Option | Description |
|---|---|
--server-url <url> | OAuth server URL (required by login, and required by logout) |
--client-id <id> | OAuth client ID (optional if server supports DCR) |
--scopes <scopes...> | OAuth scopes as variadic values |
0 on success1 on failurerun, install, doctor, get-local-version, refresh-model-capabilities, and mcp oauth subcommands return explicit numeric exit codes.