software:vyvoj:claude-code:konfigurace-vs-opencode

Claude Code vs OpenCode: konfigurace

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.

  • software/vyvoj/claude-code/konfigurace-vs-opencode.txt
  • Poslední úprava: 2026/03/14 14:24
  • autor: Petr Nosek