עוזר האתר
שלום! איך אפשר לעזור לכם היום?
מדריך Claude Code

15. קובצי ההגדרות (settings.json)

חלק ג׳: להתאים את קלוד אליךפרק 15 מתוך 23זמן קריאה: כ-8 דקות

מאחורי כל התנהגות של 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 וגם, אם צריך שיתוף מתקדם יותר, דרך מקורות מנוהלים.

סדר העדיפויות

כשאותו מפתח מוגדר במספר מקומות, המפתח מהרמה הגבוהה ביותר מנצח. הסדר, מהגבוה לנמוך:

  1. הגדרות מנוהלות — שום דבר לא דורס אותן, מלבד חריגים בטיחותיים בודדים.
  2. דגלי שורת פקודה — כולל --settings, לסשן בודד.
  3. .claude/settings.local.json — ההגדרות האישיות שלכם לפרויקט הזה.
  4. .claude/settings.json — הגדרות הצוות שנכנסות ל-Git.
  5. ~/.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 מראה רשומות שנדחו.