| name | opencode |
| description | OpenCode AI - AI-driven code editor/IDE (CLI/TUI version of Cursor/Windsurf). Use when: (1) AI-assisted coding tasks, (2) Code refactoring with AI, (3) GitHub PR review/fixes, (4) Multi-file edits requiring context, (5) Running AI agents on codebases. NOT for: simple one-line edits (use edit tool), reading files (use read tool). |
| metadata | {"openclaw":{"emoji":"🤖","requires":{"bins":["opencode"]}}} |
OpenCode AI - AI Code Editor
OpenCode is an AI-native code editor that runs in your terminal. Think of it as Cursor or Windsurf, but as a CLI/TUI tool.
Version: 1.2.10 (Homebrew)
Platform: macOS Darwin x64
Prerequisites
CRITICAL: OpenCode requires sysctl to detect system architecture. Ensure /usr/sbin is in your PATH:
export PATH="/usr/sbin:/usr/bin:/sbin:/bin:$PATH"
If missing, OpenCode will fail with:
Executable not found in $PATH: "sysctl"
Add this to ~/.zshrc permanently:
echo 'export PATH="/usr/sbin:/usr/bin:/sbin:/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
When to Use OpenCode
✅ Use for:
- Complex refactoring across multiple files
- AI-assisted feature implementation
- GitHub PR review and automated fixes
- Exploring and understanding unfamiliar codebases
- Running multi-step coding tasks with context
- Session-based coding (continue previous work)
❌ Don't use for:
- Simple one-line edits (use
edit tool)
- Reading file contents (use
read tool)
- Non-coding tasks
Core Operations (TUI Slash Commands)
When running OpenCode in TUI mode (opencode), you can use these slash commands to control the AI workflow:
/sessions - Session Management
/sessions
- Opens session selector
- Choose to continue an existing session
- Create a new session (with user approval)
- Recommended: Select existing session for current project
/agents - Agent (Mode) Control
/agents
Available agents:
- plan - Planning mode (analyze and design)
- build - Build mode (implement and code)
- explore - Exploration mode (understand codebase)
- general - General assistance
Best Practice: Always select plan first, then switch to build after approval.
/models - Model Selection
/models
- Opens model selector
- Filter by provider (OpenAI, Anthropic, Google, Z.AI, etc.)
- Select preferred model for the task
- If authentication required, follow the login link provided
Agent Workflow
Plan Agent Behavior
- Ask OpenCode to analyze the task
- Request a clear step-by-step plan
- Allow OpenCode to ask clarification questions
- Review the plan carefully
- If plan is incomplete, ask for revision
- Do not allow code generation in Plan mode
Build Agent Behavior
- Switch to Build using
/agents
- Ask OpenCode to implement the approved plan
- If OpenCode asks questions, switch back to Plan
- Answer and confirm the plan, then switch back to Build
Plan → Build Loop
- Select plan agent with
/agents
- Describe the task
- Review and approve the plan
- Switch to build agent with
/agents
- Implement the plan
- Repeat until satisfied
Key Rules:
- Never skip Plan
- Never answer questions in Build mode (switch to Plan first)
- Always show slash commands explicitly in output
Other Useful Commands
- /title - Change session title
- /summary - Generate session summary
- /compaction - Compact conversation history
Core Commands
1. Quick Tasks (One-Shot)
opencode run "Add input validation to the login form"
opencode run --dir ~/path/to/project "Refactor this code to use async/await"
opencode run -m openai/gpt-4o "Optimize the database queries"
opencode run -f src/auth.js -f src/database.js "Fix the authentication bug"
opencode run --continue
opencode run --session abc123 --fork
2. Interactive TUI Mode
opencode
opencode ~/path/to/project
opencode -m anthropic/claude-sonnet-4
3. Authentication
opencode auth list
opencode auth login [url]
opencode auth logout
4. Model Management
opencode models
opencode models openai
opencode models --verbose
opencode models --refresh
5. Session Management
opencode session list
opencode session delete <sessionID>
opencode export [sessionID]
opencode import <file>
6. GitHub Integration
opencode pr 123
opencode github --help
7. MCP Servers (Model Context Protocol)
opencode mcp list
opencode mcp add
opencode mcp auth [name]
opencode mcp debug <name>
8. Agent Management
opencode agent list
opencode agent create
9. Server Mode
opencode serve
opencode web
opencode acp
10. Statistics
opencode stats
Key Options (Global)
| Option | Description |
|---|
-m, --model | Model to use (format: provider/model) |
-c, --continue | Continue last session |
-s, --session | Continue specific session |
--fork | Fork session when continuing |
--agent | Use specific agent |
--dir | Directory to run in |
--format | Output format: default or json |
--thinking | Show thinking blocks |
--variant | Model reasoning effort (high, max, minimal) |
Common Patterns
Pattern 1: Refactor Code
opencode run "Refactor this function to be more readable and add error handling"
Pattern 2: Add Features
opencode run "Add a new API endpoint for user registration with email verification"
Pattern 3: Fix Bugs
opencode run -f error.log -f src/auth.js "Fix the authentication bug described in the error log"
Pattern 4: Review Code
opencode run "Review this code for security vulnerabilities and suggest improvements"
Pattern 5: GitHub PR Workflow
opencode pr 123
Pattern 6: Continue Previous Work
opencode run --continue
opencode run --continue --fork
Session-Based Work
OpenCode maintains sessions that preserve context across runs:
opencode run "Implement user authentication"
opencode run --continue
opencode run --session session-abc123
Session Lifecycle
- Create: Run
opencode run "prompt" or opencode
- Continue: Use
--continue or --session <id>
- Fork: Use
--fork to branch from a session
- Export: Save session data as JSON
- Delete: Remove old sessions
Model Selection
Format
provider/model
Examples:
openai/gpt-4o
anthropic/claude-sonnet-4
opencode/gpt-4o
google/gemini-2.5-pro
List Available Models
opencode models
opencode models openai
opencode models anthropic
Model Variants (Reasoning Effort)
Some models support reasoning effort levels:
opencode run --variant high "Solve this complex algorithm problem"
opencode run --variant max "Architect a distributed system"
opencode run --variant minimal "Quick code review"
JSON Mode (For Automation)
Use --format json for machine-readable output:
opencode run --format json "Refactor this code" | jq .
Useful for:
- CI/CD integration
- Scripting
- Parsing results programmatically
Web Interface
For a GUI experience:
opencode web
opencode web --port 8080
opencode web --hostname 0.0.0.0
Troubleshooting
"sysctl not found" Error
Problem: OpenCode can't find sysctl command
Solution:
export PATH="/usr/sbin:/usr/bin:/sbin:/bin:$PATH"
Add to ~/.zshrc to make permanent.
"Failed to change directory" Error
Problem: OpenCode treats arguments as directory paths
Solution: Use flags like --version, --help, or run explicitly:
opencode version
opencode --version
OpenCode hangs or freezes
Problem: Interactive TUI waiting for input
Solution: Press Ctrl+C to exit, or use run mode for non-interactive tasks.
Permission issues
Problem: Can't write to files
Solution: Ensure file/directory permissions allow your user to write:
chmod +w ./path/to/file
Integration with OpenClaw
Use via exec tool
bash command:"opencode run 'Add error handling'"
bash background:true command:"opencode run 'Refactor entire codebase'"
Check current sessions
bash command:"opencode session list"
View stats
bash command:"opencode stats"
Tips & Best Practices
- Be specific: Clear prompts produce better results
- Use files: Attach relevant files with
-f for context
- Iterate: Use
--continue to build on previous work
- Fork experiments: Use
--fork to try variations safely
- Choose models wisely: Different models excel at different tasks
- Monitor costs: Use
opencode stats to track token usage
- Leverage sessions: Sessions maintain context across interactions
Comparison to Other Tools
| Feature | OpenCode | Cursor | Windsurf | Claude Code |
|---|
| Interface | CLI/TUI | GUI | GUI | CLI |
| Terminal-native | ✅ | ❌ | ❌ | ✅ |
| Session management | ✅ | ✅ | ✅ | ✅ |
| GitHub PR integration | ✅ | ✅ | ✅ | ✅ |
| Model support | Multi | Multi | Multi | Anthropic |
| MCP support | ✅ | ❌ | ❌ | ❌ |
Choose OpenCode when:
- You prefer terminal workflows
- Need CI/CD integration
- Want headless/server mode
- Require MCP protocol support
Documentation & Resources
- Version:
opencode --version
- Help:
opencode --help or opencode <command> --help
- Models:
opencode models --verbose
- Sessions:
opencode session list
Last updated: 2026-02-25