ai:platformy:claude-code:mody

Mody pro Claude Code

Vytvořeno: 28.10.2026 | Aktualizováno: 28.10.2026 09:40

Mody pro Claude Code jsou pluginy s kódem, který reaguje na události uvnitř Claude Code. Umožňují přidat vlastní prvky do rozhraní, upravit chování nástrojů nebo zavést nové příkazy. Tento článek rozvíjí téma z článku na Vibe Coding a doplňuje ho o aktuální dokumentaci Anthropicu.

Mod může například:

  • Zobrazit panel vedle konverzace nebo pruh nad polem pro zprávu.
  • Doplnit informaci do existujícího rozhraní, například počítadlo volání nástrojů vedle indikátoru práce.
  • Přidat vlastní příkaz, který vykoná kód modu.
  • Sledovat, upravit nebo odmítnout volání nástroje či jinou událost.

Mod není nový AI model ani režim plánování. Je to rozšíření aplikace Claude Code. Přehled dalších článků je v sekci Claude Code.

Tyto mechanismy se částečně překrývají, ale řeší různé úlohy. Oficiální srovnání doporučuje použít jednodušší mechanismus, pokud stačí.

Mechanismus Co to je Kdy ho použít
Plugin Balíček rozšíření. Může obsahovat mod, skills, agenty, běžné hooky i MCP servery. Chci rozšíření instalovat nebo sdílet jako celek.
Mod Plugin s JavaScriptovým nebo TypeScriptovým kódem reagujícím na události uvnitř Claude Code. Chci vlastní panel nebo zasahovat do chování aplikace.
Skill Instrukce, které Claude načte pro určitou práci, typicky ze souboru SKILL.md. Chci Claudeovi předat opakovatelný postup.
Settings hook Příkaz, HTTP požadavek nebo prompt nastavený pro určitou událost. Chci například zaznamenat nebo zablokovat volání nástroje bez tvorby modu.
MCP server Externí služba nebo proces, který Claudeovi poskytuje nástroje. Chci agenta napojit na další systém.

Slovo hook se používá pro obě varianty: běžný settings hook i funkci zaregistrovanou modem. V článku je rozlišujeme. Mod například může vykreslit panel; skill může obsahovat návod, jak takový mod vytvořit, ale sám panel nevykresluje.

Mod je plugin s modulem, ve kterém funkce register zaregistruje obsluhu událostí. Událostí může být například volání nástroje tool.call, vykreslení části rozhraní ui.render nebo spuštění příkazu command.run.

Obsluha dostává tři argumenty:

  • $ – API modu pro přístup k funkcím Claude Code, například k rozhraní nebo souborům.
  • e – data události, například údaje o volání nástroje.
  • next – funkce pro předání události dalším modům a následně Claude Code.

Obsluha může událost jen sledovat a předat ji přes next(e), předat upravenou kopii nebo místo dalšího zpracování vrátit vlastní odpověď, pokud to daný typ události podporuje. Podrobnosti a podporované návratové hodnoty uvádí reference modů.

Jednoduchý mod má obvykle tři soubory:

pocitadlo-nastroju/
├── .claude-plugin/
│   └── plugin.json
└── hooks/
    ├── hooks.json
    └── register.js

plugin.json je manifest pluginu, hooks.json ukazuje na modul a register.js obsahuje jeho kód. Mod používající $.state potřebuje také deklaraci typů stavu; její podobu popisuje reference.

Podle oficiální dokumentace fungují mody v terminálu, v záložce Code desktopové aplikace a v rozšíření pro VS Code. Spuštění kódu a vykreslení rozhraní jsou dvě různé věci:

  • Terminál a desktop: mody mohou vykreslovat rozhraní, konkrétní prvky se však mohou mezi prostředími lišit.
  • VS Code: vykreslování v chatovém panelu podporuje rozšíření od verze 2.1.299. Relace, které nestahují příznaky funkcí, potřebují alespoň 2.1.304. Ne všechny prvky jsou dostupné ve všech prostředích.
  • claude -p a Agent SDK: hooky načteného modu mohou běžet, ale grafický výstup se nezobrazuje.
  • Cloudové relace: hooky mohou běžet, pokud se do relace příslušný plugin dostane; rozhraní modu se tam nevykresluje.
  • Desktopová relace ve WSL: podle dokumentace zde pluginy nejsou dostupné, a proto neběží ani mody.

