Claude Code a OpenCode jsou AI coding assistanti pro příkazovou řádku, kteří umožňují řídit chování modelu pomocí konfiguračních souborů, hooks a rozšiřujících workflows. Tento článek popisuje konfigurační mechanismy Claude Code a u každého uvádí, jak je analogické chování zajištěno v OpenCode.
Claude Code načítá instrukce z CLAUDE.md souborů ve třech úrovních:
| Umístění | Scope |
|---|---|
~/.claude/CLAUDE.md | Osobní nastavení platné pro všechny projekty; není verzováno v gitu |
./CLAUDE.md nebo ./.claude/CLAUDE.md | Projektové instrukce sdílené přes git |
/etc/claude-code/policy.md | Organizační pravidla (managed prostředí) |
Instrukce lze umísťovat i do podadresářů projektu. Claude načte nejbližší CLAUDE.md v adresářové hierarchii, kde právě pracuje — například src/auth/CLAUDE.md se uplatní přesně tehdy, kdy Claude pracuje v daném modulu.
OpenCode používá analogický systém s AGENTS.md:
| Umístění | Scope |
|---|---|
~/.config/opencode/AGENTS.md | Globální nastavení napříč projekty |
./AGENTS.md | Projektové instrukce (root) |
./subdir/AGENTS.md | Instrukce pro konkrétní podadresář |
Lokální soubory mají přednost před globálními; root AGENTS.md se merguje s lokálními. Instrukce lze také explicitně odkazovat přes opencode.json:
{ "instructions": ["./subproject/AGENTS.md"] }
Hooks jsou shell příkazy definované v settings.json, které se spouštějí při specifických událostech:
| Event | Kdy se spouští |
|---|---|
SessionStart | Při startu nebo obnovení session |
PreToolUse | Před spuštěním nástroje |
PostToolUse | Po úspěšném nástroji |
UserPromptSubmit | Při odeslání promptu |
Stop | Při dokončení odpovědi |
Příklad v .claude/settings.json — automatické formátování po každé editaci:
{
"hooks": {
"PostToolUse": [{
"matcher": "Edit|Write",
"hooks": [{
"type": "command",
"command": "npx prettier --write \"$CLAUDE_TOOL_INPUT_FILE_PATH\""
}]
}]
}
}
Blokování nebezpečné akce se provede exit kódem 2 nebo JSON odpovědí s deny.
OpenCode používá místo JSON konfigurace JS/TS pluginy umístěné v '.opencode/plugins/' (nebo globálně v ~/.config/opencode/plugins/). Pluginy jsou TypeScript/JavaScript moduly s before/after hooky na tool cally:
// .opencode/plugins/env-protection.ts
export const EnvProtection: Plugin = async ({ client }) => ({
tool: {
execute: {
before: async (input) => {
if (input.tool === "read" && input.args.filePath.includes(".env")) {
throw new Error("Cannot read .env files");
}
}
}
}
});
Srovnání přístupů:
| Aspekt | Claude Code (hooks) | OpenCode (pluginy) |
|---|---|---|
| Jazyk | JSON + shell skripty | JS/TS moduly |
| Umístění | .claude/settings.json nebo ~/.claude/settings.json | .opencode/plugins/ nebo ~/.config/opencode/plugins/ |
| Blokování | Exit kód 2 nebo JSON deny | throw Error v before hooku |
| Vlastní nástroje | Přes MCP nebo skills | Ano, přes Zod schema |
Skills jsou markdown soubory v '.claude/skills/'. Každý skill obsahuje instrukce pro konkrétní typ práce — code review, refaktoring, debugging, release postup. Claude je načítá podle kontextu nebo na vyžádání.
Výsledek: konzistentní chování napříč sezeními i v rámci týmu bez nutnosti opakovat instrukce v každém promptu.
OpenCode nemá přímý ekvivalent systému skills. Analogické chování se dosahuje kombinací instrukcí v AGENTS.md a JS/TS pluginů, které mohou definovat vlastní nástroje přes Zod schema. Globální workflows se umísťují do ~/.config/opencode/AGENTS.md.