Ιστολόγιο

Ανάκτηση Claude Code: ασφαλής λειτουργία, /cd και εφεδρεία

Markdown

Διάγνωση προβλημάτων του Claude Code με την ασφαλή λειτουργία, την εντολή /cd, εφεδρικά μοντέλα και ανάκτηση ρυθμίσεων. Η σειρά των ελέγχων και οι αρχικοί περιορισμοί.

Διαβάστε ολόκληρο το άρθρο

Πρακτικό υλικό για την εργασία με agents: Τεκμηρίωση του Ailoot.

Τι αλλάζει στο Claude Code τον Ιούνιο του 2026;

Κύρια συμπεράσματα

Στις 8 Ιουνίου 2026, στο Claude Code v2.1.169, η Anthropic πρόσθεσε τη σημαία --safe-mode και την εντολή /cd. Δύο ημέρες νωρίτερα, η v2.1.166 εισήγαγε εφεδρικά μοντέλα, έως και 3 σε μια αλυσίδα. Αυτές οι τρεις λειτουργίες αντιμετωπίζουν το συνηθέστερο πρόβλημα για τους vibe coders: «έχουν καταρρεύσει όλα, δεν ξέρω ποιος φταίει και δεν θέλω να χάσω μία ώρα κάνοντας επανεγκατάσταση».

Παλαιότερα, όταν το Claude Code άρχιζε να συμπεριφέρεται παράξενα—ατέρμονος δείκτης φόρτωσης, κατάρρευση κατά την εκκίνηση, ο agent αγνοούσε τους κανόνες στο CLAUDE.md, ένα hook δεν ενεργοποιούνταν χωρίς να εμφανίζει σφάλμα—υπήρχε μόνο μία διέξοδος: να σχολιάσετε χειροκίνητα ενότητες του .claude/settings.json, να απενεργοποιήσετε τους διακομιστές MCP έναν προς έναν ή, στη χειρότερη περίπτωση, να διαγράψετε το ~/.claude και να κάνετε επανεγκατάσταση. Σε μια περιγραφόμενη περίπτωση, διαγράφηκε το ~/.claude και χάθηκε η ρύθμιση των διακομιστών MCP, που είχε χρειαστεί μιάμιση ώρα για να στηθεί. Αργότερα έγινε σαφές ότι έφταιγε μία γραμμή στο CLAUDE.md και θα μπορούσε να είχε εντοπιστεί σε 10 δευτερόλεπτα—αλλά αυτό φάνηκε μόνο μετά από πλήρη ανάκτηση.

Τον Ιούνιο του 2026, η Anthropic εισήγαγε τρεις μηχανισμούς που αλλάζουν αυτό το σενάριο. Συνοπτικά, τι προστέθηκε και πότε:

ΈκδοσηΗμερομηνίαΤι προστέθηκε
2.1.1666 Ιουνίου 2026Ρύθμιση fallbackModel + σημαία --fallback-model για διαδραστικές συνεδρίες
2.1.1698 Ιουνίου 2026Σημαία --safe-mode και μεταβλητή περιβάλλοντος CLAUDE_CODE_SAFE_MODE, εντολή /cd
2.1.17612 Ιουνίου 2026Διόρθωση: το /cd και η εναλλαγή worktree έπαψαν να εμφανίζουν τον παλιό κλάδο git

Παρακάτω, κάθε μηχανισμός εξηγείται βήμα προς βήμα, μαζί με τη σειρά εφαρμογής τους όταν μια συνεδρία Claude Code βγαίνει εκτός πορείας.

Τι προκαλεί συχνότερα προβλήματα στο Claude Code;

Κύρια συμπεράσματα

Με βάση την περιγραφόμενη εμπειρία, το Claude Code παρουσιάζει συνήθως προβλήματα για τους vibe coders εξαιτίας τεσσάρων πραγμάτων: ενός υπερβολικά μεγάλου CLAUDE.md με αντιφατικούς κανόνες, ενός hook με λανθασμένο κωδικό εξόδου, ενός διακομιστή MCP που αποτυγχάνει σιωπηρά και επικαλυπτόμενων ρυθμίσεων σε τρία επίπεδα του settings.json. Υπάρχει ένας υπαίτιος, η διάγνωση διαρκεί λεπτά και ο πανικός ωθεί τους ανθρώπους να καταφεύγουν αμέσως στο rm -rf.

Στο περιγραφόμενο παράδειγμα, το CLAUDE.md είχε αρχικά συνταχθεί σε 80 γραμμές—και λειτουργούσε για έναν μήνα. Τον δεύτερο μήνα, έγινε αντιληπτό ότι μία φορά την εβδομάδα το Claude παραβίαζε κάθε κανόνα που είχε οριστεί: άγγιζε το .env, εκτελούσε git push --force, έψαχνε μέσα στο node_modules. Όχι κακόβουλα—απλώς ξεχνούσε. Μία φορά διαγράφηκε το .gitignore και η αιτία δεν έγινε αμέσως σαφής. Το σενάριο αυτό καλύπτεται λεπτομερέστερα στον οδηγό για το CLAUDE.md.

Όταν το CLAUDE.md ξεπεράσει τις 400 γραμμές, αρχίζει να προκαλεί προβλήματα σιωπηρά: καταλαμβάνει σημαντικό μέρος του παραθύρου περιβάλλοντος κατά την εκκίνηση της συνεδρίας και αραιώνει τις σημαντικές οδηγίες ανάμεσα στις δευτερεύουσες. Το Claude εξακολουθεί τυπικά να διαβάζει το αρχείο, οπότε απ’ έξω φαίνεται σαν «οι κανόνες υπάρχουν, αλλά δεν λειτουργούν»—χαρακτηριστική ένδειξη μιας υπερβολικά μεγάλης συμφωνίας κανόνων.

Τα hooks είναι η δεύτερη συνηθισμένη πηγή προβλημάτων. Τα Claude Code hooks έχουν μια λεπτομέρεια που η Anthropic δεν τονίζει.

