15. קובצי ההגדרות (settings.json)
מאחורי כל התנהגות של Claude Code — איזה מודל רץ, אילו פקודות מותרות בלי לשאול, אילו Hooks פעילים — עומד קובץ settings.json אחד או יותר. בפרק הזה נבין איפה הקבצים האלה יושבים, מה קורה כששניים מהם סותרים, ואילו הגדרות שימושיות כדאי להעתיק לפרויקט שלכם.
ארבעה מקומות לקובצי הגדרות
Claude Code קורא הגדרות מארבעה קבצים, וארגון יכול להוסיף עליהם שכבה חמישית מנוהלת. לכל קובץ יש היקף — מי מושפע ממנו — ועדיפות בסדר טעינה:
| היקף | קובץ | על מי משפיע | מתאים ל… |
|---|---|---|---|
| אישי (User) | ~/.claude/settings.json | אתם, בכל פרויקט במחשב הזה | העדפות אישיות: מודל ברירת מחדל, ערכת נושא, כללי הרשאה משלכם |
| פרויקט משותף | .claude/settings.json | כל מי שעובד בתיקייה. נכנס ל-Git | הרשאות, Hooks, Plugins ומשתני סביבה של הפרויקט, משותפים לצוות |
| פרויקט מקומי (Local) | .claude/settings.local.json | אתם, בפרויקט הזה בלבד | חריגות אישיות, ואישורי "כן ואל תשאל שוב" שקלוד שומר בעצמו |
| מנוהל (Managed) | managed-settings.json ומקורות ארגוניים נוספים | כל מי שהארגון פורש אליו | מדיניות אבטחה וציות. שום דבר שתגדירו לא דורס אותו |
ב-~/.claude הכוונה לתיקיית .claude בתיקיית הבית שלכם — ב-Windows זה C:Usersשם-המשתמש.claude. קובץ פרויקט בודד יכול להיות גם ב-.claude וגם, אם צריך שיתוף מתקדם יותר, דרך מקורות מנוהלים.
סדר העדיפויות
כשאותו מפתח מוגדר במספר מקומות, המפתח מהרמה הגבוהה ביותר מנצח. הסדר, מהגבוה לנמוך:
- הגדרות מנוהלות — שום דבר לא דורס אותן, מלבד חריגים בטיחותיים בודדים.
- דגלי שורת פקודה — כולל
--settings, לסשן בודד. .claude/settings.local.json— ההגדרות האישיות שלכם לפרויקט הזה..claude/settings.json— הגדרות הצוות שנכנסות ל-Git.~/.claude/settings.json— ההגדרות האישיות שלכם, לכל פרויקט.
כשאותו מפתח-רשימה, כמו permissions.allow, מופיע בכמה קבצים, Claude Code מאחד את הרשימות במקום לבחור אחת. כך כל קובץ יכול להוסיף כללים בלי לבטל את מה שקבצים אחרים הגדירו. יש כמה מפתחות מיוחדים שמתנהגים אחרת (כמו fallbackModel, שהוא רשימה מסודרת שנלקחת שלמה מהקובץ הגבוה ביותר שמגדיר אותה) — לפרטים ראו את רפרנס ההגדרות.
דוגמת settings.json מלאה ומוערת
כך נראה קובץ הגדרות אישי סביר, ב-~/.claude/settings.json:
{
"model": "claude-sonnet-5",
"effortLevel": "xhigh",
"editorMode": "vim",
"theme": "light-daltonized",
"statusLine": {
"type": "command",
"command": "jq -r '"[\(.model.display_name)] \(.context_window.used_percentage // 0)% context"'",
"padding": 2
},
"spinnerTipsEnabled": false,
"preferredNotifChannel": "terminal_bell",
"permissions": {
"allow": [
"Bash(git diff *)",
"Read(~/.zshrc)"
]
},
"autoUpdatesChannel": "stable",
"cleanupPeriodDays": 20
}
מה כל מפתח עושה: model ו-effortLevel קובעים מודל ורמת מאמץ שהסשן מתחיל איתם (פרק 8: מודלים, רמות מאמץ, עלויות ומגבלות שימוש); editorMode ו-theme נוגעים לחוויית הטרמינל; statusLine מריץ פקודה שמציגה שורת מצב מתחת לפרומפט (כאן: שם המודל ואחוז ההקשר שנוצל); spinnerTipsEnabled: false מכבה את הטיפים שמתחלפים מתחת לספינר; preferredNotifChannel קובע איך מקבלים התראות; permissions.allow מאשר מראש שתי פעולות ספציפיות (פרק 7: הרשאות ובטיחות); autoUpdatesChannel ו-cleanupPeriodDays שולטים בעדכונים אוטומטיים ובזמן השמירה של קבצי סשן.
וכך נראה קובץ צוות, ב-.claude/settings.json בשורש הפרויקט, שנכנס ל-Git:
{
"permissions": {
"allow": ["Bash(npm run *)"],
"ask": ["Bash(git push *)"],
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)"
]
},
"env": {
"CLAUDE_CODE_ENABLE_TELEMETRY": "1"
},
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{ "type": "command", "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh" }
]
}
]
}
}
שימו לב: כללי allow וכניסות ל-extraKnownMarketplaces בקובץ המשותף נכנסים לתוקף רק אחרי שכל אחד מהצוות "סומך" על התיקייה (מאשר את דיאלוג האמון בפעם הראשונה); כללי deny ו-ask פעילים תמיד, גם לפני אישור אמון.
/config כממשק גרפי לעריכה
לא חובה לערוך JSON ידנית. /config בתוך קלוד פותח תפריט עם קבוצת ההגדרות האישיות הנפוצות — ערכת נושא, מצב עריכה, פלט מפורט ועוד — לא כל מפתח אפשרי. בחירה באפשרות שומרת אותה עבורכם:
- רוב האפשרויות נשמרות ל-
~/.claude/settings.json. - כמה אפשרויות, כמו הצגת טיפים, נשמרות ל-
.claude/settings.local.json. - הגדרות תצורה גלובליות (global config) נשמרות ל-
~/.claude.json.
אפשר גם לקבוע מפתח בודד בלי לפתוח את התפריט: /config verbose=true. שימו לב: /config קיים רק בממשק הטרמינל — בתוסף VS Code ובאפליקציית הדסקטופ משנים הגדרות דרך עריכת הקובץ או דרך הגדרות האפליקציה עצמה.
~/.claude.json מול settings.json
אלה שני קבצים שונים לגמרי, ולמרות השמות הדומים חשוב לא לבלבל ביניהם:
settings.json (בכמה מקומות) | ~/.claude.json (קובץ יחיד) | |
|---|---|---|
| מי כותב | אתם, הצוות, הארגון | Claude Code בעצמו |
| מה יש בו | הרשאות, Hooks, מודל, סביבה, ממשק | מצב התחברות, שרתי MCP אישיים, אמון בפרויקטים, מפתחות תצורה גלובליים |
| עורכים ידנית? | כן, זה הרעיון | לא צריך — Claude Code מנהל אותו |
אם ~/.claude.json נפגם (JSON לא תקין), Claude Code מעתיק את הקובץ השבור ל-~/.claude/backups/ עם חותמת זמן, ושואל אם לתקן ידנית או לאפס לברירת מחדל. הוא גם שומר את חמש הגרסאות התקינות האחרונות כגיבוי, כך שאפשר לשחזר אחורה במקרה הצורך.
הגדרות שימושיות מוכנות להעתקה
מצב הרשאות ברירת מחדל
{
"permissions": {
"defaultMode": "acceptEdits"
}
}
הערכים האפשריים: default (=manual, שואל על הכול חוץ מקריאה), acceptEdits, plan, auto, dontAsk ו-bypassPermissions (ראו פרק 7: הרשאות ובטיחות להסבר מלא על כל מצב). שימו לב: auto ו-bypassPermissions לא נכנסים לתוקף מקובץ פרויקט (.claude/settings.json או ה-local שלו) — רק מההגדרות האישיות שלכם או מהגדרות מנוהלות.
כללי הרשאה
{
"permissions": {
"allow": ["Bash(npm run lint)", "Bash(npm run test *)"],
"deny": ["Read(./.env)", "Read(./.env.*)"]
}
}
משתני סביבה
{
"env": {
"DISABLE_AUTO_COMPACT": "1",
"ANTHROPIC_BASE_URL": "https://proxy.example.com"
}
}
ערך כאן דורס משתנה מקביל שמיוצא במעטפת שלכם. כדי לבטל ייצוא ממעטפת, קובעים ערך ריק: "". שימו לב שקובץ פרויקט לא יכול לקבוע כל משתנה — למשל CLAUDE_CONFIG_DIR או HOME תמיד יתעלמו מערך שמגיע מקובץ פרויקט, מטעמי בטיחות.
שורת מצב (statusLine)
{
"statusLine": {
"type": "command",
"command": "jq -r '"[\(.model.display_name)] \(.context_window.used_percentage // 0)% context"'",
"padding": 2
}
}
הפקודה רצה מחדש בכל רענון ומדפיסה שורה שמוצגת מתחת לפרומפט. הדוגמה כאן מציגה את שם המודל ואחוז ניצול חלון ההקשר, ודורשת jq מותקן.
תיקיית ~/.claude בקצרה
מעבר לקובצי ההגדרות, ~/.claude היא הבית של כל מה ש-Claude Code שומר במחשב שלכם:
| תיקייה / קובץ | מה יש בה |
|---|---|
projects/<project>/ | תמלולי שיחות (.jsonl) וה-Auto Memory של כל פרויקט (פרק 10: CLAUDE.md וזיכרון קבוע) |
skills/ | Skills אישיים, זמינים בכל הפרויקטים (פרק 11: Skills ופקודות מותאמות) |
agents/ | הגדרות Subagents אישיים (פרק 16: סוכנים ועבודה במקביל) |
plugins/ | Marketplaces משוכפלים ותוספים מותקנים (פרק 13: Plugins ו-Marketplaces) |
settings.json | ההגדרות האישיות שתיארנו בפרק הזה |
.credentials.json | פרטי ההתחברות שלכם |
history.jsonl | כל הפרומפטים שהקלדתם אי פעם — לחיפוש עם Ctrl+R ולהשלמת ! |
keybindings.json | קיצורי מקלדת מותאמים אישית |
רוב הקבצים האלה (תמלולים, לוגים, קבצי debug) נמחקים אוטומטית אחרי cleanupPeriodDays ימים (ברירת מחדל: 30). קבצי מצב כמו .credentials.json, זיכרון תת-סוכנים ומצב משימות ברקע נשמרים עד שמוחקים אותם ידנית. חשוב לדעת: כל התוכן הוא טקסט רגיל, לא מוצפן — הגנת מערכת ההפעלה על הקבצים היא ההגנה היחידה.
הפקודה claude project purge ~/path/to/project מוחקת את כל מה ש-Claude Code שמר על פרויקט מסוים — תמלולים, זיכרון, רשומות ב-~/.claude.json ושורות מתאימות ב-history.jsonl — אחרי הצגת תוכנית מחיקה ובקשת אישור. --dry-run מציג מה יימחק בלי למחוק בפועל.
איך ובמתי עדכונים נכנסים לתוקף
Claude Code עוקב אחרי קובצי ההגדרות ומיישם רוב השינויים על הסשן הרץ בלי לדרוש הפעלה מחדש — כולל permissions ו-hooks. יש כמה מפתחות שנקראים רק פעם אחת בהתחלה, למשל model (לשינוי באמצע סשן משתמשים ב-/model) ו-effortLevel (דרך /effort).
בדיקת מה נטען בפועל
/status מציג שורת Setting sources עם כל קבצי ההגדרות שנטענו לסשן הנוכחי, וכשיש הגדרות מנוהלות — גם איך הן הגיעו. claude doctor מציג רשומות שנדחו (JSON לא תקין, ערך לא חוקי). "Settings Error" עוצר ומציע לתקן; "Settings Warning" מדלג רק על הרשומה הפגומה וממשיך עם שאר הקובץ.
הגדרות מנוהלות ברמת הארגון
{
"availableModels": ["opus", "sonnet"],
"enforceAvailableModels": true,
"permissions": {
"deny": ["Bash(curl *)", "Read(./.env)", "Read(./secrets/**)"],
"disableBypassPermissionsMode": "disable"
},
"allowManagedPermissionRulesOnly": true,
"requiredMinimumVersion": "2.1.150",
"cleanupPeriodDays": 7
}
הגדרות מנוהלות מגיעות מקובץ managed-settings.json במיקום ברמת מערכת ההפעלה, ממדיניות MDM, או מהגדרות מנוהלות בשרת דרך קונסולת claude.ai. הן גוברות על הכול, מלבד רשימה קצרה של חריגים בטיחותיים (למשל, אם איזשהו קובץ מגדיר disableClaudeAiConnectors: true, הערך הזה מכובד גם אם ההגדרות המנוהלות אומרות אחרת). allowManagedPermissionRulesOnly גורם לכללי ההרשאה שלכם ושל הצוות להתעלם לגמרי — רק הרשימה המנוהלת קובעת.
הגדרות בסשנים בענן
סשן בענן (Claude Code on the web, או claude --cloud) רץ על שכפול טרי של המאגר, לא על המחשב שלכם. הוא קורא את .claude/settings.json המשותף (כי הוא חלק מהשכפול), אבל לא קורא את ההגדרות האישיות שלכם או את ה-local — אלה נשארים רק על המחשב. מהגדרות מנוהלות, רק הגדרות מנוהלות בשרת מגיעות לסשן בענן.
שינוי הגדרה לסשן בודד בלבד
claude --settings '{"model": "claude-opus-4-8"}'
הערך הזה חל רק על הסשן הנוכחי ולא נשמר לשום קובץ. הוא נכנס לתוקף מעל הקבצים האישיים, הפרויקט וה-local, ומתחת להגדרות מנוהלות. אפשרות דומה: דגל ייעודי כמו --model, או משתנה סביבה כמו ANTHROPIC_MODEL.
תיקון קובץ הגדרות שבור
קובצי הגדרות הם JSON קפדני — הערת // או פסיק עודף הם שגיאת תחביר. בפתיחת סשן אינטראקטיבי עם קובץ שבור, Claude Code מציג דיאלוג ומציע לתקן בעזרת קלוד, לצאת, או להמשיך בלי ההגדרות השבורות. הוספת השורה "$schema": "https://json.schemastore.org/claude-code-settings.json" בראש הקובץ נותנת השלמה אוטומטית ובדיקת תקינות בזמן עריכה ב-VS Code ועורכים דומים.
- ארבעה קבצים: אישי (
~/.claude/settings.json), פרויקט משותף (.claude/settings.json), פרויקט מקומי (.claude/settings.local.json), ומנוהל. עדיפות מהגבוה לנמוך: מנוהל, דגלי שורת פקודה, local, פרויקט, אישי. - רשימות כמו
permissions.allowמתחברות בין קבצים, לא דורסות זו את זו. /configעורך גרפית תת-קבוצה של הגדרות; עריכת JSON ישירה נותנת שליטה מלאה.~/.claude.jsonהוא קובץ מצב שקלוד מנהל בעצמו (התחברות, MCP אישי, אמון) — לא עורכים אותו ידנית, בניגוד ל-settings.json./statusמראה אילו קבצים נטענו בפועל, ו-claude doctorמראה רשומות שנדחו.
התוכן באתר נועד למידע כללי בלבד ואינו מהווה ייעוץ מקצועי, הצעה או התחייבות. נעשה מאמץ לדייק, אך ייתכנו שינויים, טעויות או חוסר עדכניות, והשימוש במידע הוא באחריות המשתמש. ככל שהדין מתיר, האתר ובעליו אינם אחראים לנזק שייגרם מהסתמכות על המידע. קישורים לאתרים חיצוניים הם באחריות אותם אתרים, וככל שקיימים קישורי שותפים, ייתכן שהאתר יקבל עמלה ללא תוספת עלות עבורכם. התוכן מוגן בזכויות יוצרים (חוק זכות יוצרים, התשס״ח-2007) ואין להעתיקו ללא רשות. שמות מותגים וסימני מסחר שייכים לבעליהם. ראו גם תקנון האתר ומדיניות הפרטיות.