# Obnovení Claude Code: Safe Mode, /cd a záložní modely

> Diagnostika Claude Code pomocí safe mode, příkazu /cd, záložních modelů a obnovení nastavení. Pořadí kontrol a původní omezení.

Source: https://ailoot.ai/blog/cs/claude-code-safe-mode-recovery/
Canonical: https://ailoot.ai/blog/cs/claude-code-safe-mode-recovery/
Language: cs
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-140
Revision: sha256-328df0f901f0414eb762316415f3aeeb1d427b7c4a2f8c131212d034a403eeb7


Praktické materiály o práci s agenty: [dokumentace Ailoot](https://ailoot.ai/docs/).



## Co se v Claude Code změnilo v červnu 2026?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

Hlavní poznatek

Dne 8. června 2026 přidala Anthropic v Claude Code v2.1.169 příznak `--safe-mode` a příkaz `/cd`. O dva dny dříve, ve v2.1.166, přibyla záložní modelová řada až o 3 modelech. Tyto tři funkce řeší nejčastější bolestivý problém vibe coderů: „všechno se pokazilo, nevím, kdo za to může, a nechci ztratit hodinu přeinstalováváním“.

</div>

Dříve, když se Claude Code začal chovat podivně — nekonečné načítání, pád při spuštění, agent ignorující pravidla v `CLAUDE.md`, hook, který se potichu nespouštěl — existovala jen jedna cesta ven: ručně zakomentovat části `.claude/settings.json`, postupně vypínat MCP servery nebo v nejhorším případě smazat `~/.claude` a provést novou instalaci. V jednom popsaném případě bylo `~/.claude` smazáno a přišlo se tak o konfiguraci MCP serveru, jejíž sestavení zabralo hodinu a půl. Později se ukázalo, že za problém mohl jeden řádek v `CLAUDE.md` a že ho šlo najít za 10 sekund — to se ale ukázalo až po úplném obnovení.

V červnu 2026 Anthropic zavedla tři mechanismy, které tento scénář mění. Stručně: co přibylo a kdy:

| Verze | Datum | Co přibylo |
|----|----|----|
| **2.1.166** | 6. června 2026 | Nastavení `fallbackModel` + příznak `--fallback-model` pro interaktivní relace |
| **2.1.169** | 8. června 2026 | Příznak `--safe-mode` a proměnná prostředí `CLAUDE_CODE_SAFE_MODE`, příkaz `/cd` |
| **2.1.176** | 12. června 2026 | Oprava: `/cd` a přepnutí worktree přestaly zobrazovat starou větev git |

Níže jsou jednotlivé mechanismy vysvětlené krok za krokem spolu s pořadím, v jakém je použít, když se relace Claude Code začne vymykat kontrole.

## Co Claude Code nejčastěji rozbije?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

Hlavní poznatek

Podle popsaných zkušeností se Claude Code vibe coderům obvykle rozbije kvůli čtyřem věcem: přerostlému `CLAUDE.md` s protichůdnými pravidly, hooku s nesprávným návratovým kódem, MCP serveru, který selže potichu, a překrývajícím se nastavením ve třech úrovních `settings.json`. Viník je jeden, diagnostika trvá minuty a panika vede lidi k okamžitému použití `rm -rf`.

</div>

V popsaném příkladu měl `CLAUDE.md` původně 80 řádků — a měsíc fungoval. Ve druhém měsíci bylo znát, že Claude jednou týdně poruší všechna nastavená pravidla: sáhne na `.env`, spustí `git push --force`, prohrabuje se v `node_modules`. Nedělá to schválně — jen zapomene. Jednou byl smazán `.gitignore` a důvod nebyl hned jasný. Tomuto scénáři se podrobněji věnuje [průvodce souborem `CLAUDE.md`](https://ailoot.ai/blog/cs/claude-md-template/).

Když `CLAUDE.md` naroste na 400+ řádků, začne potichu působit potíže: při spuštění relace zabere významnou část kontextového okna a důležité pokyny se ztratí mezi vedlejšími. Claude soubor stále formálně čte, takže zvenčí to vypadá jako „pravidla tam jsou, ale nefungují“ — typický příznak přerostlé smlouvy.

Hooky jsou druhým častým zdrojem problémů. `Claude Code hooks` mají jednu vlastnost, kterou Anthropic příliš nezdůrazňuje.

To znamená, že `sys.exit(1)` v hooku Pythonu (nebo jakékoli obvyklé unixové „selhání s chybou“) Claude nezastaví. Blokuje pouze kód `2`. V popsaném případě byl hook považován za „tvrdý zákaz“, ale v praxi zaznamenal stížnost a akci povolil.

MCP servery jsou třetí vrstvou a také se porouchávají po svém.

Příznak bývá často stejný: příkazy MCP jsou dostupné, ale vracejí `failed` bez tracebacku. Další informace o konfiguraci MCP a přidávání serverů pomocí `claude mcp add` najdete v [samostatném průvodci](https://ailoot.ai/blog/cs/mcp-servers-claude-code/).

Čtvrtým zdrojem je tříúrovňová hierarchie `settings.json`. Máte `~/.claude/settings.json` (uživatelská úroveň), `.claude/settings.json` v kořeni projektu (projektová úroveň), `.claude/settings.local.json` (místní úroveň) a případně spravovaná nastavení od firemního správce. Kombinují se podle pravidel priority. Když někdo přidá MCP server na úrovni projektu, zatímco vy máte podobnou položku s jinou konfigurací spuštění na uživatelské úrovni, vznikne tichý konflikt, který vypadá jako „Claude Code je rozbitý“.

## Jak funguje `--safe-mode` a co vypíná?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

Hlavní poznatek

`claude --safe-mode` spustí Claude Code s úplně vypnutými vlastními úpravami: `CLAUDE.md`, pluginy, dovednostmi, hooky, MCP servery, uživatelskými příkazy, agenty, styly výstupu, workflow a klávesovými zkratkami. Autorizace, výběr modelu, vestavěné nástroje a oprávnění zůstávají. Jde o diagnostický nástroj: pokud problém v safe mode zmizí, je na vině jedna z přidaných vrstev.

</div>

Původní znění Anthropic v changelogu v2.1.169:

<figure>
<blockquote>
<p>Přidán příznak <code>--safe-mode</code> (a <code>CLAUDE_CODE_SAFE_MODE</code>) pro spuštění Claude Code s vypnutými vlastními úpravami (<code>CLAUDE.md</code>, pluginy, dovednosti, hooky, MCP servery) pro diagnostiku.</p>
</blockquote>
<figcaption>— Anthropic Claude Code Changelog, https://code.claude.com/docs/en/changelog</figcaption>
</figure>

Anthropic upřesňuje v dokumentaci ke konfiguraci modelu:

<figure>
<blockquote>
<p>Chcete-li zjistit, zda jsou na vině vlastní úpravy, spusťte relaci příkazem <code>claude --safe-mode</code>, který vypne <code>CLAUDE.md</code>, dovednosti, MCP servery a hooky. Stav Git a názvy adresářů se za vlastní úpravy nepovažují a zůstávají dostupné.</p>
</blockquote>
<figcaption>— Anthropic Docs - Model configuration, https://code.claude.com/docs/en/model-config</figcaption>
</figure>

Jde o **diagnostický nástroj**, nikoli o „čisté prostředí“. Safe mode pomáhá zodpovědět jednu otázku: je problém v základním chování Claude Code, nebo v přidaných úpravách? To patří ke správě kontextu — tedy k řízení toho, co Claude v danou chvíli vidí a co ne. Pokud v safe mode všechno funguje, je jasné, že je třeba zkontrolovat jednotlivé vrstvy binárním vyhledáváním. Pokud nefunguje, problém je v samotné instalaci, autorizaci, síti nebo infrastruktuře; pak má smysl podívat se na `claude doctor` a protokoly.

Co safe mode vypíná (oficiální seznam Anthropic — 5 hlavních vrstev):

- `CLAUDE.md` na všech úrovních (uživatelské / projektové)
- Pluginy
- Dovednosti
- Hooky
- MCP servery

Co zůstává funkční:

- Autorizace (relace OAuth nebo klíč API)
- Výběr modelu (`--model sonnet`, `--model opus`)
- Vestavěné nástroje (Read, Write, Bash, Grep a další)
- Oprávnění
- Stav Git
- Názvy adresářů

Důležitý detail: safe mode nevypíná spravovaná nastavení ani zásady firemního správce. Pokud pracujete v týmu, kde Bedrock GovCloud nebo konfigurace MDM nastavuje `availableModels`, tato omezení zůstávají — safe mode vypíná pouze vaše vlastní úpravy, nikoli firemní zásady.

## Jak izolovat vrstvu a najít viníka za 60 sekund?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

Hlavní poznatek

Krok 1: spusťte `claude --safe-mode` ve stejné složce, kde docházelo k problémům. Pokud funguje, problém je ve vašich vlastních úpravách a pak je zapínejte po jedné: `CLAUDE.md` -> hooky -> MCP -> dovednosti. Pokud nefunguje ani v safe mode, problém je v ověření, verzi, síti nebo operačním systému. V takovém případě spusťte automatickou diagnostiku `claude doctor` a nesahejte na `rm -rf`.

</div>

Diagnostický postup pro případ, kdy Claude Code „přestal poslouchat“. Minimální verze pro všechny níže uvedené příkazy je **Claude Code v2.1.169**. Pokud máte starší, nejprve jej aktualizujte (`npm update -g @anthropic-ai/claude-code` nebo nativním instalačním programem Anthropic).

1.  Otevřete stejnou složku, kde docházelo k problémům.
2.  Spusťte `claude --safe-mode`.
3.  Pokud se spustí bez problémů, ověřte svůj původní požadavek. Fungoval? Pak je na vině jedna z vrstev. Přejděte ke kroku 4.
4.  Pokud problém přetrvává i v safe mode, konfigurací nemanipulujte. Nejprve spusťte `claude doctor`; zkontrolujte ověření, verzi a konfliktní instalace.

Jakmile se safe mode spustí bez problémů, zapínejte vrstvy po jedné, počínaje nejpravděpodobnějším viníkem. Pořadí vychází z popsaných zkušeností:

1.  **`CLAUDE.md`.** Spusťte `claude` bez safe mode, ale soubor dočasně přejmenujte: `mv CLAUDE.md CLAUDE.md.bak`. Pokud vše funguje, příčinou je tento soubor. Pak můžete použít binární vyhledávání: ponechte polovinu řádků a ověřte chování.
2.  **Hooky.** Otevřete `.claude/settings.json` a v části `hooks` dočasně nastavte `[]`. Restartujte `claude`. Funguje? Pak je na vině jeden z hooků. Zapínejte je po jednom.
3.  **MCP servery.** Podobně v `~/.claude.json` nebo `.claude/settings.json` dočasně nastavte část `mcpServers` na prázdný objekt, restartujte a ověřte.
4.  **Dovednosti.** Přesuňte `.claude/skills/` do dočasné složky. Spusťte aplikaci a ověřte.

„Dočasné přejmenování“ znamená, že se soubory během diagnostiky nemažou. Příkazy `mv` nebo `git stash` umožňují všechno jedním příkazem obnovit, pokud se ukáže, že daná vrstva nebyla viníkem.



## Jak změnit pracovní složku pomocí `/cd` bez ztráty kontextu?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

Hlavní poznatek

Příkaz `/cd <path>` v Claude Code 2.1.169+ přepne pracovní složku v aktivní relaci bez ztráty mezipaměti promptu. Hodí se, když je konfigurace aktuálního projektu rozbitá: můžete přejít do čisté složky, ověřit, že Claude funguje, a vrátit se. Dříve jste museli relaci zavřít a spustit znovu.

</div>

Z changelogu v2.1.169 z 8. června:

<figure>
<blockquote>
<p>Přidán příkaz <code>/cd</code> pro přepnutí relace do nové pracovní složky bez resetování mezipaměti promptu uprostřed relace.</p>
</blockquote>
<figcaption>— Anthropic Claude Code Changelog, https://code.claude.com/docs/en/changelog</figcaption>
</figure>

Proč je to užitečné při řešení problémů. Představte si, že jste ve složce projektu `~/work/myapp` a Claude Code se chová podivně. Dříve bylo možné ověřit, zda vůbec funguje, jen zavřením relace, přechodem do jiné složky a novým spuštěním. Přišli jste o kontext, historii a zahřátou mezipaměť promptu. Teď stačí:

```bash
# In the same session:
/cd ~/sandbox/test
```

Claude přejde do nové složky a načte její `CLAUDE.md` (pokud existuje) jako zprávu, nikoli jako náhradu systémového promptu — mezipaměť se tedy zachová. Pokud v `~/sandbox/test` všechno funguje, je jasné, že problém byl v konfiguraci `~/work/myapp`.

Dne 12. června opravila verze v2.1.176 nepříjemnou regresi — `/cd` až do úplného restartu zobrazovalo starou větev git. Pokud máte starší verzi, buď ji aktualizujte, nebo po přepnutí jednoduše ignorujte `git status` během prvních několika zpráv; stav se aktualizuje.

## Jak nakonfigurovat záložní modely pro chybu 529?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

Hlavní poznatek

Ve v2.1.166 přidala Anthropic `fallbackModel` — řadu až 3 modelů, které se zkoušejí postupně, když je primární model přetížený nebo nedostupný. Řada se aktivuje pouze při přetížení a neopakovatelných chybách serveru. Chyby autorizace, fakturace, limitu požadavků a přenosu záložní řadu neaktivují — řídí se běžnou logikou opakování.

</div>

V popsaném scénáři běží v projektu jednou týdně dlouhá úloha na Opusu; po 10 minutách API vrátí 529 Overloaded a relace spadne. Dříve bylo nutné buď čekat, nebo ručně přepnout na Sonnet pomocí `--model sonnet` a přijít o celý zahřátý kontext. Ve velkém `business/` s uspořádáním druhého mozku to zabere asi dvacet minut práce. Teď existuje řádný mechanismus.

Přesná citace z oficiální dokumentace:

<figure>
<blockquote>
<p>Když je primární model přetížený, nedostupný nebo vrátí jinou neopakovatelnou chybu serveru, Claude Code může místo selhání požadavku přepnout na záložní model. Chyby autorizace, fakturace, limitu požadavků, velikosti požadavku a přenosu přepnutí nikdy neaktivují — řídí se běžným postupem pro opakování a zpracování chyb.</p>
</blockquote>
<figcaption>— Anthropic Docs - Model configuration, https://code.claude.com/docs/en/model-config</figcaption>
</figure>

A samostatně, jak řada funguje:

<figure>
<blockquote>
<p>Nakonfigurujte jeden nebo více záložních modelů a Claude Code je zkouší v daném pořadí; při přepnutí zobrazí oznámení. Přepnutí platí pouze pro aktuální tah — další zpráva znovu zkusí primární model. Po odstranění duplicit jsou řady omezené na tři modely; další položky se ignorují.</p>
</blockquote>
<figcaption>— Anthropic Docs - Model configuration, https://code.claude.com/docs/en/model-config</figcaption>
</figure>

Nakonfigurovat to lze dvěma způsoby. Přes CLI:

```bash
claude --fallback-model sonnet,haiku
```

Přes `~/.claude/settings.json`:

```json
{
  "fallbackModel": ["claude-sonnet-4-6", "claude-haiku-4-5"]
}
```

Samostatná poznámka k limitům rychlosti. Anthropic záměrně neposílá chybu 429 do této řady, abyste nemohli obejít limit požadavků přepnutím na další model. Záložní model funguje pouze tehdy, když je primární model přetížený, nedostupný nebo vrátí neopakovatelnou chybu serveru (například 529 Overloaded). Limity rychlosti se řídí běžnou logikou opakování a prodlev.

Ještě jedna poznámka — 12. června opravila verze v2.1.174 regresi: kompakce nerespektovala `--fallback-model`. Pokud máte dlouhou relaci a během přetížení dojde ke kompakci, před touto opravou se záložní model nevyvolal. Pokud pracujete s dlouhými relacemi (`/compact`, `/loop` přes noc), aktualizujte alespoň na v2.1.174.

## Co opravit, když je na vině `CLAUDE.md`, hook, MCP nebo dovednost?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

Hlavní poznatek

Když safe mode určí problematickou vrstvu, oprava se liší podle vrstvy. U `CLAUDE.md` použijte binární vyhledávání nebo přejděte na hotovou šablonu kratší než 200 řádků. U hooku zkontrolujte návratový kód (2 blokuje, 1 ne) a logiku. U MCP odeberte jeden server a ověřte chování. U dovednosti zkontrolujte, zda si `SKILL.md` neodporuje s `CLAUDE.md`.

</div>

Konkrétní postupy pro jednotlivé vrstvy.

### Pokud je na vině `CLAUDE.md`

Otevřete soubor a zkontrolujte jeho velikost. Podle popsaných zkušeností **udržujte aktivní `CLAUDE.md` nejvýše na 200 řádcích**; zbytek přesuňte do routerů a podpůrných dokumentů vedle projektu (úplná struktura druhého mozku je v [průvodci druhým mozkem](https://ailoot.ai/blog/cs/claude-code-second-brain/)). Pokud má soubor 400+ řádků, je téměř jistě na vině. Postup:

1.  Vytvořte zálohu: `cp CLAUDE.md CLAUDE.md.full`.
2.  Vraťte se ke krátké funkční šabloně. Hotovou najdete v [průvodci „Jak nakonfigurovat CLAUDE.md“](https://ailoot.ai/blog/cs/claude-md-template/).
3.  Restartujte Claude Code. Ověřte chování.
4.  Pokud funguje, obnovujte pravidla po malých blocích o 10–20 řádcích a po každém bloku vše ověřte.
5.  Najděte blok, který chování rozbíjí. Přepište ho na hook se správným návratovým kódem (návratové kódy hooků jsou vysvětleny v následující podsekci tohoto H2).

### Pokud je na vině hook

Hlavní otázkou je, zda je návratový kód správný. Hooky Claude Code používají:

- **Exit 0** — vše v pořádku; akce pokračuje.
- **Exit 1** — chyba, ale **neblokující**. Claude pokračuje, jako by se nic nestalo.
- **Exit 2** — **blokující** chyba. Pouze tento kód akci skutečně zastaví.

Pokud jste do shellového hooku napsali `sys.exit(1)` nebo `exit 1` v domnění, že akci blokujete, tento kód v Claude Code funguje jako varovný záznam a akci nezastaví. Změňte jej na `2`. Podrobnosti o hookách a jejich konfiguraci bez této nástrahy najdete v [samostatném průvodci](https://ailoot.ai/blog/cs/claude-code-hooks/).

Druhým častým případem je neplatný JSON na stdout z hooku. Claude Code odpověď hooku parsuje jako JSON; pokud je v ní něco navíc (záznam, indikátor průběhu, emoji), hook se považuje za neúspěšný a akce pokračuje. Pravidlo: **stdout obsahuje pouze JSON; vše ostatní patří na stderr**.

Třetím případem je hook, který čte něco z `~/.claude/`, co safe mode skryl. Jde o běžný scénář; neopravujte ho záplatou hooku, ale na začátku zkontrolujte `os.environ.get('CLAUDE_CODE_SAFE_MODE')` a ukončete běh s kódem 0.

### Pokud je na vině MCP server

Příznaky: příkazy MCP jsou dostupné, ale vracejí `failed` bez jasného tracebacku. Postup:

1.  Spusťte `claude mcp list` — které servery jsou definované?
2.  Vypínejte servery jeden po druhém v `~/.claude.json`: přejmenujte klíč `claude-server-A` na `_claude-server-A` (tím jej deaktivujete, aniž byste ho smazali).
3.  Restartujte `claude`. Ověřte, která volání fungují.
4.  Až najdete problematický server, zkontrolujte jeho protokol: `claude mcp logs <name>`.
5.  Pokud jde o server třetí strany (`@modelcontextprotocol/server-postgres` a podobné), zkontrolujte, zda má nedávné vydání. Ekosystém MCP je stále v pohybu; servery se při aktualizacích Claude Code pravidelně porouchávají.

Pokud narazíte na „pády při spuštění, a to pouze se dvěma MCP“, porovnejte chování v safe mode bez MCP.

### Pokud je na vině dovednost

Dovednost tvoří `SKILL.md` a kód v `.claude/skills/<name>/`. Příznaky: Claude dovednost ignoruje, použije ji v nesprávnou chvíli nebo ji použije, ale vytvoří nesmyslný výstup. Postup:

1.  Otevřete `SKILL.md`. Zkontrolujte popis — **měl by mít 1–2 věty a konkrétně uvádět, kdy dovednost použít**. Pokud říká „univerzální pomocník na všechno“, Claude nepozná, kdy jej má vyvolat.
2.  Zkontrolujte rozpory s `CLAUDE.md`. Pokud `CLAUDE.md` říká „vždy piš testy“, ale popis dovednosti říká „používej pro rychlé prototypování bez testů“, jde o konflikt.
3.  Pokud dovednost používá externí příkazy (npm, python, git), zkontrolujte, zda jsou dostupné v systémové cestě PATH. Dovednost má své vlastní minimální prostředí.

## Co dělat, když safe mode nepomohl: diagnostika a zachování stavu před opravou

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

Hlavní poznatek

Selže-li i safe mode, zbývá možnost chyby instalace, přihlášení, sítě či infrastruktury. Spusťte `claude doctor` a prohlédněte důkazy. Neprůkazná zpráva neopravňuje k mazání nastavení či relací: nejprve zachovejte a ověřte celý stav a pak opravte jen diagnostikovanou instalaci.

</div>

Odstranění uživatelského stavu není diagnostická zkratka. Následujícími kontrolami hledejte chybu; jsou-li neprůkazné, uchovejte důkazy a pokračujte ve zkoumání. Každá oprava instalace začíná ověřenou zálohou a zachovává účet i identitu úložiště přihlášení. Pořadí:

1.  **`claude doctor`** — automatická diagnostika. Anthropic ve své dokumentaci píše:

<figure>
<blockquote>
<p>Pokud příkaz <code>claude --version</code> funguje, ale něco jiného je špatně, spusťte <code>claude doctor</code> a vytvořte automatickou diagnostickou zprávu.</p>
</blockquote>
<figcaption>— Anthropic Docs - Troubleshoot installation, https://code.claude.com/docs/en/troubleshoot-install</figcaption>
</figure>

2.  **Zkontrolujte konfliktní instalace.** Mnoho lidí má zároveň nainstalovanou globální verzi npm i nativní instalační program:

<figure>
<blockquote>
<p>Více instalací Claude Code může vést k nesouladu verzí nebo neočekávanému chování.</p>
</blockquote>
<figcaption>— Anthropic Docs - Troubleshoot installation, https://code.claude.com/docs/en/troubleshoot-install</figcaption>
</figure>

3.  **Ověřte, zda vaši relaci OAuth nepřebírá `ANTHROPIC_API_KEY`.** To je častá příčina situace „nic nefunguje, klíč vypršel“:

<figure>
<blockquote>
<p>Když je nastavena proměnná `ANTHROPIC_API_KEY` a potvrdíte její použití, Claude Code používá tento klíč místo přihlašovacích údajů předplatného OAuth.</p>
</blockquote>
<figcaption>— Anthropic Docs - Troubleshoot installation, https://code.claude.com/docs/en/troubleshoot-install</figcaption>
</figure>

Řešení: spusťte `unset ANTHROPIC_API_KEY` v aktuální relaci shellu nebo proměnnou odeberte z `~/.zshrc` / `~/.bashrc`.

4.  **Opravte jen diagnostikou určenou instalaci; nejprve zachovejte veškerý uživatelský stav.** Selhání safe mode či neprůkazný doctor nedokazuje nutnost odstranění dat. Před konzistentní zálohou zastavte relace Claude a další zapisovatele. Zachovejte stejný unixový účet, HOME, úložiště přihlašovacích údajů systému i účet Anthropic; klíče nerotujte a nevytvářejte náhradní identitu.

Následující záloha je pro **Linux s GNU tar**. V macOS či Windows použijte nástroj zachovávající příslušná ACL, rozšířené atributy, odkazy a metadata a před pokračováním ověřte obnovu; nepředpokládejte podporu přepínačů GNU. Archiv obsahuje přihlašovací údaje a přepisy relací: uchovávejte jej soukromě mimo repozitáře.

```bash
# Run as the same user who owns the Claude state, after stopping writers.
set -eu
umask 077
backup_dir=$(mktemp -d "$HOME/.claude-recovery-XXXXXXXX")
set --
if [ -e "$HOME/.claude" ] || [ -L "$HOME/.claude" ]; then
  set -- "$@" .claude
fi
if [ -e "$HOME/.claude.json" ] || [ -L "$HOME/.claude.json" ]; then
  set -- "$@" .claude.json
fi
[ "$#" -gt 0 ] || exit 1
tar --acls --xattrs --numeric-owner -cpf "$backup_dir/claude-state.tar" -C "$HOME" "$@"
tar --acls --xattrs --compare -f "$backup_dir/claude-state.tar" -C "$HOME"
sha256sum "$backup_dir/claude-state.tar" > "$backup_dir/claude-state.sha256"
(cd "$backup_dir" && sha256sum -c claude-state.sha256)
mkdir "$backup_dir/restore-check"
tar --acls --xattrs -xpf "$backup_dir/claude-state.tar" -C "$backup_dir/restore-check"
tar --acls --xattrs --compare -f "$backup_dir/claude-state.tar" -C "$backup_dir/restore-check"
printf 'Verified recovery directory: %s\n' "$backup_dir"
```

Všechny příkazy musejí uspět. Archiv zahrnuje celý existující strom `.claude` včetně ignorovaných a nesledovaných relací, pluginů i `.claude.json`, nikoli jen sledované nastavení. Je-li některá cesta symbolickým odkazem nebo data leží v jiném nastaveném umístění, zastavte a zahrňte rozvinutý cíl do stejné ověřené zálohy; samotný odkaz svůj cíl nezálohuje. Archiv nezahrnuje macOS Keychain ani jiné externí úložiště přihlášení, proto jejich identity ponechte na místě.

Pokud diagnostika konkrétně určí **starou místní instalaci** jako konfliktní kopii, přesuňte pouze ji do soukromého obnovovacího adresáře místo mazání konfigurace a relací:

```bash
# Use the verified backup_dir from the previous block.
if [ -d "$HOME/.claude/local" ]; then
  mv "$HOME/.claude/local" "$backup_dir/legacy-local"
fi
```

Instalaci npm odstraňujte jen tehdy, když ji diagnostika určí jako konfliktní a chcete zachovat nativní. Pak použijte [dokumentovaný nativní instalátor](https://code.claude.com/docs/en/setup) bez mazání `.claude` či `.claude.json`:

```bash
curl -fsSL https://claude.ai/install.sh | bash
claude --version
claude doctor
```

Ve Windows zůstává nativní instalační příkaz:

```powershell
irm https://claude.ai/install.ps1 | iex
```

**Obnovu proveďte odděleně.** Znovu zastavte zapisovatele. Ověřte kontrolní součet archivu, rozbalte jej do prázdného obnovovacího adresáře jako výše a před použitím úspěšně porovnejte. Je-li nutná obnova přesunuté staré instalace, nejprve ověřte nepřítomnost `$HOME/.claude/local` a pak vraťte `$backup_dir/legacy-local` právě tam. Diagnostikovaný konfigurační soubor obnovte z ověřeného rozbalení až po zachování případné aktuální náhrady; celý strom slepě nepřepisujte. Relace, MCP i původní identita zůstávají zachovány. Samotný snímek Git nepokrývá ignorované přepisy, přihlašovací údaje ani metadata souborového systému.


## Co byste NEMĚLI dělat, když je Claude Code rozbitý?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

Hlavní poznatek

Šest anti-vzorů z popsaných případů podpory: měnit klíče před diagnostikou, provést úplné obnovení jako první krok, panikařit kvůli chybě UI u hooku, zvýšit návratový kód hooku před opravou logiky, upravit `CLAUDE.md` bez pojistky safe mode a věřit, že „Claude opraví vlastní MCP“. Každý z nich stojí hodiny a žádný není nutný.

</div>

### Neměňte klíče před diagnostikou

„Autorizace nefunguje“ je v 90 % případů způsobena tím, že `ANTHROPIC_API_KEY` přebírá předplatné, chybou UI hooku nebo selháním MCP. Rotace klíčů nic z toho neopraví, ale způsobí další hodinu výpadku: musíte odvolat starý klíč, vydat nový, znovu jím podepsat CI a aktualizovat proměnné v produkci. Nejprve spusťte `claude --safe-mode`. Funguje? Pak je problém ve vlastních úpravách; klíčů se není třeba dotýkat.

### Neprovádějte úplné obnovení před safe mode

Safe mode poskytne izolované prostředí za 1 sekundu. Smazání `.claude` může zničit relace, konfiguraci MCP a další nesledovaný stav. Nejprve diagnostikujte, ověřte soukromou zálohu a vratný přesun používejte jen u skutečně podezřelé instalační či konfigurační vrstvy.

### Nepanikařte kvůli chybě UI u hooku

Než cokoli opravíte, zkontrolujte, zda se hook skutečně spustil (pomocí záznamu do `stderr` nebo explicitního výpisu), místo abyste se spoléhali na vizuální indikátor.

### Nezvyšujte návratový kód hooku, dokud neopravíte logiku

Když váš blokující hook neblokuje, je lákavé nastavit `exit 2` a považovat věc za vyřešenou. Je to funkční záplata, ale zakryje další problém: pokud blok po měsíc nefungoval, prošlo všechno, čemu měl hook zabránit. Nejdřív projděte historii git a zjistěte, co přesně uniklo. Pak blok přidejte. Uzavřený blok zpětně nevrátí, co se stalo předtím.

### Neupravujte produkční `CLAUDE.md` bez pojistky safe mode

V popsaném případě upravíte `CLAUDE.md`, Claude se začne chovat podivně, spustíte `git diff` a zjistíte, že někdo ten večer přidal do repozitáře také MCP server a hook. Obviníte svou úpravu, vrátíte ji a Claude se stále chová podivně. Pravidlo: před `git revert` spusťte `claude --safe-mode`. Pokud problém přetrvává i v safe mode, vaše úprava s ním nesouvisela; není třeba ji vracet.

### Nevěřte, že „Claude opraví vlastní MCP“

Typický scénář: požádáte Claude, aby „přidal určitý nástroj na MCP server“, Claude přepíše funkční konfiguraci, všechno se rozbije a pak Claude stráví několik tahů laděním škody, kterou způsobil — a přitom vyčerpá kvótu relace. Když je MCP rozbité, **získejte konfiguraci ručně**; nenechávejte to na agentovi. Část jeho sady nástrojů také funguje přes MCP a rozbité MCP znamená rozbitého diagnostika.

## Kam pokračovat po opravě?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaways">

Hlavní poznatek

Jakmile obnovíte Claude Code, přidejte prevenci, aby se znovu nerozbil. Minimálně: `disableBypassPermissionsMode: "disable"` v uživatelském nastavení, hooky blokující `.env` a `git push --force` a sandbox pro dlouhé autonomní běhy. Protějškem tohoto průvodce je průvodce prevencí.

</div>

Po analýze incidentu se hned nevracejte k práci. Nejprve přidejte prevenci, aby se incident neopakoval. Nad druhým mozkem (složkou `business/` se strukturou projektu) a `CLAUDE.md` můžete strávit hodiny a ruční obnovení je obtížné — to je silný důvod. Minimální sada:

1.  **`~/.claude/settings.json`** s `permissions.disableBypassPermissionsMode: "disable"` — architektonický zákaz režimu obejití, takže omylem spuštěné `--dangerously-skip-permissions` jednoduše nebude fungovat.
2.  **Hooky pro `Read(./env*)`, `Bash(git push --force)`, `Write(./node_modules/**)`** — věci, které je třeba zachytit na úrovni zákona, nikoli přání.
3.  **Konfigurace sandboxu pro dlouhé autonomní běhy** (`/loop`, `/schedule`).
4.  **`/compact` s vlastními pravidly** pro to, co zahodit z kontextu, aby se Claude sám nevyčerpal.

Úplné schéma ochrany ve čtyřech vrstvách najdete v [průvodci „Jak nakonfigurovat Claude Code, aby vám přes noc nerozbil projekt“](https://ailoot.ai/blog/cs/claude-code-safe-overnight-setup/). Jeden průvodce pokrývá prevenci před spuštěním `/loop`; druhý řešení následků poté, co už `/loop` něco rozbil. Logicky k sobě patří.

<div class="section" role="doc-bibliography" aria-label="Sources">

### Zdroje

- [Anthropic Claude Code Changelog](https://code.claude.com/docs/en/changelog) - oficiální changelog popisující v2.1.166 (`fallbackModel`), v2.1.169 (safe mode, /cd), v2.1.174 (oprava kompakce), v2.1.176 (oprava větve git při /cd).
- [Anthropic Docs - Model configuration](https://code.claude.com/docs/en/model-config) - části „Fallback model chains“, „Check what triggered fallback“, „Setting your model“.
- [Anthropic Docs - Troubleshoot installation and login](https://code.claude.com/docs/en/troubleshoot-install) - konfliktní instalace, `claude doctor`, přebírání `ANTHROPIC_API_KEY`.

</div>

Praktické materiály: [dokumentace Ailoot](https://ailoot.ai/docs/).





Další materiály a nástroje: [Ailoot](https://ailoot.ai/).

## Časté otázky

### Znamená selhání safe mode, že mám smazat ~/.claude?

Ne. Stále je třeba zkoumat instalaci, přihlášení, síť i infrastrukturu. Neprůkazný doctor nedokazuje nutnost odstranit nastavení či relace; opravujte jen diagnostikovanou vrstvu.

### Co zachovat před opravou instalace?

Zastavte zapisovatele a zálohujte celý stav Claude včetně relací, pluginů, MCP, ignorovaných souborů a metadat. Před pokračováním ověřte součet a rozbalení, zachovejte účet i úložiště přihlášení a obnovujte jen diagnostikovanou vrstvu bez slepého přepsání současného stavu.


## Ailoot · Společnost a její portfolio projektů

Ailoot staví na dlouhodobých provozních zkušenostech, široké klientské základně, stabilních službách a průběžném sledování KPI.

Společnost a její portfolio projektů: miliony zákazníků; měsíční tržby v miliardách.

Ailoot využívá tyto provozní zkušenosti k poskytování přístupu přes API k funkcím AI v produktech zákazníků, agentech, aplikacích a automatizacích.