Δηλαδή, το sys.exit(1) σε ένα Python hook (ή οποιαδήποτε συμβατική ένδειξη Unix για «απέτυχε με σφάλμα») δεν σταματά το Claude. Μόνο ο κωδικός 2 αποκλείει την ενέργεια. Στην περιγραφόμενη περίπτωση, το hook θεωρούνταν «αυστηρή απαγόρευση», αλλά στην πράξη κατέγραφε ένα παράπονο και επέτρεπε την ενέργεια.

Οι διακομιστές MCP είναι το τρίτο επίπεδο και παρουσιάζουν κι αυτοί βλάβες με τον δικό τους τρόπο.

Το σύμπτωμα συχνά μοιάζει ίδιο: οι εντολές MCP είναι διαθέσιμες, αλλά επιστρέφουν failed χωρίς ίχνος στοίβας. Για περισσότερα σχετικά με τη διαμόρφωση MCP και την προσθήκη διακομιστών με claude mcp add, δείτε τον ξεχωριστό οδηγό.

Η τέταρτη πηγή είναι η ιεραρχία τριών επιπέδων του settings.json. Υπάρχει το ~/.claude/settings.json (επίπεδο χρήστη), το .claude/settings.json στη ρίζα του έργου (έργο), το .claude/settings.local.json (τοπικό) και, προαιρετικά, διαχειριζόμενες ρυθμίσεις από εταιρικό διαχειριστή. Συνδυάζονται σύμφωνα με κανόνες προτεραιότητας. Όταν κάποιος προσθέτει έναν διακομιστή MCP σε επίπεδο έργου, ενώ εσείς έχετε παρόμοια καταχώριση σε επίπεδο χρήστη με διαφορετική ρύθμιση εκκίνησης, προκύπτει μια σιωπηρή σύγκρουση που μοιάζει με «το Claude Code έχει χαλάσει».

Πώς λειτουργεί το --safe-mode και τι απενεργοποιεί;

Κύρια συμπεράσματα

Το claude --safe-mode εκκινεί το Claude Code με όλες τις προσαρμογές πλήρως απενεργοποιημένες: CLAUDE.md, plugins, skills, hooks, διακομιστές MCP, εντολές χρήστη, agents, στυλ εξόδου, workflows και συντομεύσεις πλήκτρων. Παραμένουν ενεργά ο έλεγχος ταυτότητας, η επιλογή μοντέλου, τα ενσωματωμένα εργαλεία και τα δικαιώματα. Πρόκειται για διαγνωστικό εργαλείο: αν το πρόβλημα εξαφανιστεί στην ασφαλή λειτουργία, ευθύνεται ένα από τα επίπεδα που προσθέσατε.

Η αρχική διατύπωση της Anthropic στο αρχείο αλλαγών της v2.1.169 αναφέρει:

Προστέθηκε η σημαία --safe-mode (και το CLAUDE_CODE_SAFE_MODE) για την εκκίνηση του Claude Code με απενεργοποιημένες τις προσαρμογές (CLAUDE.md, plugins, skills, hooks, διακομιστές MCP) για διαγνωστικούς σκοπούς.

— Αρχείο αλλαγών του Anthropic Claude Code, https://code.claude.com/docs/en/changelog

Η Anthropic διευκρινίζει στην τεκμηρίωση διαμόρφωσης μοντέλου:

Για να ελέγξετε αν ευθύνονται οι προσαρμογές, ξεκινήστε μια συνεδρία με claude --safe-mode, το οποίο απενεργοποιεί τα CLAUDE.md, τα skills, τους διακομιστές MCP και τα hooks. Η κατάσταση git και τα ονόματα καταλόγων δεν θεωρούνται προσαρμογές και παραμένουν διαθέσιμα.

— Έγγραφα Anthropic - Διαμόρφωση μοντέλου, https://code.claude.com/docs/en/model-config

Αυτό είναι διαγνωστικό εργαλείο, όχι «καθαρό περιβάλλον». Η ασφαλής λειτουργία βοηθά να απαντηθεί ένα ερώτημα: βρίσκεται το πρόβλημα στην προεπιλεγμένη συμπεριφορά του Claude Code ή στις προσαρμογές που προστέθηκαν; Αυτό αποτελεί μέρος της μηχανικής περιβάλλοντος—της διαχείρισης όσων βλέπει και δεν βλέπει το Claude κάθε στιγμή. Αν όλα λειτουργούν στην ασφαλή λειτουργία, είναι σαφές ότι τα επίπεδα πρέπει να ελεγχθούν με δυαδική αναζήτηση. Αν δεν λειτουργούν, το πρόβλημα αφορά την ίδια την εγκατάσταση, τον έλεγχο ταυτότητας, το δίκτυο ή την υποδομή· τότε έχει νόημα να εξετάσετε το claude doctor και τα αρχεία καταγραφής.

Τι απενεργοποιεί η ασφαλής λειτουργία (η επίσημη λίστα της Anthropic—5 κύρια επίπεδα):

  • CLAUDE.md σε όλα τα επίπεδα (χρήστη / έργο)
  • Plugins
  • Skills
  • Hooks
  • Διακομιστές MCP

Τι εξακολουθεί να λειτουργεί:

  • Έλεγχος ταυτότητας (η συνεδρία OAuth ή το κλειδί API)
  • Επιλογή μοντέλου (--model sonnet, --model opus)
  • Ενσωματωμένα εργαλεία (Read, Write, Bash, Grep κ.ο.κ.)
  • Δικαιώματα
  • Κατάσταση git
  • Ονόματα καταλόγων

