OpenCode
Overview
OpenCode is a terminal-native agentic coding assistant, currently (July 2026) on its V2 line maintained under anomalyco/opencode with docs at dev.opencode.ai and opencode.ai/v2. It is the direct counterpart to claude-code-system-prompt, cursor-system-prompt, cline-system-prompt, and grok-build: an interactive CLI agent that edits code, runs tools, and manages long sessions.
⚠️ Naming collision: this page documents the current V2 product. A separate, unrelated, now-archived Go project also named OpenCode (
opencode-ai/opencode) existed and was archived on 2025-09-18, continuing ascrush(charmbracelet). Do not conflate the two.
Interface (CLI) (confidence: high)
The CLI defaults to the TUI when run bare, and also accepts subcommands for programmatic use:
opencode run "…"— non-interactive mode for scripting/automation;--attachto a headlessserveto avoid MCP cold-boot per run.opencode serve/web— headless HTTP server (basic auth viaOPENCODE_SERVER_PASSWORD);attachreconnects a TUI to it.opencode agent create— interactive or flag-driven (--path,--description,--mode,--permissions,--model) agent generation.opencode mcp add|list|auth|logout|debug— MCP server management incl. OAuth.opencode session list|delete,export(--sanitize),import,stats(tokens/cost),models --refresh,pr,plugin,db,acp(Agent Client Protocol server).
Permission model: agent create --permissions is an allow-list — anything omitted is denied. Available: bash, read, edit, glob, grep, webfetch, task, todowrite, websearch, lsp, skill.
Relevant env vars: OPENCODE_DISABLE_AUTOCOMPACT, OPENCODE_DISABLE_CLAUDE_CODE (disables reading .claude prompt + skills), OPENCODE_CONFIG_CONTENT (inline JSON config), OPENCODE_PERMISSION (inline JSON permissions), OPENCODE_SERVER_PASSWORD.
Configuration (V2) (confidence: high)
- Format JSON/JSONC with
$schema: opencode.ai/config.json; load order: global~/.config/opencode/opencode.json(c)→ projectopencode.json(c)→.opencode/opencode.json(c)(a.opencodeconfig overrides direct configs even when closer). - Key sections:
permissions(ordered allow/deny/ask rules onaction+resource),agents(override built-ins;mode: subagent,systemprompt, per-agent permissions),compaction,warming(4-min idle interval / 30-min window),skills(dirs/URLs),commands(slash prompt templates),references,plugins,providers(custom models + limits). - Accepted but not yet implemented in V2:
share,username,formatter,lsp,instructions(“useAGENTS.mdfor active instructions”).
Compaction (confidence: high)
Compaction replaces older model context with a generated checkpoint (structured summary + serialized recent tail). Lossy, but earlier durable messages are not deleted. Analyzed in depth at context-compaction.
Implications
OpenCode V2 consolidates the agentic-coding-CLI pattern (terminal TUI + headless serve + web + ACP server) under one product, with a whitelist-first permission model and checkpoint-based context management. Its OPENCODE_DISABLE_CLAUDE_CODE switch makes explicit that .claude prompt/skill files are shared conventions across competing agents — a cross-tool portability signal consistent with skill-authoring-best-practices. The name collision with the archived Go project is a real-world documentation hazard: link targets must be verified against the anomalyco org.
Relationships
- “developed” claude-code-system-prompt — closest analog: terminal-native agentic coding assistant (Claude Code)
- “developed” cursor-system-prompt — IDE-based agentic counterpart
- “developed” grok-build — xAI terminal agentic CLI counterpart
- “implements” context-compaction — V2 checkpoint-based compaction behavior
- “uses” openagentskill — skill loading/registry surface (
.opencode/skills,skillsconfig)
Open Questions
- Whether the V2 permission/whitelist model is exported as a reusable pattern worth a dedicated concept page (vs staying tool-specific).
- Which of the accepted-but-inert V2 config fields (
lsp,formatter,instructions) ship first — affects guidance that says “use AGENTS.md”.
Sources
- raw/external/dev-opencode-ai-cli-b01a850a.md
- raw/external/opencode-ai-config-85d6db47.md
- raw/external/opencode-ai-compaction-d433d7dd.md
- raw/external/github-com-opencode-104f4b54.md