TL;DR: רוב התקלות ב-Claude Code נופלות לשבע קטגוריות: אימות ומפתח API, התקנה ו-PATH, גלישת context, בקשות אישור חוזרות, שרת MCP שלא נטען, מגבלות rate limit, ונתיבים ב-WSL. כמעט כל אחת נפתרת בפקודה אחת או בשינוי קטן בקובץ הגדרות. המדריך הזה נותן לכל תקלה: סימפטום מדויק, הסיבה האמיתית מאחוריה, והתיקון עם הפקודה או ה-config שצריך להריץ בפועל.
Claude Code הוא כלי חזק, אבל כשמשהו נשבר ההודעה בטרמינל לא תמיד מסבירה מה קרה. אספנו את התקלות שאנחנו רואים הכי הרבה אצל צוותים בישראל, לפי הסדר שבו הן בדרך כלל צצות: קודם התקנה ואימות, אחר כך בעיות שוטפות של עבודה יומיומית, ולבסוף מקרי קצה של WSL ו-rate limits. לכל תקלה יש מבנה קבוע - סימפטום, סיבה, תיקון - כדי שתוכלו לקפוץ ישר למה שרלוונטי לכם. אם אתם עדיין לא מותקנים, התחילו ממדריך ההתקנה והפקודות המלא וחזרו לכאן כשמשהו משתבש.
1. שגיאת אימות ומפתח API
BLUF: הודעות כמו Invalid API key או Authentication failed כמעט תמיד נובעות ממפתח שפג, ממשתנה סביבה שלא נטען, או מבלבול בין הרשמה ל-Claude.ai לבין גישת API. התיקון הוא לאמת מחדש דרך הזרימה הרשמית או להגדיר את המפתח בצורה נקייה.
סימפטום
בהרצת פקודה מופיע Error: Authentication failed או Invalid x-api-key, ו-Claude Code לא מבצע שום קריאה.
סיבה
שלוש סיבות נפוצות: התחברתם עם חשבון Claude.ai אבל הפרויקט מצפה למפתח API של Console, המפתח מוגדר ב-shell אחר מזה שממנו אתם מריצים, או שהמפתח נמחק בצד ה-Console.
תיקון
- התחברו מחדש דרך הזרימה המובנית - זו הדרך המומלצת שלא דורשת ניהול מפתח ידני:
claude
# בתוך הסשן:
/login
- אם אתם עובדים מול API key מפורש, הגדירו אותו ב-shell profile ולא רק בסשן הנוכחי:
echo 'export ANTHROPIC_API_KEY="sk-ant-..."' >> ~/.zshrc
source ~/.zshrc
- ודאו שהמפתח באמת נטען לתהליך:
echo ${ANTHROPIC_API_KEY:0:12}
אם השורה חוזרת ריקה, המשתנה לא הגיע ל-shell הנוכחי - כנראה הוספתם אותו ל-~/.bashrc אבל אתם ב-zsh, או להפך. שימו לב: לעולם אל תכניסו את המפתח לקוד או ל-repo. אם מפתח דלף בטעות, בטלו אותו בצד ה-Console וצרו חדש.
2. הפקודה claude לא נמצאת - בעיית התקנה ו-PATH
BLUF: command not found: claude אחרי התקנה מוצלחת פירושו שהתיקייה של הבינארי לא נמצאת ב-PATH. התיקון הוא להוסיף את נתיב ה-global bin של מנהל החבילות ל-shell profile.
סימפטום
ההתקנה הסתיימה בהצלחה, אבל הרצת claude מחזירה command not found.
סיבה
npm או מנהל החבילות שהתקין את הכלי שם את הבינארי בתיקייה שלא רשומה ב-PATH של ה-shell. זה נפוץ במיוחד כשמתקינים גלובלית בלי הרשאות מתאימות או כשה-prefix של npm הותאם ידנית.
תיקון
- מצאו איפה נמצא הבינארי הגלובלי:
npm config get prefix
# למשל /Users/you/.npm-global
- הוסיפו את תיקיית ה-bin שלו ל-PATH:
echo 'export PATH="$(npm config get prefix)/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
- ודאו שהפקודה נמצאת עכשיו:
which claude && claude --version
אם which claude מחזיר נתיב אבל הגרסה ישנה, כנראה יש שתי התקנות. הריצו npm uninstall -g על הישנה או השתמשו במדריך ההתקנה לניקוי מלא והתקנה נקייה.
3. גלישת context - Prompt too long
BLUF: כשהסשן מתמלא, Claude Code מתחיל לאבד פרטים מתחילת השיחה או מחזיר context length exceeded. הפתרון הוא לנהל את חלון ההקשר באופן פעיל עם /clear, /compact ו-CLAUDE.md, במקום להעמיס הכל לסשן אחד.
סימפטום
Claude "שוכח" קבצים שהזכרתם קודם, חוזר על עצמו, או מחזיר שגיאת אורך. התשובות נעשות פחות מדויקות ככל שהסשן מתארך.
סיבה
כל קובץ שקראתם, כל פלט טרמינל וכל הודעה נשמרים בחלון ההקשר. ברגע שמתקרבים למגבלה, מידע ישן נדחק החוצה. זו לא תקלה - זו מגבלה מובנית של context window.
תיקון
- כשמסיימים משימה ועוברים לחדשה, נקו את ההקשר:
/clear
- אם אתם באמצע משימה ארוכה ורוצים לשמור על החוט אבל לצמצם נפח, השתמשו ב-compact שמסכם את השיחה עד כה:
/compact
- הכניסו את ההקשר הקבוע של הפרויקט לקובץ CLAUDE.md בשורש ה-repo, כדי ש-Claude יטען אותו אוטומטית בכל סשן במקום שתסבירו כל פעם מחדש:
# CLAUDE.md
- Stack: React 19 + TypeScript + Vite + Tailwind
- הרץ בדיקות עם: npm test
- אל תיגע בקבצים תחת /legacy
- למשימות גדולות שמצריכות הרבה קבצים, פצלו לתתי-משימות דרך subagents - כל אחד רץ בהקשר נפרד ומחזיר רק את התוצאה, כך שההקשר הראשי נשאר נקי.
4. יותר מדי בקשות אישור
BLUF: אם Claude Code עוצר ומבקש אישור על כל פקודה, זה מאט אתכם מאוד. אפשר להגדיר allowlist של פעולות בטוחות ב-settings.json, או להשתמש בhooks כדי לשלוט בזה בצורה דטרמיניסטית.
סימפטום
כל git status, כל ls, כל קריאת קובץ מפעילה שאלת אישור. העבודה הופכת ללחיצת Enter אינסופית.
סיבה
כברירת מחדל Claude Code שמרני ומבקש אישור על פעולות שיש להן תופעות לוואי. ללא הגדרת הרשאות, גם פעולות קריאה בטוחות נכנסות לרשימת האישורים.
תיקון
- הוסיפו allowlist לפעולות קריאה בטוחות ב-
.claude/settings.jsonשל הפרויקט:
{
"permissions": {
"allow": [
"Bash(git status)",
"Bash(git diff:*)",
"Bash(npm test)",
"Read(*)"
]
}
}
- לבקרה מתקדמת יותר, השתמשו ב-hook מסוג PreToolUse. hook שכזה יכול לחסום פקודה מסוכנת (יציאה עם exit code 2 חוסמת), או לאשר אוטומטית משפחה שלמה של פקודות בלי להעמיס allowlist:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [{ "type": "command", "command": ".claude/guard.sh" }]
}
]
}
}
הבדל חשוב: allowlist מאשר; hook יכול גם לחסום, גם לשנות, וגם להזריק הקשר. לרוב הצוותים allowlist על פעולות קריאה מספיק כדי להיפטר מ-90% מההפרעות. הימנעו מלאשר פעולות הרסניות באופן גורף - אישור ידני על מחיקות ועל git push הוא שכבת הגנה, לא מטרד.
5. שרת MCP לא נטען
BLUF: כש-Claude Code לא רואה את ה-tools של שרת MCP, הבעיה כמעט תמיד בקובץ ההגדרות, בפקודת ההפעלה, או ב-token חסר. בדקו את סטטוס השרתים עם הפקודה המובנית ואמתו את ה-config.
סימפטום
הגדרתם שרת MCP אבל ה-tools שלו לא מופיעים, או שמופיעה שגיאת MCP server failed to start.
סיבה
JSON לא תקין בקובץ ההגדרות, נתיב שגוי לפקודת ההפעלה, משתנה סביבה חסר (למשל token), או שרת שדורש התקנה מקדימה שלא בוצעה.
תיקון
- בדקו את סטטוס השרתים מתוך Claude Code:
/mcp
הפקודה מציגה אילו שרתים מחוברים ואילו נכשלו, כולל הודעת השגיאה שלהם.
- אמתו שה-config תקין ושהפקודה בפועל רצה בטרמינל שלכם:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..." }
}
}
}
- הריצו את פקודת ההפעלה ידנית כדי לראות אם היא נופלת עוד לפני Claude Code:
npx -y @modelcontextprotocol/server-github
אם זה נופל כאן, הבעיה בשרת עצמו או ב-token, לא ב-Claude Code. פירוט מלא של הגדרה ופתרון תקלות MCP נמצא במדריך שרתי MCP.
6. מגבלות rate limit
BLUF: הודעות 429 או rate limit exceeded פירושן שחרגתם ממכסת הבקשות לפרק זמן. התיקון הוא להאט, לצמצם את נפח הבקשות דרך ניהול הקשר, ולתכנן משימות כבדות בצורה חכמה יותר.
סימפטום
הופעת 429 Too Many Requests או rate limit exceeded, לרוב באמצע משימה אינטנסיבית עם הרבה קריאות רצופות.
סיבה
כל בקשה נספרת מול מכסה. סשנים עם קבצים ענקיים, לולאות ארוכות של קריאה-כתיבה, או ריצות מקבילות של כמה סוכנים מגיעים למכסה מהר.
תיקון
- המתינו את הזמן שההודעה מציינת לפני שאתם מנסים שוב - ניסיון חוזר מיידי רק מאריך את החסימה.
- צמצמו את נפח ההקשר. פחות טוקנים לבקשה פירושו יותר בקשות לפני שמגיעים למכסה - נהלו הקשר עם
/clearו-CLAUDE.md כפי שתואר בסעיף 3. - אחדו פעולות: במקום לבקש מ-Claude לקרוא עשרה קבצים אחד-אחד, בקשו סקירה ממוקדת של המבנה. פחות סבבים, פחות בקשות.
- פצלו משימות ענק לפגישות קצרות עם הפסקות, במקום ריצה אחת ארוכה שמפציצה את ה-API ברצף.
7. בעיות נתיבים ב-WSL
BLUF: על Windows דרך WSL, השגיאה הנפוצה היא ערבוב בין נתיבי Windows לנתיבי Linux. הכלל: עבדו תמיד בתוך מערכת הקבצים של Linux, לא תחת /mnt/c.
סימפטום
פקודות נכשלות עם No such file or directory למרות שהקובץ קיים, או שהביצועים איטיים בצורה קיצונית.
סיבה
Claude Code רץ בסביבת Linux של WSL, אבל הפרויקט יושב תחת /mnt/c/Users/... - שזה למעשה כונן Windows ממופה. ה-I/O דרך הגשר הזה איטי, ופורמט הנתיבים מתנגש.
תיקון
- העבירו את הפרויקט למערכת הקבצים המקורית של Linux:
cp -r /mnt/c/Users/you/project ~/project
cd ~/project
- ודאו שאתם מפעילים את Claude Code מתוך WSL, לא מ-PowerShell או CMD:
wsl
cd ~/project
claude
- אם אתם חייבים לעבוד עם קבצים על כונן Windows, השתמשו בנתיב WSL התקין (
/mnt/c/...) ולא בפורמט של Windows (C:\...). עדיין, לביצועים ולתאימות, פרויקט שיושב תחת~/תמיד יעבוד טוב יותר.
שגיאות נפוצות בפתרון תקלות עצמו
BLUF: לפני שצוללים לתיקון מורכב, שווה לפסול כמה טעויות בסיסיות שגורמות ל"תקלות" מדומות.
- שכחתם
source. ערכתם את~/.zshrcאבל לא הרצתםsource ~/.zshrcאו פתחתם טרמינל חדש. השינוי פשוט לא נטען. - shell לא נכון. הוספתם משתנה ל-
~/.bashrcאבל אתם ב-zsh. בדקו עםecho $SHELL. - גרסה ישנה. באג שכבר תוקן. הריצו
claude --versionוהשוו לגרסה העדכנית לפני שאתם מחפשים עמוק יותר. - JSON שבור. פסיק מיותר או מרכאות חסרות ב-settings.json שוברים את כל הקובץ בשקט. הריצו את התוכן דרך מאמת JSON.
- בלבול בין הגדרת פרויקט למשתמש.
.claude/settings.jsonבפרויקט גובר על~/.claude/settings.json. אם הגדרה לא "תופסת", בדקו מי דורס את מי.
מתי כדאי להביא עזרה
BLUF: רוב התקלות כאן נפתרות לבד תוך דקות. אבל כשתקלה חוזרת גם אחרי תיקון, כשהיא נובעת מארכיטקטורה שבורה ולא מהגדרה, או כשפרויקט "vibe coded" מתחיל להישבר בכל כיוון - זה הזמן לבדיקה עמוקה יותר.
אם אתם מוצאים את עצמכם נלחמים באותן שגיאות שוב ושוב, לרוב הבעיה האמיתית אינה ב-Claude Code אלא בקוד או במבנה הפרויקט שמתחתיו. הצוות של VibeScale מתמחה בדיוק בזה - לקחת פרויקט שנבנה מהר ולייצב אותו לפרודקשן. אפשר להתחיל משירות החילוץ שלנו או לכתוב לנו ישירות בוואטסאפ.
למי שרוצה להעמיק, אלה המשאבים המשלימים:
