crabcode

OpenCode Compatibility

What OpenCode configuration works in crabcode and what is crabcode-specific.

Treat it like OpenCode

Don't think CrabCode as another agent config to manage, just treat it like configuring OpenCode.

Most OpenCode docs apply directly: config is JSON/JSONC, project assets live under .opencode/, and command files use the OpenCode markdown command format. crabcode adds a small terminal-specific layer for notifications and theme selection.

Compatibility map

Blank cells mean that runtime behavior is not supported by that project today. means crabcode intentionally ignores the OpenCode setting.

Area / settingOpenCodecrabcodeNotes
modelDefault model when no persisted active model is set.
small_model / smallModelNot enabled by default. When configured, crabcode uses it for lightweight tasks such as session title generation.
default_agentSelects the startup agent mode.
command configJSON-defined slash commands with template, description, agent, model, and subtask.
.opencode/commands/*.mdMarkdown command files, including nested names.
.crabcode/commands/*.mdcrabcode-specific command overrides.
$ARGUMENTS, $1, $2The final positional placeholder consumes the rest of the arguments.
!`command` in command filesRuns from the project root and injects command output.
@path file references in commandsFile or directory content is appended to the rendered prompt.
AGENTS.md project instructionscrabcode walks up from the working directory and prefers AGENTS.md over CLAUDE.md in the same directory.
~/.config/crabcode/AGENTS.mdcrabcode global instructions.
Claude Code fallback rulesCLAUDE.md and ~/.claude/CLAUDE.md are read unless disabled by crabcode environment flags.
SkillsReads SKILL.md files from OpenCode, crabcode, Claude, and .agents skill roots.
agent.<name>.toolsTool allowlists feed the runtime agent registry.
agent.<name>.permissionAgent-specific permission rules override global rules.
agent.<name>.task_permissionsControls which subagents an agent may invoke through Task.
agent.<name>.steps / maxSteps / max_stepsRegistry max-step values apply to primary agents and subagents.
agent.<name>.mode / hiddenModes control primary/subagent use; hidden agents are omitted from prompt and autocomplete listings.
agent.<name>.model / temperature / top_ppartialSubagent model overrides are applied for Task/@agent; sampling settings are parsed but not yet applied.
Markdown agent files.opencode/agents/*.md frontmatter is parsed; body content becomes agent instructions.
provider.<id>.options.timeoutpartialInteger milliseconds or false to disable timeout.
themeIn crabcode config files only. OpenCode config theme is ignored by crabcode.
notificationscrabcode-specific sounds, desktop notifications, and terminal alert signals such as Zed tab dots.
mcpUses the OpenCode MCP config shape. Enabled servers are connected at runtime and their tools are exposed as crabcode tools.
permissionGlobal tool permission rules are enforced during AI SDK tool execution.
instructionsLoads the listed files relative to the project root (or from absolute and ~/ paths) and appends their contents to the system prompt. Unreadable files produce a config warning.
toolsGlobal tool enable/disable map. Disabled tools are removed before agent-specific tool policies are applied.
compactionAccepted and parsed (false or { "auto", "prune" }), but compaction behavior is not applied yet.
watcherControls file suggestions in command autocomplete. Use false to disable them or { "ignore": ["path"] } to exclude paths.
formatterAccepted and parsed by file extension, but configured formatter commands are not run yet.
disabled_providersRemoves the listed provider IDs from model discovery and selection.
enabled_providersRestricts model discovery and selection to the listed provider IDs. disabled_providers takes precedence when both are set.
keybindsIgnored because crabcode does not use OpenCode keybind config.
shareIgnored.
tuiIgnored. crabcode owns its terminal UI.
serverIgnored.
pluginIgnored.
custom tools (tool, custom_tools, customTools)Ignored.

MCP notes

Use the OpenCode MCP docs for the config shape. crabcode reads the same top-level mcp map from OpenCode and crabcode config files, supports local stdio servers and remote HTTP servers, and registers discovered MCP tools into the normal tool list.

MCP server enabled flags are respected. The remote UI can toggle configured servers, and those overrides are persisted in crabcode preferences. MCP resources are not exposed as separate resource-list/read tools yet; tool calls are supported.

Use the OpenCode docs