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.
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.
mcpAccepted at the top level for forward compatibility, not wired to tools yet.
permissionGlobal tool permission rules are enforced during AI SDK tool execution.
instructionsAccepted at the top level, but config-driven instruction files are not loaded yet.
toolsAccepted at the top level, not used as global tool config yet.
compactionAccepted at the top level, not used as config yet.
watcherAccepted at the top level, not used as config yet.
formatterAccepted at the top level, not used as config yet.
disabled_providersAccepted at the top level, not applied yet.
enabled_providersAccepted at the top level, not applied yet.
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.

Use the OpenCode docs

TopicReference
Config shapeOpenCode config
CommandsOpenCode commands
RulesOpenCode rules
AgentsOpenCode agents
MCPOpenCode MCP servers
ThemesOpenCode themes