Μια σημαντική λεπτομέρεια: η ασφαλής λειτουργία δεν απενεργοποιεί τις διαχειριζόμενες ρυθμίσεις/πολιτικές από εταιρικό διαχειριστή. Αν εργάζεστε σε ομάδα όπου το Bedrock GovCloud ή μια ρύθμιση MDM ορίζει το availableModels, αυτοί οι περιορισμοί παραμένουν—η ασφαλής λειτουργία απενεργοποιεί μόνο τις προσαρμογές σας, όχι τις εταιρικές πολιτικές.

Πώς να απομονώσετε ένα επίπεδο και να βρείτε τον υπαίτιο σε 60 δευτερόλεπτα;

Κύρια συμπεράσματα

Βήμα 1: εκτελέστε το claude --safe-mode στον ίδιο φάκελο όπου παρουσιάζονταν τα προβλήματα. Αν λειτουργεί, το ζήτημα βρίσκεται στις προσαρμογές σας· ενεργοποιήστε τις μία προς μία: CLAUDE.md -> hooks -> MCP -> skills. Αν δεν λειτουργεί ούτε στην ασφαλή λειτουργία, το πρόβλημα αφορά τον έλεγχο ταυτότητας, την έκδοση, το δίκτυο ή το λειτουργικό σύστημα. Τότε εκτελέστε το claude doctor για αυτόματη διάγνωση, χωρίς να αγγίξετε το rm -rf.

Ένα διαγνωστικό σενάριο για την περίπτωση που το Claude Code «έπαψε να ακούει». Η ελάχιστη έκδοση για όλες τις παρακάτω εντολές είναι Claude Code v2.1.169. Αν η δική σας είναι παλαιότερη, ενημερώστε την πρώτα (npm update -g @anthropic-ai/claude-code ή μέσω του εγγενούς προγράμματος εγκατάστασης της Anthropic).

  1. Ανοίξτε τον ίδιο φάκελο όπου παρουσιάζονταν τα προβλήματα.
  2. Εκτελέστε το claude --safe-mode.
  3. Αν ξεκινήσει ομαλά, ελέγξτε το αρχικό σας αίτημα. Λειτούργησε; Τότε ευθύνεται ένα από τα επίπεδα. Μεταβείτε στο βήμα 4.
  4. Αν εξακολουθεί να μη λειτουργεί στην ασφαλή λειτουργία, μην αγγίξετε τις ρυθμίσεις. Εκτελέστε πρώτα το claude doctor· ελέγξτε τον έλεγχο ταυτότητας, την έκδοση και τις συγκρουόμενες εγκαταστάσεις.

Μόλις η ασφαλής λειτουργία ξεκινήσει ομαλά, ενεργοποιήστε τα επίπεδα ένα κάθε φορά, αρχίζοντας από τον πιθανότερο υπαίτιο. Η σειρά με βάση την περιγραφόμενη εμπειρία:

  1. CLAUDE.md. Εκτελέστε το claude χωρίς ασφαλή λειτουργία, αλλάξτε προσωρινά το όνομα του αρχείου: mv CLAUDE.md CLAUDE.md.bak. Αν λειτουργεί, αυτό το αρχείο είναι η αιτία. Έπειτα μπορείτε να κάνετε δυαδική αναζήτηση: κρατήστε τις μισές γραμμές και ελέγξτε.
  2. Hooks. Ανοίξτε το .claude/settings.json και ορίστε προσωρινά [] στην ενότητα hooks. Επανεκκινήστε το claude. Λειτουργεί; Τότε ευθύνεται ένα από τα hooks. Ενεργοποιήστε τα ένα προς ένα.
  3. Διακομιστές MCP. Παρομοίως, στο ~/.claude.json ή στο .claude/settings.json, ορίστε προσωρινά την ενότητα mcpServers σε κενό αντικείμενο, κάντε επανεκκίνηση και ελέγξτε.
  4. Skills. Μετακινήστε το .claude/skills/ σε προσωρινό φάκελο. Εκκινήστε και ελέγξτε.

Τι σημαίνει «προσωρινή μετονομασία»: τα αρχεία δεν διαγράφονται κατά τη διάγνωση. Τα mv ή git stash σάς επιτρέπουν να επαναφέρετε τα πάντα με μία εντολή, αν τελικά αυτό το επίπεδο δεν ευθύνεται.

Πώς να αλλάξετε τον φάκελο εργασίας με το /cd χωρίς να χάσετε το περιβάλλον;

Κύρια συμπεράσματα

Η εντολή /cd <path> στο Claude Code 2.1.169+ αλλάζει τον φάκελο εργασίας στην ενεργή συνεδρία χωρίς να χάνεται η προσωρινή μνήμη της προτροπής. Είναι χρήσιμη όταν η ρύθμιση του τρέχοντος έργου έχει χαλάσει: μπορείτε να μεταβείτε σε καθαρό φάκελο, να ελέγξετε ότι το Claude λειτουργεί και να επιστρέψετε. Παλαιότερα, έπρεπε να κλείσετε τη συνεδρία και να την ξεκινήσετε ξανά.

Από το αρχείο αλλαγών της v2.1.169 στις 8 Ιουνίου:

Προστέθηκε η εντολή /cd για τη μεταφορά της συνεδρίας σε νέο φάκελο εργασίας χωρίς επαναφορά της προσωρινής μνήμης προτροπών στη μέση της συνεδρίας.

— Αρχείο αλλαγών του Anthropic Claude Code, https://code.claude.com/docs/en/changelog

Γιατί είναι χρήσιμο όταν διορθώνετε προβλήματα. Ας υποθέσουμε ότι βρίσκεστε στον φάκελο του έργου ~/work/myapp και το Claude Code συμπεριφέρεται παράξενα. Παλαιότερα, ο μόνος τρόπος να ελέγξετε «λειτουργεί καν;» ήταν να κλείσετε τη συνεδρία, να μεταβείτε σε άλλον φάκελο και να ξεκινήσετε ξανά. Χάνατε το περιβάλλον, το ιστορικό και την προθερμασμένη προσωρινή μνήμη προτροπών. Τώρα:

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

Το Claude μεταβαίνει στον νέο φάκελο και διαβάζει το CLAUDE.md του (αν υπάρχει) ως μήνυμα, όχι ως αντικατάσταση της προτροπής συστήματος—έτσι, η προσωρινή μνήμη διατηρείται. Αν όλα λειτουργούν στο ~/sandbox/test, είναι σαφές ότι το πρόβλημα βρισκόταν στη ρύθμιση του ~/work/myapp.

Στις 12 Ιουνίου, η v2.1.176 διόρθωσε μια δυσάρεστη παλινδρόμηση—το /cd εμφάνιζε τον παλιό κλάδο git μέχρι να γίνει πλήρης επανεκκίνηση. Αν η έκδοσή σας είναι παλαιότερη, είτε ενημερώστε την είτε αγνοήστε απλώς το git status στα πρώτα μηνύματα μετά την αλλαγή—θα συγχρονιστεί.

Πώς να ρυθμίσετε εφεδρικά μοντέλα για ένα 529;

Κύρια συμπεράσματα

Στην v2.1.166, η Anthropic πρόσθεσε το fallbackModel—μια αλυσίδα έως και 3 μοντέλων που δοκιμάζονται διαδοχικά όταν το κύριο μοντέλο είναι υπερφορτωμένο ή μη διαθέσιμο. Η αλυσίδα ενεργοποιείται μόνο από σφάλματα υπερφόρτωσης και μη επαναλήψιμα σφάλματα διακομιστή. Τα σφάλματα ελέγχου ταυτότητας, χρέωσης, ορίου ρυθμού και μεταφοράς δεν ενεργοποιούν την αλυσίδα εφεδρείας—ακολουθούν την κανονική λογική επαναλήψεων.

Στο περιγραφόμενο σενάριο, μία φορά την εβδομάδα εκτελείται μια μεγάλη εργασία σε Opus σε κάποιο έργο· μετά από 10 λεπτά, το API επιστρέφει 529 Overloaded και η συνεδρία καταρρέει. Παλαιότερα, έπρεπε είτε να περιμένετε είτε να αλλάζετε χειροκίνητα σε Sonnet με --model sonnet και να χάνετε όλο το προθερμασμένο περιβάλλον. Σε έναν μεγάλο φάκελο business/ με διάταξη δεύτερου εγκεφάλου, αυτό απαιτεί περίπου είκοσι λεπτά δουλειάς. Τώρα υπάρχει ένας κανονικός μηχανισμός.

Το ακριβές απόσπασμα από την επίσημη τεκμηρίωση:

Όταν το κύριο μοντέλο είναι υπερφορτωμένο, μη διαθέσιμο ή επιστρέφει άλλο μη επαναλήψιμο σφάλμα διακομιστή, το Claude Code μπορεί να μεταβεί σε εφεδρικό μοντέλο αντί να αποτύχει το αίτημα. Τα σφάλματα ελέγχου ταυτότητας, χρέωσης, ορίου ρυθμού, μεγέθους αιτήματος και μεταφοράς δεν ενεργοποιούν ποτέ την εναλλαγή—ακολουθούν την κανονική διαδρομή επαναλήψεων και χειρισμού σφαλμάτων.

— Έγγραφα Anthropic - Διαμόρφωση μοντέλου, https://code.claude.com/docs/en/model-config

Και ξεχωριστά, πώς λειτουργεί η αλυσίδα:

Ρυθμίστε ένα ή περισσότερα εφεδρικά μοντέλα και το Claude Code θα τα δοκιμάσει με τη σειρά, εμφανίζοντας ειδοποίηση κατά την εναλλαγή. Η εναλλαγή ισχύει μόνο για την τρέχουσα σειρά—το επόμενο μήνυμα δοκιμάζει ξανά το κύριο μοντέλο. Οι αλυσίδες περιορίζονται σε τρία μοντέλα μετά την αφαίρεση διπλοτύπων· οι επιπλέον καταχωρίσεις αγνοούνται.

— Έγγραφα Anthropic - Διαμόρφωση μοντέλου, https://code.claude.com/docs/en/model-config

Δύο τρόποι διαμόρφωσης. Μέσω CLI:

claude --fallback-model sonnet,haiku

Μέσω του ~/.claude/settings.json:

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

Μια ξεχωριστή λεπτομέρεια σχετικά με τα όρια ρυθμού. Η Anthropic δεν προωθεί σκόπιμα ένα σφάλμα 429 στην αλυσίδα, ώστε να μην μπορείτε να παρακάμψετε το όριο αιτημάτων μεταβαίνοντας στο επόμενο μοντέλο. Η εφεδρεία λειτουργεί μόνο όταν το κύριο μοντέλο είναι υπερφορτωμένο, μη διαθέσιμο ή επιστρέφει μη επαναλήψιμο σφάλμα διακομιστή (για παράδειγμα, 529 Overloaded). Τα όρια ρυθμού ακολουθούν την κανονική λογική επανάληψης και την εκθετική καθυστέρηση.

Μία ακόμη λεπτομέρεια—στις 12 Ιουνίου, η v2.1.174 διόρθωσε μια παλινδρόμηση: η συμπύκνωση δεν λάμβανε υπόψη το --fallback-model. Αν έχετε μεγάλη συνεδρία και αυτή συμπυκνωθεί ενώ το σύστημα είναι υπερφορτωμένο, πριν από αυτήν τη διόρθωση δεν καλούνταν το εφεδρικό μοντέλο. Αν εργάζεστε με μεγάλες συνεδρίες (/compact, /loop όλη τη νύχτα), ενημερώστε σε τουλάχιστον v2.1.174.

Τι να διορθώσετε όταν ευθύνεται το CLAUDE.md, ένα hook, το MCP ή ένα skill;

Κύρια συμπεράσματα

Όταν η ασφαλής λειτουργία εντοπίσει το επίπεδο που ευθύνεται, η διόρθωση διαφέρει ανά επίπεδο. Για το CLAUDE.md, χρησιμοποιήστε δυαδική αναζήτηση ή επαναφέρετε ένα έτοιμο πρότυπο κάτω από 200 γραμμές. Για ένα hook, ελέγξτε τον κωδικό εξόδου (το 2 αποκλείει, το 1 όχι) και τη λογική. Για το MCP, αφαιρέστε έναν διακομιστή και ελέγξτε. Για ένα skill, ελέγξτε το SKILL.md για αντιφάσεις με το CLAUDE.md.

Συγκεκριμένες στρατηγικές για κάθε επίπεδο.

Αν ευθύνεται το CLAUDE.md

Ανοίξτε το αρχείο και ελέγξτε το μέγεθός του. Με βάση την περιγραφόμενη εμπειρία, διατηρήστε το ενεργό CLAUDE.md σε έως 200 γραμμές· μεταφέρετε τα υπόλοιπα σε routers και συνοδευτικά έγγραφα δίπλα στο έργο (η πλήρης δομή δεύτερου εγκεφάλου βρίσκεται στον οδηγό για τον δεύτερο εγκέφαλο). Αν έχετε πάνω από 400 γραμμές, σχεδόν σίγουρα ευθύνεται αυτό. Βήματα:

  1. Δημιουργήστε αντίγραφο ασφαλείας: cp CLAUDE.md CLAUDE.md.full.
  2. Επαναφέρετε ένα σύντομο λειτουργικό πρότυπο. Ένα έτοιμο υπάρχει στον οδηγό «Πώς να ρυθμίσετε το CLAUDE.md».
  3. Επανεκκινήστε το Claude Code. Ελέγξτε.
  4. Αν λειτουργεί, επαναφέρετε κανόνες σε μικρά τμήματα των 10–20 γραμμών, ελέγχοντας μετά από κάθε τμήμα.
  5. Βρείτε το τμήμα που διαταράσσει τη συμπεριφορά. Ξαναγράψτε το ως hook με τον σωστό κωδικό εξόδου (οι κωδικοί εξόδου για hooks καλύπτονται στην επόμενη υποενότητα αυτής της H2).

Αν ευθύνεται ένα hook

Το κύριο ερώτημα είναι αν ο κωδικός εξόδου είναι σωστός. Τα hooks του Claude Code χρησιμοποιούν:

  • Έξοδος 0 — όλα καλά· η ενέργεια προχωρά.
  • Έξοδος 1 — σφάλμα, αλλά δεν αποκλείει. Το Claude συνεχίζει σαν να μη συνέβη τίποτα.
  • Έξοδος 2 — αποκλειστικό σφάλμα. Μόνο αυτό σταματά πραγματικά την ενέργεια.

Αν γράψατε sys.exit(1) ή exit 1 σε ένα shell hook, πιστεύοντας ότι αποκλείετε την ενέργεια, αυτός ο κωδικός λειτουργεί ως προειδοποιητική καταγραφή στο Claude Code, χωρίς να τη σταματά. Αλλάξτε τον σε 2. Για λεπτομέρειες σχετικά με τα hooks και τη διαμόρφωσή τους χωρίς αυτήν την παγίδα, δείτε τον ξεχωριστό οδηγό.

Η δεύτερη συνηθισμένη περίπτωση είναι ένα hook που επιστρέφει μη έγκυρο JSON στο stdout. Το Claude Code αναλύει την απόκριση του hook ως JSON και, αν περιέχει άσχετο κείμενο (καταγραφή, ένδειξη προόδου, emoji), το hook θεωρείται αποτυχημένο και η ενέργεια προχωρά. Κανόνας: το stdout περιέχει μόνο JSON· όλα τα υπόλοιπα πηγαίνουν στο stderr.

Η τρίτη περίπτωση είναι ένα hook που διαβάζει κάτι από το ~/.claude/, το οποίο έχει αποκρύψει η ασφαλής λειτουργία. Αυτό είναι αναμενόμενο σενάριο· διορθώστε το όχι με τροποποίηση του hook, αλλά ελέγχοντας το os.environ.get('CLAUDE_CODE_SAFE_MODE') στην αρχή και τερματίζοντας με 0.

Αν ευθύνεται ένας διακομιστής MCP

Συμπτώματα: οι εντολές MCP είναι διαθέσιμες, αλλά επιστρέφουν failed χωρίς σαφές ίχνος στοίβας. Βήματα:

  1. Εκτελέστε το claude mcp list—ποιοι διακομιστές είναι ορισμένοι;
  2. Απενεργοποιήστε τους διακομιστές έναν προς έναν στο ~/.claude.json: μετονομάστε το κλειδί claude-server-A σε _claude-server-A (έτσι απενεργοποιείται χωρίς να διαγραφεί).
  3. Επανεκκινήστε το claude. Ελέγξτε ποιες κλήσεις λειτουργούν.
  4. Μόλις εντοπίσετε τον υπαίτιο διακομιστή, ελέγξτε το αρχείο καταγραφής του: claude mcp logs <name>.
  5. Αν πρόκειται για διακομιστή τρίτου μέρους (@modelcontextprotocol/server-postgres και παρόμοιο), ελέγξτε αν έχει πρόσφατη έκδοση. Το οικοσύστημα MCP βρίσκεται ακόμη σε αναταραχή· οι διακομιστές παρουσιάζουν συχνά προβλήματα με τις ενημερώσεις του Claude Code.

Αν αντιμετωπίσετε «καταρρεύσεις κατά την εκκίνηση, μόνο με δύο MCP», συγκρίνετε τη συμπεριφορά στην ασφαλή λειτουργία χωρίς MCP.

Αν ευθύνεται ένα skill

Ένα skill αποτελείται από το SKILL.md και κώδικα στο .claude/skills/<name>/. Συμπτώματα: το Claude αγνοεί το skill, το εφαρμόζει σε λάθος στιγμή ή το εφαρμόζει αλλά παράγει άχρηστο αποτέλεσμα. Βήματα:

  1. Ανοίξτε το SKILL.md. Ελέγξτε την περιγραφή—θα πρέπει να είναι 1–2 προτάσεις και να περιγράφει συγκεκριμένα πότε πρέπει να χρησιμοποιείται. Αν λέει «ένα καθολικό βοηθητικό εργαλείο για τα πάντα», το Claude δεν καταλαβαίνει πότε να το ενεργοποιήσει.
  2. Ελέγξτε για αντιφάσεις με το CLAUDE.md. Αν το CLAUDE.md λέει «να γράφετε πάντα tests», αλλά η περιγραφή του skill λέει «χρησιμοποιήστε το για γρήγορη πρωτοτυποποίηση χωρίς tests», υπάρχει σύγκρουση.
  3. Αν το skill χρησιμοποιεί εξωτερικές εντολές (npm, python, git), ελέγξτε ότι είναι διαθέσιμες στο PATH όλου του συστήματος. Ένα skill έχει το δικό του ελάχιστο περιβάλλον.

Τι να κάνετε αν η ασφαλής λειτουργία δεν βοήθησε: διάγνωση και διατήρηση κατάστασης πριν επισκευή

Κύρια συμπεράσματα

Αν αποτυγχάνει και η ασφαλής λειτουργία, παραμένουν πιθανές αιτίες εγκατάστασης, εξουσιοδότησης, δικτύου ή υποδομής. Εκτελέστε claude doctor και εξετάστε τα στοιχεία του. Ασαφής αναφορά δεν δικαιολογεί διαγραφή ρυθμίσεων ή συνεδριών: διασώστε και επαληθεύστε πρώτα την πλήρη κατάσταση και επισκευάστε μόνο τη διαγνωσμένη εγκατάσταση.

Η αφαίρεση κατάστασης χρήστη δεν είναι διαγνωστική συντόμευση. Χρησιμοποιήστε τους παρακάτω ελέγχους για εντοπισμό βλάβης· αν είναι ασαφείς, κρατήστε στοιχεία και διερευνήστε περαιτέρω. Κάθε επισκευή εγκατάστασης ξεκινά με επαληθευμένο backup και διατηρεί υπάρχοντα λογαριασμό και ταυτότητα αποθήκης διαπιστευτηρίων. Σειρά:

  1. claude doctor — αυτόματη διάγνωση. Η Anthropic αναφέρει στην τεκμηρίωσή της:

Αν το claude --version λειτουργεί αλλά κάτι άλλο πηγαίνει στραβά, εκτελέστε το claude doctor για να δημιουργήσετε μια αυτόματη διαγνωστική αναφορά.

— Έγγραφα Anthropic - Αντιμετώπιση προβλημάτων εγκατάστασης, https://code.claude.com/docs/en/troubleshoot-install
  1. Ελέγξτε για συγκρουόμενες εγκαταστάσεις. Πολλοί έχουν ταυτόχρονα εγκατεστημένη μια καθολική έκδοση npm και το εγγενές πρόγραμμα εγκατάστασης:

Πολλαπλές εγκαταστάσεις Claude Code μπορούν να οδηγήσουν σε ασυμφωνίες εκδόσεων ή απροσδόκητη συμπεριφορά.

— Έγγραφα Anthropic - Αντιμετώπιση προβλημάτων εγκατάστασης, https://code.claude.com/docs/en/troubleshoot-install
  1. Ελέγξτε αν το ANTHROPIC_API_KEY παρεμβάλλεται στη συνεδρία OAuth. Αυτή είναι μια συνηθισμένη αιτία του «δεν λειτουργεί τίποτα, το κλειδί έληξε»:

Όταν έχει οριστεί το `ANTHROPIC_API_KEY` και το έχετε επιβεβαιώσει, το Claude Code χρησιμοποιεί αυτό το κλειδί αντί για τα διαπιστευτήρια OAuth της συνδρομής σας.

— Έγγραφα Anthropic - Αντιμετώπιση προβλημάτων εγκατάστασης, https://code.claude.com/docs/en/troubleshoot-install

Λύση: εκτελέστε unset ANTHROPIC_API_KEY στην τρέχουσα συνεδρία του κελύφους ή αφαιρέστε το από το ~/.zshrc / ~/.bashrc.

  1. Επισκευάστε μόνο την εγκατάσταση που δείχνουν τα διαγνωστικά· διασώστε πρώτα όλη την κατάσταση χρήστη. Αποτυχία ασφαλούς λειτουργίας ή ασαφής αναφορά doctor δεν τεκμηριώνει ανάγκη διαγραφής δεδομένων χρήστη. Σταματήστε όλες τις συνεδρίες Claude και άλλους writers πριν δημιουργήσετε συνεπές backup. Κρατήστε ίδιο λογαριασμό Unix, HOME, αποθήκη διαπιστευτηρίων λειτουργικού συστήματος και λογαριασμό Anthropic· μη μεταβάλλετε κλειδιά ή δημιουργείτε ταυτότητα αντικατάστασης.

Το ακόλουθο παράδειγμα backup αφορά Linux με GNU tar. Σε macOS ή Windows χρησιμοποιήστε εργαλείο που διατηρεί ACL, extended attributes, συνδέσμους και μεταδεδομένα της πλατφόρμας και επαληθεύστε αποκατάσταση πριν προχωρήσετε· μη θεωρείτε ότι λειτουργούν εκεί σημαίες μόνο για GNU. Το αρχείο περιέχει διαπιστευτήρια και ιστορικά συνεδριών: κρατήστε το ιδιωτικό και έξω από αποθετήρια.

# 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"

Όλες οι εντολές πρέπει να πετύχουν. Το αρχείο καλύπτει ολόκληρο το υπάρχον δέντρο .claude, μαζί με ignored/untracked συνεδρίες και κατάσταση plugins, και το .claude.json, όχι μόνο ρυθμίσεις που παρακολουθεί το Git. Αν οποιαδήποτε διαδρομή είναι symlink ή δεδομένα βρίσκονται σε χωριστή διαμορφωμένη θέση, σταματήστε και συμπεριλάβετε τον επιλυμένο στόχο στο ίδιο επαληθευμένο backup· αρχειοθέτηση συνδέσμου μόνο δεν αντιγράφει τον στόχο. Το αρχείο δεν περιέχει macOS Keychain ή άλλη εξωτερική αποθήκη διαπιστευτηρίων, οπότε διατηρήστε εκείνες τις ταυτότητες στη θέση τους.

Αν τα διαγνωστικά δείχνουν συγκεκριμένα την παλιά τοπική εγκατάσταση ως συγκρουόμενο αντίγραφο, μετακινήστε μόνο εκείνη στο ιδιωτικό recovery directory αντί να διαγράψετε ρυθμίσεις και συνεδρίες:

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

Αφαιρέστε εγκατάσταση npm μόνο αν τα διαγνωστικά την εντοπίζουν ως συγκρουόμενη και σκοπεύετε να κρατήσετε τη native. Έπειτα χρησιμοποιήστε τον τεκμηριωμένο native installer, χωρίς διαγραφή .claude ή .claude.json:

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

Στα Windows, η εντολή native εγκατάστασης παραμένει:

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

Αποκαταστήστε χωριστά. Σταματήστε ξανά writers. Ελέγξτε checksum αρχείου και εξαγάγετε σε άδειο recovery directory όπως παραπάνω· πετύχετε τη σύγκριση πριν χρησιμοποιήσετε αρχεία. Αν πρέπει να επιστρέψει η μετακινημένη παλιά εγκατάσταση, επιβεβαιώστε πρώτα ότι δεν υπάρχει $HOME/.claude/local και μετακινήστε το $backup_dir/legacy-local πίσω σε εκείνη ακριβώς τη θέση. Επαναφέρετε διαγνωσμένο αρχείο ρύθμισης από την επαληθευμένη εξαγωγή μόνο αφού διασώσετε οποιαδήποτε τρέχουσα αντικατάσταση· μην επικαλύπτετε τυφλά όλο το δέντρο. Συνεδρίες, ρυθμίσεις MCP και αρχική ταυτότητα παραμένουν διασωσμένες. Ένα στιγμιότυπο Git μόνο του δεν καλύπτει ignored/untracked ιστορικά, διαπιστευτήρια ή μεταδεδομένα συστήματος αρχείων.

Τι ΔΕΝ πρέπει να κάνετε όταν έχει χαλάσει το Claude Code;

Κύρια συμπεράσματα

Έξι αντιπαραδείγματα από τις περιγραφόμενες περιπτώσεις υποστήριξης: αλλαγή κλειδιών πριν από τη διάγνωση, πλήρης επαναφορά ως πρώτο βήμα, πανικός για σφάλμα UI σε hook, αύξηση του κωδικού εξόδου hook πριν διορθωθεί η λογική, επεξεργασία του CLAUDE.md χωρίς δικλείδα ασφαλούς λειτουργίας και η πεποίθηση ότι «το Claude διορθώνει μόνο του το MCP». Καθένα κοστίζει ώρες και κανένα δεν είναι απαραίτητο.

Μην αλλάζετε κλειδιά πριν από τη διάγνωση

Η «αποτυχία του ελέγχου ταυτότητας» οφείλεται στο 90% των περιπτώσεων είτε στο ANTHROPIC_API_KEY που παρεμβάλλεται στη συνδρομή, σε σφάλμα UI hook ή σε αποτυχία MCP. Η ανανέωση των κλειδιών δεν θα διορθώσει τίποτα από αυτά, αλλά θα προκαλέσει άλλη μία ώρα διακοπής λειτουργίας: πρέπει να ανακαλέσετε το παλιό κλειδί, να εκδώσετε νέο, να ενημερώσετε το CI με αυτό και να αλλάξετε τις μεταβλητές στην παραγωγή. Εκτελέστε πρώτα το claude --safe-mode. Λειτουργεί; Τότε το ζήτημα βρίσκεται στις προσαρμογές· δεν χρειάζεται να αγγίξετε τα κλειδιά.

Μην κάνετε πλήρη επαναφορά πριν από την ασφαλή λειτουργία

Η ασφαλής λειτουργία παρέχει απομονωμένο περιβάλλον σε 1 δευτερόλεπτο. Η διαγραφή .claude μπορεί να καταστρέψει συνεδρίες, διαμόρφωση MCP και άλλη μη παρακολουθούμενη κατάσταση. Διαγνώστε πρώτα, επαληθεύστε ιδιωτικό backup και χρησιμοποιήστε αναστρέψιμη μετακίνηση μόνο για το επίπεδο εγκατάστασης ή ρύθμισης που πραγματικά εμπλέκεται.

Μην πανικοβάλλεστε για σφάλμα UI σε hook

Πριν διορθώσετε οτιδήποτε, ελέγξτε αν το hook εκτελέστηκε πραγματικά (μέσω καταγραφής στο stderr ή ρητής εκτύπωσης), αντί να βασίζεστε στην οπτική ένδειξη.

Μην αυξάνετε τον κωδικό εξόδου ενός hook πριν διορθώσετε τη λογική

Όταν ένα hook αποκλεισμού δεν αποκλείει, είναι δελεαστικό να ορίσετε exit 2 και να θεωρήσετε ότι τελειώσατε. Αυτό είναι λειτουργική διόρθωση, αλλά κρύβει ένα ακόμη πρόβλημα: αν ο αποκλεισμός δεν λειτουργούσε για έναν μήνα, τότε πέρασε οτιδήποτε θα έπρεπε να είχε απαγορεύσει το hook. Ελέγξτε πρώτα το αρχείο καταγραφής git και εξακριβώστε τι ακριβώς διέφυγε. Μετά προσθέστε τον αποκλεισμό. Διαφορετικά, το κλείσιμο του αποκλεισμού δεν αναιρεί ό,τι συνέβη προηγουμένως.

