Pemulihan Claude Code: Safe Mode, /cd, dan Fallback
MarkdownMendiagnosis Claude Code dengan safe mode, perintah /cd, model fallback, dan pemulihan pengaturan. Urutan pemeriksaan dan batasan aslinya.
Baca artikel lengkap
Materi praktis tentang bekerja dengan agen: dokumentasi Ailoot.
Apa yang Berubah di Claude Code pada Juni 2026?
Poin utama
Pada 8 Juni 2026, di Claude Code v2.1.169, Anthropic menambahkan flag --safe-mode dan perintah /cd. Dua hari sebelumnya, v2.1.166 memperkenalkan model fallback, hingga 3 dalam satu rantai. Ketiga fitur ini mengatasi masalah yang paling umum bagi vibe coder: “semuanya rusak, saya tidak tahu siapa yang harus disalahkan, dan saya tidak mau kehilangan satu jam untuk menginstal ulang.”
Sebelumnya, ketika Claude Code mulai berperilaku aneh—indikator pemuatan yang tak kunjung berhenti, crash saat startup, agen mengabaikan aturan di CLAUDE.md, hook diam-diam tidak berjalan—hanya ada satu jalan keluar: mengomentari bagian .claude/settings.json secara manual, menonaktifkan server MCP satu per satu, atau, dalam kasus terburuk, menghapus ~/.claude dan menginstal ulang. Dalam salah satu kasus yang diceritakan, ~/.claude dihapus dan konfigurasi server MCP yang membutuhkan waktu satu setengah jam untuk disusun pun hilang. Belakangan diketahui bahwa penyebabnya adalah satu baris di CLAUDE.md, yang sebenarnya bisa ditemukan dalam 10 detik—tetapi hal itu baru jelas setelah pemulihan penuh.
Pada Juni 2026, Anthropic meluncurkan tiga mekanisme yang mengubah skenario ini. Berikut ringkasannya, termasuk kapan fitur tersebut hadir:
| Versi | Tanggal | Fitur yang hadir |
|---|---|---|
| 2.1.166 | 6 Juni 2026 | Pengaturan fallbackModel + flag --fallback-model untuk sesi interaktif |
| 2.1.169 | 8 Juni 2026 | Flag --safe-mode dan variabel lingkungan CLAUDE_CODE_SAFE_MODE, perintah /cd |
| 2.1.176 | 12 Juni 2026 | Perbaikan: /cd dan perpindahan worktree tidak lagi menampilkan cabang git lama |
Di bawah ini, tiap mekanisme dijelaskan langkah demi langkah, beserta urutan penerapannya saat sesi Claude Code mulai bermasalah.
Apa yang Paling Sering Merusak Claude Code?
Poin utama
Berdasarkan pengalaman yang diceritakan, Claude Code biasanya bermasalah bagi vibe coder karena empat hal: CLAUDE.md yang terlalu panjang dan berisi aturan saling bertentangan, hook dengan kode keluar yang salah, server MCP yang gagal tanpa memberi tanda, dan pengaturan yang tumpang tindih di tiga tingkat settings.json. Biasanya ada satu penyebab, diagnosis memakan waktu beberapa menit, dan kepanikan membuat orang langsung ingin menjalankan rm -rf.
Dalam contoh yang diceritakan, CLAUDE.md awalnya disusun dalam 80 baris—dan berfungsi selama sebulan. Pada bulan kedua, mulai terlihat bahwa seminggu sekali Claude melanggar semua aturan yang telah ditetapkan: menyentuh .env, menjalankan git push --force, mengutak-atik node_modules. Bukan dengan sengaja—Claude hanya lupa. Pernah, .gitignore dihapus dan alasannya tidak langsung jelas. Skenario ini dibahas lebih lanjut dalam panduan CLAUDE.md.
Ketika CLAUDE.md membengkak hingga lebih dari 400 baris, masalah mulai muncul tanpa disadari: file itu menghabiskan bagian yang cukup besar dari jendela konteks saat sesi dimulai dan membuat instruksi penting tenggelam di antara instruksi sekunder. Claude tetap membaca file tersebut secara formal, sehingga dari luar tampaknya “aturannya ada, tetapi tidak berfungsi”—tanda umum kontrak yang terlalu panjang.
Hook adalah sumber masalah umum kedua. Claude Code hooks memiliki kekhasan yang tidak ditekankan Anthropic.
Artinya, sys.exit(1) dalam hook Python (atau nilai konvensional Unix apa pun yang berarti “gagal karena kesalahan”) tidak akan menghentikan Claude. Hanya kode 2 yang memblokir. Dalam kasus yang diceritakan, hook dianggap sebagai “larangan keras”, tetapi kenyataannya hanya mencatat keluhan dan membiarkan tindakan berlanjut.
Server MCP adalah lapisan ketiga, dan juga bisa bermasalah dengan caranya sendiri.
Gejalanya sering kali sama: perintah MCP tersedia, tetapi mengembalikan failed tanpa traceback. Untuk informasi lebih lanjut tentang konfigurasi MCP dan menambahkan server dengan claude mcp add, lihat panduan terpisah.
Sumber keempat adalah hierarki settings.json tiga tingkat. Ada ~/.claude/settings.json (tingkat pengguna), .claude/settings.json di root proyek (proyek), .claude/settings.local.json (lokal), dan opsional pengaturan terkelola dari administrator perusahaan. Semuanya digabungkan berdasarkan aturan prioritas. Ketika seseorang menambahkan server MCP di tingkat proyek, sementara Anda memiliki entri serupa dengan konfigurasi peluncuran berbeda di tingkat pengguna, terjadi konflik tanpa tanda yang terlihat dan kesannya menjadi “Claude Code rusak.”
Bagaimana Cara Kerja --safe-mode, dan Apa yang Dinonaktifkannya?
Poin utama
claude --safe-mode meluncurkan Claude Code dengan penyesuaian yang sepenuhnya dinonaktifkan: CLAUDE.md, plugin, skill, hook, server MCP, perintah pengguna, agen, gaya keluaran, alur kerja, dan keybinding. Otorisasi, pemilihan model, alat bawaan, dan izin tetap tersedia. Ini adalah alat diagnostik: jika masalah hilang dalam safe mode, penyebabnya adalah salah satu lapisan yang Anda tambahkan.
Redaksi asli Anthropic dalam changelog v2.1.169 berbunyi:
Menambahkan flag
--safe-mode(danCLAUDE_CODE_SAFE_MODE) untuk meluncurkan Claude Code dengan penyesuaian yang dinonaktifkan (CLAUDE.md, plugin, skill, hook, server MCP) untuk keperluan diagnostik.
Anthropic menjelaskan dalam dokumentasi konfigurasi model:
Untuk memeriksa apakah penyesuaian menjadi penyebabnya, mulai sesi dengan
claude --safe-mode, yang menonaktifkanCLAUDE.md, skill, server MCP, dan hook. Status git dan nama direktori tidak dianggap sebagai penyesuaian dan tetap tersedia.
Ini adalah alat diagnostik, bukan “lingkungan bersih.” Safe mode membantu menjawab satu pertanyaan: apakah masalahnya ada pada perilaku bawaan Claude Code, atau pada penyesuaian tambahan? Ini bagian dari rekayasa konteks—mengelola apa yang Claude lihat dan tidak lihat pada waktu tertentu. Jika semuanya berfungsi dalam safe mode, jelas bahwa lapisan-lapisan itu perlu diperiksa dengan pencarian biner. Jika tetap tidak berfungsi, masalahnya ada pada instalasi, otorisasi, jaringan, atau infrastruktur, sehingga masuk akal untuk memeriksa claude doctor dan log.
Hal yang dinonaktifkan safe mode (daftar resmi Anthropic—5 lapisan utama):
CLAUDE.mddi semua tingkat (pengguna / proyek)- Plugin
- Skill
- Hook
- Server MCP
Hal yang tetap berfungsi:
- Otorisasi (sesi OAuth atau kunci API Anda)
- Pemilihan model (
--model sonnet,--model opus) - Alat bawaan (Read, Write, Bash, Grep, dan sebagainya)
- Izin
- Status git
- Nama direktori
Detail penting: safe mode tidak menonaktifkan pengaturan terkelola/kebijakan dari administrator perusahaan. Jika Anda bekerja dalam tim yang mengatur availableModels melalui Bedrock GovCloud atau konfigurasi MDM, batasan tersebut tetap berlaku—safe mode hanya menonaktifkan penyesuaian Anda, bukan kebijakan perusahaan.
Bagaimana Cara Mengisolasi Lapisan dan Menemukan Penyebabnya dalam 60 Detik?
Poin utama
Langkah 1: jalankan claude --safe-mode di folder yang sama dengan tempat masalah terjadi. Jika berhasil, masalahnya ada pada penyesuaian Anda; aktifkan satu per satu: CLAUDE.md -> hook -> MCP -> skill. Jika safe mode pun tidak berhasil, masalahnya ada pada autentikasi, versi, jaringan, atau OS. Dalam kasus itu, jalankan claude doctor untuk diagnostik otomatis, tanpa menyentuh rm -rf.
Skenario diagnosis saat Claude Code “berhenti mendengarkan.” Versi minimum untuk semua perintah di bawah adalah Claude Code v2.1.169. Jika versi Anda lebih lama, perbarui terlebih dahulu (npm update -g @anthropic-ai/claude-code atau gunakan penginstal native Anthropic).
- Buka folder yang sama dengan tempat masalah terjadi.
- Jalankan
claude --safe-mode. - Jika aplikasi berjalan dengan baik, periksa permintaan awal Anda. Apakah berhasil? Jika ya, berarti salah satu lapisan menjadi penyebabnya. Lanjut ke langkah 4.
- Jika safe mode tetap bermasalah, jangan sentuh konfigurasinya. Jalankan
claude doctorterlebih dahulu; periksa autentikasi, versi, dan instalasi yang bertentangan.
Setelah safe mode berjalan dengan baik, aktifkan lapisan satu per satu, dimulai dari yang paling mungkin menjadi penyebab. Urutan berdasarkan pengalaman yang diceritakan:
CLAUDE.md. Jalankanclaudetanpa safe mode, tetapi ubah nama file itu sementara:mv CLAUDE.md CLAUDE.md.bak. Jika berhasil, penyebabnya adalah file tersebut. Setelah itu Anda dapat melakukan pencarian biner: pertahankan separuh barisnya dan periksa.- Hook. Buka
.claude/settings.jsondan sementara isi bagianhooksdengan[]. Mulai ulangclaude. Apakah berhasil? Jika ya, penyebabnya adalah salah satu hook. Aktifkan satu per satu. - Server MCP. Demikian pula, di
~/.claude.jsonatau.claude/settings.json, sementara ubah bagianmcpServersmenjadi objek kosong, mulai ulang, lalu periksa. - Skill. Pindahkan
.claude/skills/ke folder sementara. Luncurkan dan periksa.
Arti “mengubah nama sementara”: file tidak dihapus selama diagnosis. mv atau git stash memungkinkan Anda memulihkan semuanya dengan satu perintah jika lapisan tersebut ternyata bukan penyebabnya.
Bagaimana Cara Berpindah Folder Kerja dengan /cd Tanpa Kehilangan Konteks?
Poin utama
Perintah /cd <path> di Claude Code 2.1.169+ mengganti folder kerja dalam sesi aktif tanpa kehilangan cache prompt. Ini berguna ketika konfigurasi proyek saat ini bermasalah: Anda dapat beralih ke folder bersih, memeriksa apakah Claude berfungsi, lalu kembali. Sebelumnya, Anda harus menutup sesi dan memulainya lagi.
Dari changelog v2.1.169 pada 8 Juni:
Menambahkan perintah
/cduntuk mengalihkan sesi ke folder kerja baru tanpa mengatur ulang cache prompt di tengah sesi.
Mengapa ini berguna saat memperbaiki masalah. Misalkan Anda berada di folder proyek ~/work/myapp, dan Claude Code berperilaku aneh. Sebelumnya, satu-satunya cara untuk memeriksa “apakah ini berfungsi sama sekali?” adalah menutup sesi, beralih ke folder lain, lalu memulai lagi. Anda kehilangan konteks, riwayat, dan cache prompt yang telah dipanaskan. Sekarang:
# In the same session:
/cd ~/sandbox/test
Claude berpindah ke folder baru dan membaca CLAUDE.md di sana (jika ada) sebagai pesan, bukan sebagai pengganti prompt sistem—artinya cache tetap terjaga. Jika semuanya berfungsi di ~/sandbox/test, jelas bahwa masalahnya ada pada konfigurasi ~/work/myapp.
Pada 12 Juni, v2.1.176 memperbaiki satu regresi yang merepotkan—/cd menampilkan cabang git lama sampai aplikasi dimulai ulang sepenuhnya. Jika versi Anda lebih lama, perbarui atau abaikan saja git status untuk beberapa pesan pertama setelah berpindah—informasinya akan diperbarui.
Bagaimana Cara Mengonfigurasi Model Fallback untuk 529?
Poin utama
Di v2.1.166, Anthropic menambahkan fallbackModel—rantai hingga 3 model yang dicoba secara berurutan ketika model utama kelebihan beban atau tidak tersedia. Rantai ini hanya dipicu oleh kesalahan server karena kelebihan beban dan tidak dapat dicoba ulang. Kesalahan otorisasi, penagihan, batas laju, dan transportasi tidak memicu rantai fallback—kesalahan tersebut mengikuti logika percobaan ulang biasa.
Dalam skenario yang diceritakan, sebuah tugas panjang berjalan dengan Opus di suatu proyek seminggu sekali; setelah 10 menit, API mengembalikan 529 Overloaded dan sesi pun gagal. Sebelumnya, Anda harus menunggu atau beralih secara manual ke Sonnet dengan --model sonnet dan kehilangan semua konteks yang telah dipanaskan. Dalam business/ yang besar dengan pengaturan second brain, ini membutuhkan sekitar dua puluh menit kerja. Sekarang ada mekanisme yang tepat.
Kutipan persis dari dokumentasi resmi:
Ketika model utama kelebihan beban, tidak tersedia, atau mengembalikan kesalahan server lain yang tidak dapat dicoba ulang, Claude Code dapat beralih ke model fallback alih-alih menggagalkan permintaan. Kesalahan otorisasi, penagihan, batas laju, ukuran permintaan, dan transportasi tidak pernah memicu peralihan—kesalahan tersebut mengikuti jalur percobaan ulang dan penanganan kesalahan biasa.
Dan secara terpisah, cara kerja rantainya:
Konfigurasikan satu atau beberapa model fallback, dan Claude Code akan mencobanya sesuai urutan, menampilkan notifikasi saat beralih. Peralihan hanya berlaku untuk giliran saat ini—pesan berikutnya akan mencoba model utama lagi. Rantai dibatasi hingga tiga model setelah duplikat dihapus; entri tambahan diabaikan.
Ada dua cara untuk mengonfigurasinya. Melalui CLI:
claude --fallback-model sonnet,haiku
Melalui ~/.claude/settings.json:
{
"fallbackModel": ["claude-sonnet-4-6", "claude-haiku-4-5"]
}
Ada kekhususan tersendiri soal batas laju. Anthropic sengaja tidak meneruskan kesalahan 429 ke rantai, sehingga batas permintaan tidak dapat diakali dengan beralih ke model berikutnya. Fallback hanya berfungsi ketika model utama kelebihan beban, tidak tersedia, atau mengembalikan kesalahan server yang tidak dapat dicoba ulang (misalnya, 529 Overloaded). Batas laju menggunakan logika percobaan ulang dan jeda bertahap biasa.
Satu kekhususan lagi—pada 12 Juni, v2.1.174 memperbaiki regresi: pemadatan konteks tidak mematuhi --fallback-model. Jika Anda memiliki sesi panjang dan konteks dipadatkan saat terjadi kelebihan beban, sebelum perbaikan ini model fallback tidak akan dipanggil. Jika Anda bekerja dengan sesi panjang (/compact, /loop semalaman), perbarui setidaknya ke v2.1.174.
Apa yang Harus Diperbaiki Jika Penyebabnya CLAUDE.md, Hook, MCP, atau Skill?
Poin utama
Jika safe mode mengidentifikasi lapisan yang menjadi penyebab, perbaikannya bergantung pada lapisan tersebut. Untuk CLAUDE.md, gunakan pencarian biner atau kembali ke templat siap pakai dengan kurang dari 200 baris. Untuk hook, periksa kode keluar (2 memblokir, 1 tidak) dan logikanya. Untuk MCP, hapus satu server lalu periksa. Untuk skill, periksa SKILL.md apakah ada aturan yang bertentangan dengan CLAUDE.md.
Strategi khusus untuk setiap lapisan.
Jika Penyebabnya CLAUDE.md
Buka file dan periksa ukurannya. Berdasarkan pengalaman yang diceritakan, pertahankan CLAUDE.md aktif tidak lebih dari 200 baris; pindahkan sisanya ke router dan dokumen pendukung di samping proyek (struktur second brain lengkap ada di panduan second brain). Jika ada lebih dari 400 baris, kemungkinan besar itulah penyebabnya. Langkah-langkah:
- Buat cadangan:
cp CLAUDE.md CLAUDE.md.full. - Kembali ke templat kerja yang singkat. Templat siap pakai tersedia di panduan “Cara Mengonfigurasi CLAUDE.md”.
- Mulai ulang Claude Code. Periksa.
- Jika berhasil, pulihkan aturan dalam blok kecil berisi 10–20 baris, lalu periksa setelah tiap blok.
- Temukan blok yang merusak perilaku. Tulis ulang sebagai hook dengan kode keluar yang benar (kode keluar untuk hook dibahas di subbagian berikutnya dari H2 ini).
Jika Penyebabnya Hook
Pertanyaan utamanya adalah apakah kode keluarnya benar. Hook Claude Code menggunakan:
- Exit 0 — semuanya baik; tindakan dilanjutkan.
- Exit 1 — kesalahan, tetapi tidak memblokir. Claude melanjutkan seolah tidak terjadi apa-apa.
- Exit 2 — kesalahan yang memblokir. Hanya kode ini yang benar-benar menghentikan tindakan.
Jika Anda menulis sys.exit(1) atau exit 1 di hook shell karena mengira itu akan memblokir, di Claude Code kode tersebut berfungsi sebagai log peringatan tanpa menghentikan tindakan. Ubah menjadi 2. Untuk detail tentang hook dan cara mengonfigurasikannya tanpa jebakan ini, lihat panduan terpisah.
Kasus umum kedua adalah hook mengembalikan JSON tidak valid di stdout. Claude Code mengurai respons hook sebagai JSON; jika ada teks tambahan (log, penanda progres, emoji), hook dianggap gagal dan tindakan dilanjutkan. Aturannya: stdout hanya berisi JSON; hal lain masuk ke stderr.
Kasus ketiga adalah hook membaca sesuatu dari ~/.claude/ yang disembunyikan safe mode. Ini skenario normal; perbaiki bukan dengan mengubah hook, melainkan dengan memeriksa os.environ.get('CLAUDE_CODE_SAFE_MODE') di awal lalu keluar dengan kode 0.
Jika Penyebabnya Server MCP
Gejala: perintah MCP tersedia, tetapi mengembalikan failed tanpa traceback yang jelas. Langkah-langkah:
- Jalankan
claude mcp list—server mana yang terdaftar? - Nonaktifkan server satu per satu di
~/.claude.json: ubah nama kunciclaude-server-Amenjadi_claude-server-A(ini menonaktifkannya tanpa menghapusnya). - Mulai ulang
claude. Periksa panggilan mana yang berfungsi. - Setelah menemukan server penyebabnya, periksa lognya:
claude mcp logs <name>. - Jika server tersebut berasal dari pihak ketiga (
@modelcontextprotocol/server-postgresdan sejenisnya), periksa apakah ada rilis baru. Ekosistem MCP masih bergejolak; server sering rusak setelah pembaruan Claude Code.
Jika Anda mengalami “crash saat startup, dan hanya ketika ada dua MCP,” bandingkan perilakunya dalam safe mode tanpa MCP.
Jika Penyebabnya Skill
Skill terdiri atas SKILL.md dan kode di .claude/skills/<name>/. Gejalanya: Claude mengabaikan skill, menerapkannya pada waktu yang salah, atau menerapkannya tetapi menghasilkan keluaran yang tidak berguna. Langkah-langkah:
- Buka
SKILL.md. Periksa deskripsinya—seharusnya terdiri atas 1–2 kalimat dan secara spesifik menjelaskan kapan skill digunakan. Jika tertulis “pembantu universal untuk segalanya,” Claude tidak memahami kapan harus menggunakannya. - Periksa apakah ada aturan yang bertentangan dengan
CLAUDE.md. JikaCLAUDE.mdmengatakan “selalu tulis tes,” tetapi deskripsi skill mengatakan “gunakan untuk prototipe cepat tanpa tes,” berarti ada konflik. - Jika skill menggunakan perintah eksternal (npm, python, git), periksa apakah perintah tersebut tersedia dalam PATH seluruh sistem. Skill memiliki lingkungan minimalnya sendiri.
Jika Safe Mode Tidak Membantu: Diagnosis dan Simpan Keadaan Sebelum Memperbaiki
Poin utama
Jika safe mode juga gagal, kemungkinan tersisa meliputi instalasi, otorisasi, jaringan, atau infrastruktur. Jalankan claude doctor dan periksa buktinya. Laporan yang belum meyakinkan tidak membenarkan penghapusan pengaturan atau sesi: simpan dan verifikasi seluruh keadaan terlebih dahulu, lalu perbaiki hanya instalasi yang terdiagnosis.
Penghapusan keadaan pengguna bukan jalan pintas diagnosis. Gunakan pemeriksaan di bawah untuk mengidentifikasi kesalahan; jika belum meyakinkan, simpan bukti dan selidiki lebih lanjut. Perbaikan instalasi dimulai dengan cadangan terverifikasi serta mempertahankan akun dan identitas penyimpanan kredensial yang ada. Urutannya:
claude doctor— diagnostik otomatis. Anthropic menulis dalam dokumentasinya:
Jika
claude --versionberfungsi, tetapi ada hal lain yang bermasalah, jalankanclaude doctoruntuk membuat laporan diagnostik otomatis.
- Periksa apakah ada instalasi yang bertentangan. Banyak orang menginstal versi global npm dan penginstal native secara bersamaan:
Beberapa instalasi Claude Code dapat menyebabkan perbedaan versi atau perilaku yang tidak terduga.
- Periksa apakah
ANTHROPIC_API_KEYmencegat sesi OAuth Anda. Ini penyebab umum dari “tidak ada yang berfungsi, kuncinya kedaluwarsa”:
Saat `ANTHROPIC_API_KEY` ditetapkan dan Anda telah mengonfirmasinya, Claude Code menggunakan kunci tersebut sebagai pengganti kredensial OAuth langganan Anda.
Solusi: jalankan unset ANTHROPIC_API_KEY di sesi shell saat ini atau hapus variabel itu dari ~/.zshrc / ~/.bashrc.
- Perbaiki hanya instalasi yang diidentifikasi diagnostik; simpan seluruh keadaan pengguna terlebih dahulu. Kegagalan safe mode atau laporan doctor yang belum meyakinkan tidak membuktikan data pengguna harus dihapus. Hentikan semua sesi Claude dan penulis data lain sebelum membuat cadangan yang konsisten. Pertahankan akun Unix, HOME, penyimpanan kredensial sistem operasi, dan akun Anthropic yang sama; jangan merotasi kunci atau membuat identitas pengganti.
Contoh cadangan berikut untuk Linux dengan GNU tar. Pada macOS atau Windows gunakan alat pencadangan yang mempertahankan ACL, atribut tambahan, tautan, serta metadata platform itu, dan verifikasi pemulihan sebelum melanjutkan; jangan menganggap flag khusus GNU berfungsi di sana. Arsip memuat kredensial dan transkrip sesi: simpan privat dan di luar repositori.
# 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"
Semua perintah harus berhasil. Arsip mencakup seluruh pohon .claude yang ada, termasuk sesi serta keadaan plugin yang diabaikan/tidak terlacak, dan .claude.json, bukan hanya pengaturan terlacak Git. Jika salah satu jalur berupa symlink atau data berada di lokasi konfigurasi terpisah, berhenti dan sertakan target hasil resolusi dalam cadangan terverifikasi yang sama; mengarsipkan tautan saja tidak mencadangkan targetnya. Arsip tidak memuat macOS Keychain atau penyimpanan kredensial eksternal lain, jadi pertahankan identitas tersebut.
Jika diagnostik secara spesifik mengidentifikasi instalasi lokal lama sebagai salinan yang bertentangan, pindahkan hanya instalasi itu ke direktori pemulihan privat, alih-alih menghapus konfigurasi serta sesi:
# Use the verified backup_dir from the previous block.
if [ -d "$HOME/.claude/local" ]; then
mv "$HOME/.claude/local" "$backup_dir/legacy-local"
fi
Hapus instalasi npm hanya jika diagnostik mengidentifikasinya sebagai instalasi yang bertentangan dan Anda bermaksud mempertahankan versi native. Lalu gunakan installer native terdokumentasi, tanpa menghapus .claude atau .claude.json:
curl -fsSL https://claude.ai/install.sh | bash
claude --version
claude doctor
Pada Windows, perintah instalasi native tetap:
irm https://claude.ai/install.ps1 | iex
Pulihkan secara terpisah. Hentikan penulis data lagi. Periksa checksum arsip dan ekstrak ke direktori pemulihan kosong seperti di atas; pastikan perbandingan berhasil sebelum memakai file. Jika instalasi lama yang dipindahkan harus dipulihkan, pastikan dahulu $HOME/.claude/local tidak ada, lalu pindahkan $backup_dir/legacy-local kembali ke jalur tepat itu. Pulihkan file pengaturan yang terdiagnosis dari ekstraksi terverifikasi hanya setelah menyimpan pengganti saat ini; jangan menimpa seluruh pohon secara membabi buta. Sesi, pengaturan MCP, dan identitas asli tetap dipertahankan. Snapshot Git saja tidak mencakup transkrip diabaikan/tidak terlacak, kredensial, atau metadata sistem berkas.
Apa yang Sebaiknya JANGAN Dilakukan Saat Claude Code Bermasalah?
Poin utama
Enam pola anti yang ditemukan dalam kasus dukungan yang diceritakan: mengganti kunci sebelum diagnosis, melakukan reset penuh sebagai langkah pertama, panik karena kesalahan UI pada hook, menaikkan kode keluar hook sebelum memperbaiki logikanya, mengedit CLAUDE.md tanpa perlindungan safe mode, dan percaya bahwa “Claude memperbaiki MCP-nya sendiri.” Masing-masing menghabiskan waktu berjam-jam, dan semuanya tidak perlu dilakukan.
Jangan Ganti Kunci Sebelum Diagnosis
“Autorisasi tidak berfungsi” dalam 90% kasus disebabkan oleh ANTHROPIC_API_KEY yang mencegat langganan, bug UI hook, atau MCP yang gagal. Mengganti kunci tidak akan memperbaiki satu pun dari masalah ini, tetapi akan menambah satu jam waktu henti: Anda harus mencabut kunci lama, menerbitkan yang baru, menandatangani ulang CI dengannya, dan memperbarui variabel di produksi. Jalankan claude --safe-mode terlebih dahulu. Apakah berhasil? Jika ya, masalahnya ada pada penyesuaian; kunci tidak perlu disentuh.
Jangan Lakukan Reset Penuh Sebelum Safe Mode
Safe mode menyediakan lingkungan terisolasi dalam 1 detik. Menghapus .claude dapat menghancurkan sesi, konfigurasi MCP, dan keadaan tidak terlacak lainnya. Diagnosis terlebih dahulu, verifikasi cadangan privat, dan gunakan pemindahan yang dapat dibalik hanya untuk lapisan instalasi atau konfigurasi yang benar-benar terkait.
Jangan Panik karena Kesalahan UI pada Hook
Sebelum memperbaiki apa pun, periksa apakah hook benar-benar berjalan (melalui log ke stderr atau cetakan eksplisit), alih-alih mengandalkan indikator visual.
Jangan Naikkan Kode Keluar Hook Sebelum Memperbaiki Logikanya
Saat hook pemblokir Anda tidak memblokir, Anda mungkin tergoda untuk mengatur exit 2 lalu menganggapnya selesai. Ini memang tambalan yang berfungsi, tetapi menyembunyikan masalah lain: jika pemblokiran tidak berfungsi selama sebulan, semua hal yang seharusnya dilarang oleh hook telah lolos. Periksa log git terlebih dahulu dan cari tahu dengan tepat apa yang lolos. Setelah itu, tambahkan pemblokiran. Jika tidak, pemblokiran yang kini berfungsi tidak membatalkan apa yang terjadi sebelumnya.
Jangan Edit CLAUDE.md Produksi Tanpa Perlindungan Safe Mode
Dalam kasus yang diceritakan: Anda mengedit CLAUDE.md, Claude mulai berperilaku aneh, lalu Anda menjalankan git diff dan melihat seseorang juga menambahkan server MCP serta hook ke repo pada malam itu. Anda menyalahkan perubahan Anda, membatalkannya, tetapi Claude masih bermasalah. Aturannya: sebelum menjalankan git revert, jalankan claude --safe-mode. Jika masalah tetap ada dalam safe mode, perubahan Anda tidak ada kaitannya; tidak perlu membatalkannya.
Jangan Percaya “Claude Memperbaiki MCP-nya Sendiri”
Skenario yang umum: Anda meminta Claude untuk “menambahkan alat tertentu ke server MCP,” Claude menulis ulang konfigurasi yang berfungsi, semuanya rusak, lalu Claude menghabiskan beberapa giliran untuk men-debug kerusakan yang dibuatnya—dan dalam prosesnya menghabiskan kuota sesi. Ketika MCP bermasalah, ambil konfigurasi secara manual; jangan serahkan kepada agen. Sebagian persenjataan alatnya juga berjalan melalui MCP, dan MCP yang rusak berarti alat diagnostik yang rusak.
Apa yang Harus Dilakukan Setelah Memperbaikinya?
Poin utama
Setelah memulihkan Claude Code, tambahkan pencegahan agar masalah tidak berulang. Minimal: disableBypassPermissionsMode: "disable" di pengaturan pengguna, hook yang memblokir .env dan git push --force, serta sandbox untuk proses otonom yang panjang. Panduan pencegahan adalah pendampingnya.
Setelah menganalisis insiden, jangan langsung kembali bekerja. Tambahkan pencegahan terlebih dahulu agar insiden tidak terulang. Anda bisa kehilangan waktu berjam-jam untuk second brain (folder business/ dengan struktur proyek) dan CLAUDE.md, dan memulihkannya secara manual sulit—itu alasan yang kuat. Set minimum:
~/.claude/settings.jsondenganpermissions.disableBypassPermissionsMode: "disable"—larangan arsitektural terhadap mode bypass, sehingga--dangerously-skip-permissionsyang tidak sengaja dijalankan tidak akan berfungsi.- Hook untuk
Read(./env*),Bash(git push --force),Write(./node_modules/**)—hal-hal yang harus ditegakkan sebagai aturan, bukan sekadar harapan. - Konfigurasi sandbox untuk proses otonom yang panjang (
/loop,/schedule). /compactdengan aturan Anda sendiri tentang apa yang harus dibuang dari konteks, agar Claude tidak menghabiskan dirinya sendiri.
Skema perlindungan empat lapis lengkap ada di panduan “Cara Mengonfigurasi Claude Code agar Tidak Merusak Proyek Anda Semalaman”. Satu panduan membahas pencegahan sebelum menjalankan /loop; panduan lainnya membahas pemulihan setelah /loop terlanjur merusak sesuatu. Pasangan yang masuk akal.
Sumber
- Anthropic Claude Code Changelog - changelog resmi yang menjelaskan v2.1.166 (
fallbackModel), v2.1.169 (safe mode, /cd), v2.1.174 (perbaikan pemadatan konteks), v2.1.176 (perbaikan cabang git /cd). - Anthropic Docs - Model configuration - bagian “Fallback model chains,” “Check what triggered fallback,” “Setting your model.”
- Anthropic Docs - Troubleshoot installation and login - instalasi yang bertentangan,
claude doctor, pencegatanANTHROPIC_API_KEY.
Materi praktis: dokumentasi Ailoot.
Materi dan alat lainnya: Ailoot.
Rincian selengkapnya
Pertanyaan tentang Pemulihan Claude Code: Safe Mode, /cd, dan Fallback | Ailoot
Apakah kegagalan safe mode berarti saya harus menghapus ~/.claude?
Tidak. Masih ada penyebab instalasi, otorisasi, jaringan, dan infrastruktur yang perlu diselidiki. Laporan doctor yang tidak meyakinkan bukan bukti pengaturan atau sesi harus dihapus; perbaiki hanya lapisan yang terdiagnosis.
Apa yang harus dipertahankan sebelum perbaikan instalasi?
Hentikan penulis data dan cadangkan seluruh keadaan Claude, termasuk sesi, konfigurasi plugin/MCP, file diabaikan, serta metadata sistem berkas. Verifikasi checksum dan ekstraksi sebelum melanjutkan, pertahankan akun serta penyimpanan kredensial yang ada, dan pulihkan hanya lapisan terdiagnosis tanpa menimpa keadaan saat ini secara membabi buta.