Původní článek na Vibe Coding uvádí, že se ve VS Code grafika modů nezobrazuje. Aktuální dokumentace už podporu uvádí; rozhoduje verze rozšíření a konkrétní prvek. Podrobná tabulka je v přehledu podporovaných prostředí.

V terminálu dokumentace požaduje Claude Code alespoň ve verzi 2.1.287. Verzi zjistíš příkazem:

claude --version

Claude Code má vestavěný skill plugin-authoring, který obsahuje postup pro vytváření modů a odkazuje na typové definice konkrétní verze. Podle návodu Anthropicu může Claude skill načíst při zadání modu; lze ho také vyvolat přímo v interaktivní relaci:

/plugin-authoring

Potom stačí popsat požadované chování, například:

Vytvoř mod, který vedle indikátoru práce zobrazuje počet volání nástrojů. Ověř ho a vysvětli, jak ho vypnout.

Postup:

  1. Claude připraví soubory v adresáři relace pod ~/.claude/dev-mods/<ID-relace>/. Podle režimu oprávnění může být potřeba schválit jednotlivé soubory.
  2. Při prvním vytvořeném souboru se Claude Code může zeptat, zda mody pro tuto relaci zapnout. Po schválení je načte na konci tahu a následné úpravy znovu načte. Pokud zvolíš odklad, zatím se nespustí.
  3. V Claude Code otevři /plugin a na kartě Installed zkontroluj načtený plugin. Na stejném místě ho lze vypnout.
  4. Vyzkoušej skutečné chování modu. Případnou chybu nebo nechtěné chování popiš Claudeovi.

Automatické načítání vyžaduje důvěryhodný pracovní adresář a relaci, ve které lze odpovědět na schvalovací dialog. Organizační pravidla nebo nastavení mohou načítání zakázat.

Pozor na životnost: mod vytvořený pro relaci není automaticky trvalá instalace. Adresář relace může Claude Code později smazat podle nastavení cleanupPeriodDays. Pokud si chceš mod ponechat nebo použít jinde, zkopíruj jeho adresář na vlastní trvalé místo a načti ho například přes --plugin-dir. Pro sdílení nebo instalaci napříč relacemi jej lze zabalit jako plugin a zveřejnit ve vlastním marketplace.

Následující mod vychází z oficiálního příkladu. Počítá volání nástrojů, zobrazuje počet vedle indikátoru práce a zpřístupňuje ho příkazem /pocet. Po opětovném načtení modu se počítadlo vrátí na nulu.

Příklad byl staticky validován a jeho počítání otestováno pomocí testovací sady Claude Code 2.1.312. Vykreslení v živé interaktivní relaci tímto testem ověřeno nebylo.

mkdir -p pocitadlo-nastroju/.claude-plugin pocitadlo-nastroju/hooks

Soubor pocitadlo-nastroju/.claude-plugin/plugin.json:

{
  "name": "pocitadlo-nastroju",
  "version": "0.1.0",
  "description": "Počítadlo volání nástrojů"
}

Soubor pocitadlo-nastroju/hooks/hooks.json:

{
  "modules": ["./register.js"]
}

Cesta k modulu je relativní vůči souboru hooks.json.

Soubor pocitadlo-nastroju/hooks/register.js:

let calls = 0
 
export function register(on) {
  on('session.start', async ($, e, next) => {
    await $.command.register({ name: 'pocet', description: 'Počet volání nástrojů' })
    return next(e)
  })
 
  on('tool.call', async ($, e, next) => {
    calls += 1
    $.ui.invalidate('ui.render')
    return next(e)
  })
 
  on('command.run', { command: 'pocet' }, async () => ({ text: 'Volání nástrojů: ' + calls }))
 
  on('ui.render', { component: 'Spinner' }, async ($, e, next) => {
    return next({ ...e, props: { ...e.props, suffix: ' · nástroje: ' + calls } })
  })
}

session.start zaregistruje příkaz. tool.call zvýší počítadlo a požádá o překreslení. command.run vrátí počet na vyžádání. ui.render doplní počet k indikátoru práce.

Validace zkontroluje manifest a staticky analyzuje modul, aniž by jeho kód spustila:

claude plugin validate ./pocitadlo-nastroju

Ve výstupu sleduj zejména hooks: a calls:. Validace může vypsat doporučení pro zveřejnění v katalogu pluginů; samotná úspěšná validace nedokazuje, že je mod bezpečný nebo že funguje ve všech situacích.

Pro načtení do jedné relace spusť:

claude --plugin-dir ./pocitadlo-nastroju