Μην επεξεργάζεστε το CLAUDE.md παραγωγής χωρίς δικλείδα ασφαλούς λειτουργίας

Στην περιγραφόμενη περίπτωση: επεξεργάζεστε το CLAUDE.md, το Claude αρχίζει να συμπεριφέρεται παράξενα, εκτελείτε git diff και βλέπετε ότι κάποιος πρόσθεσε επίσης έναν διακομιστή MCP και ένα hook στο αποθετήριο εκείνο το βράδυ. Κατηγορείτε την αλλαγή σας, την επαναφέρετε και το Claude εξακολουθεί να συμπεριφέρεται παράξενα. Κανόνας: πριν από το git revert, εκτελέστε το claude --safe-mode. Αν το πρόβλημα παραμένει στην ασφαλή λειτουργία, η αλλαγή σας δεν είχε καμία σχέση με αυτό· δεν χρειάζεται επαναφορά.

Μην πιστεύετε ότι «το Claude διορθώνει μόνο του το MCP»

Ένα τυπικό σενάριο: ζητάτε από το Claude να «προσθέσει ένα συγκεκριμένο εργαλείο στον διακομιστή MCP», το Claude ξαναγράφει τη λειτουργική ρύθμιση, όλα χαλούν και μετά το Claude περνά αρκετούς γύρους εντοπισμού του προβλήματος που προκάλεσε—ενώ εξαντλεί το όριο της συνεδρίας. Όταν χαλάσει το MCP, βρείτε χειροκίνητα τη ρύθμιση· μην το αναθέτετε στον agent. Μέρος του οπλοστασίου εργαλείων του λειτουργεί επίσης μέσω MCP και ένα χαλασμένο MCP σημαίνει χαλασμένο διαγνωστικό εργαλείο.

Πού να πάτε αφού το διορθώσετε;

Κύρια συμπεράσματα

Μόλις αποκαταστήσετε το Claude Code, προσθέστε μέτρα πρόληψης ώστε να μην ξαναχαλάσει. Κατ’ ελάχιστον: disableBypassPermissionsMode: "disable" στις ρυθμίσεις χρήστη, hooks που αποκλείουν το .env και το git push --force, και sandbox για μεγάλες αυτόνομες εκτελέσεις. Ο οδηγός πρόληψης είναι το συμπληρωματικό του κείμενο.

Αφού αναλύσετε το περιστατικό, μην επιστρέψετε αμέσως στη δουλειά. Προσθέστε πρώτα μέτρα πρόληψης για να μην επαναληφθεί. Μπορεί να χάσετε ώρες δουλειάς σε έναν δεύτερο εγκέφαλο (τον φάκελο business/ με τη δομή του έργου) και στο CLAUDE.md, ενώ η χειροκίνητη αποκατάστασή τους είναι δύσκολη—αυτός είναι σοβαρός λόγος. Ελάχιστο σύνολο:

  1. ~/.claude/settings.json με permissions.disableBypassPermissionsMode: "disable"—αρχιτεκτονική απαγόρευση της λειτουργίας παράκαμψης, ώστε ένα --dangerously-skip-permissions που ξεκίνησε κατά λάθος απλώς να μη λειτουργεί.
  2. Hooks για Read(./env*), Bash(git push --force), Write(./node_modules/**)—ενέργειες που πρέπει να αποτρέπονται στο επίπεδο του κανόνα, όχι της ευχής.
  3. Ρύθμιση sandbox για μεγάλες αυτόνομες εκτελέσεις (/loop, /schedule).
  4. /compact με δικούς σας κανόνες για το τι πρέπει να αφαιρείται από το περιβάλλον, ώστε το Claude να μην εξαντλείται.

Το πλήρες σχήμα προστασίας τεσσάρων επιπέδων βρίσκεται στον οδηγό «Πώς να ρυθμίσετε το Claude Code ώστε να μην χαλάσει το έργο σας μέσα στη νύχτα». Ο ένας οδηγός καλύπτει την πρόληψη πριν από την εκκίνηση του /loop· ο άλλος την ανάκτηση αφού το /loop έχει ήδη χαλάσει κάτι. Ένα λογικό ζευγάρι.

Πηγές

Πρακτικό υλικό: Τεκμηρίωση του Ailoot.

Περισσότερο υλικό και εργαλεία: Ailoot.

Περισσότερες λεπτομέρειες

Ερωτήσεις και απαντήσεις: Ανάκτηση Claude Code: ασφαλής λειτουργία, /cd και εφεδρεία | Ailoot

Η αποτυχία ασφαλούς λειτουργίας σημαίνει ότι πρέπει να διαγράψω ~/.claude;

Όχι. Παραμένουν προς διερεύνηση αιτίες εγκατάστασης, εξουσιοδότησης, δικτύου και υποδομής. Ασαφής αναφορά doctor δεν αποδεικνύει ανάγκη αφαίρεσης ρυθμίσεων ή συνεδριών· επισκευάστε μόνο το διαγνωσμένο επίπεδο.

Τι πρέπει να διασωθεί πριν επισκευή εγκατάστασης;

Σταματήστε writers και αντιγράψτε πλήρη κατάσταση Claude, μαζί με συνεδρίες, διαμόρφωση plugin/MCP, ignored αρχεία και μεταδεδομένα συστήματος αρχείων. Επαληθεύστε checksum και εξαγωγή πριν προχωρήσετε, κρατήστε υπάρχοντα λογαριασμό και αποθήκη διαπιστευτηρίων και αποκαταστήστε μόνο το διαγνωσμένο επίπεδο χωρίς τυφλή επικάλυψη της τρέχουσας κατάστασης.

Όλα τα άρθρα