OpenCode¶
OpenCode is a coding-agent TUI, configured as a stow-managed package under
.config/opencode/. It deliberately shares this machine's guardrails with Claude Code:
the same global agent rules, a permission config that mirrors the Claude Code sandbox, the cyberdream palette, and
the tmux "needs you" status indicator. Switching between the two agents keeps the same boundaries and the same look.
| Page | Purpose |
|---|---|
| Permissions | opencode.jsonc — the permission-rule mirror of the Claude Code sandbox. |
| Memory | AGENTS.md — symlink to the shared ~/.claude/CLAUDE.md agent rules. |
| Theme | cyberdream.json + tui.json — the OpenCode TUI palette. |
| Plugins | agent-tmux-status.js — the tmux status indicator that flags your turn. |
Files¶
| File | Purpose |
|---|---|
.config/opencode/opencode.jsonc |
Global runtime config and permission rules (JSONC, comments allowed). |
.config/opencode/tui.json |
TUI-only settings; selects the cyberdream theme. |
.config/opencode/AGENTS.md |
Symlink to ~/.claude/CLAUDE.md; shares one set of global agent rules. |
.config/opencode/themes/cyberdream.json |
Cyberdream palette for the OpenCode TUI. |
.config/opencode/plugin/agent-tmux-status.js |
Status-indicator plugin; flags the tmux window when OpenCode needs you. |
.config/opencode/.gitignore |
Keeps local OpenCode package/plugin install artifacts out of the repo. |
The .gitignore excludes the plugin's install artifacts — node_modules, package.json, package-lock.json,
and bun.lock — so only the hand-written config (opencode.jsonc, tui.json, the theme, and the plugin source)
is tracked. The @opencode-ai/plugin dependency is installed locally by
OpenCode, not committed.
Reloading config¶
OpenCode loads its config at startup. After editing opencode.jsonc, tui.json, or the theme, quit and restart
OpenCode for the change to take effect.