Požádej Claudea o úkol s několika voláními nástrojů, například o výpis souborů a přečtení README. Během práce sleduj indikátor a poté zadej /pocet. Při úpravě souborů se modul ve vývojové relaci může znovu načíst; tím se proměnná calls vynuluje.

Podle návodu k testování lze události nasimulovat bez volání skutečných nástrojů. Vytvoř soubor pocitadlo-nastroju/tests/pocitadlo.test.ts; adresář tests je potřeba nejprve vytvořit.

import { expect, test } from 'claude-code/testing'
 
test('počítá dvě volání', async ($, on) => {
  on('tool.call', () => ({ result: 'ok' }))
  await $.tool.call({ tool: 'Bash', command: 'ls' })
  await $.tool.call({ tool: 'Read', file_path: 'README.md' })
  const answer = await $.command.run({ command: 'pocet', args: '' })
  expect(answer.text).toBe('Volání nástrojů: 2')
})

Test spusť z nadřazeného adresáře:

claude plugin test ./pocitadlo-nastroju

Test ověřuje počítání a odpověď příkazu, nikoli registraci příkazu v živé relaci nebo vzhled indikátoru. V testu se příkazy ls a Read skutečně nespouštějí; odpovídá za ně testovací náhrada.

Mod je plugin. Existující mod z důvěryhodného marketplace lze nainstalovat příkazem v Claude Code, například:

/plugin install token-chart@your-org

token-chart a your-org jsou názvy z dokumentačního příkladu, nikoli příslib dostupného pluginu. Marketplace musí být předem dostupný. Pluginy se spravují přes /plugin; po instalaci ze shellu lze v otevřené relaci použít /reload-plugins. Další možnosti popisuje návod k instalaci a oficiální ukázkové mody.

Konkrétní nainstalovaný mod vypneš přes kartu Installed v /plugin. Pro jednorázové spuštění bez nainstalovaných modů existuje --safe-mode, který ale vypne i další uživatelské úpravy. Nastavení disableAllHooks má také širší dopad, včetně běžných hooků a vlastní status line. Vestavěné mody mají odlišná pravidla vypnutí.

Mod je spustitelný kód, nikoli jen instrukce pro model. Bezpečnostní část dokumentace upozorňuje, že mod běží s oprávněními uživatele a není izolovaný sandboxem pro Bash nástroje Claudea. Může přistupovat k souborům a tajným údajům, spouštět procesy, komunikovat po síti nebo měnit průběh relace. Instaluj proto pouze důvěryhodné mody a před spuštěním zkontroluj jejich zdrojový kód i výstup validace.

Mod může zasahovat do rozhodování o volání nástrojů. Konkrétní možnosti měnit schvalování závisejí na typu účtu a spravovaných pravidlech; nespoléhej na to, že každý mod respektuje všechna lokální schvalovací pravidla. Výchozí vestavěná ochrana má v organizacích vlastní pravidla a konfiguraci.

Pokud hook selže nebo překročí svůj časový limit, Claude Code jej může přeskočit a pokračovat. Pro běžný hook reference uvádí limit 10 sekund jeho vlastního běhu, s výjimkami pro některé události. Bezpečnostní pravidlo postavené na modu proto vyžaduje ošetření chyb a testy včetně situace, kdy hook selže; samo o sobě nenahrazuje systémová oprávnění ani jiné nezávislé ochrany.

Podrobný postup popisuje dokumentace řešení problémů. Základní kontrola:

  1. Ověř verzi Claude Code a v /plugin zkontroluj, zda je mod načtený. Vestavěné mody se nezapočítávají do řádku mods active.
  2. Spusť claude plugin validate nad adresářem modu a zkontroluj manifest, modul, události a volání. Chybějící řádek hooks: může znamenat chybějící nebo chybně zapsané modules v hooks.json.
  3. Pokud se mod načte, ale rozhraní chybí, ověř podporu daného prvku v používaném prostředí. U panelu v terminálu může hrát roli také šířka okna.
  4. Pokud hook selže, hledej hlášku hook skipped a její důvod. Ve vývojové relaci může být vidět přímo v konverzaci; v jiných relacích hledej v debug logu.
  5. Zkontroluj, zda mod neblokuje bezpečný režim, nastavení hooků nebo organizační politika.

Pro spuštění s vlastním debug logem:

claude --debug-file ./mod-debug.log --plugin-dir ./pocitadlo-nastroju
  • ai/platformy/claude-code/mody.txt
  • Poslední úprava: 28.10.2026 09:40
  • autor: Petr Nosek