מדריך קלוד קוד בעברית

תיעוד 50

הרצת Claude Code באופן תכנותי

השתמש ב-Agent SDK כדי להריץ את Claude Code באופן תכנותי מתוך ה-CLI, מ-Python או מ-TypeScript.

ה-Agent SDK מעניק לך את אותם הכלים, לולאת הסוכן וניהול ההקשר שמניעים את Claude Code. הוא זמין כ-CLI עבור סקריפטים ו-CI/CD, או כחבילות Python ו-TypeScript לשליטה תכנותית מלאה.

כדי להריץ את Claude Code במצב לא אינטראקטיבי, העבר את -p עם הפרומפט שלך ואת אפשרויות ה-CLI שאתה צריך:

claude -p "Find and fix the bug in auth.py" --allowedTools "Read,Edit,Bash"

דף זה מכסה את השימוש ב-Agent SDK באמצעות ה-CLI (claude -p). עבור חבילות ה-SDK של Python ו-TypeScript עם פלטים מובנים, קריאות חוזרות לאישור כלים ואובייקטי הודעה מקוריים, ראה את התיעוד המלא של Agent SDK.

#שימוש בסיסי

הוסף את הדגל -p (או --print) לכל פקודת claude כדי להריץ אותה באופן לא אינטראקטיבי. לא כל אפשרות CLI משתלבת עם -p. Claude Code דוחה את --bg, ודוחה את --cloud עם תיאור משימה, עם שגיאה שמציינת את ההתנגשות. הדגל --cloud עם מזהה הפעלה (session ID) ו--p במקום זאת מוסיף הודעה לתור של אותה הפעלת ענן ויוצא. אפשרויות שתשלב לעיתים קרובות עם -p כוללות:

דוגמה זו שואלת את Claude שאלה לגבי בסיס הקוד שלך ומדפיסה את התשובה:

claude -p "What does the auth module do?"

Claude Code יוצא עם קוד 0 בהצלחה ועם קוד שאינו אפס כאשר ההרצה נכשלת, כך שהסקריפטים שלך יכולים להסתעף לפי סטטוס היציאה. אם אתה מעביר דגל לא חוקי, Claude Code מדווח על השגיאה ל-stderr לפני תחילת ההרצה. כאשר מתרחש כשל בתוך ההרצה, כגון אימות חסר, Claude Code מדפיס את הכשל כתוצאה ב-stdout.

#התחלה מהירה יותר עם מצב bare

הוסף את --bare כדי לקצר את זמן העלייה על ידי דילוג על גילוי אוטומטי של hooks, כישורים (skills), פקודות מותאמות אישית, סוכני משנה, תוספים (plugins), שרתי MCP, זיכרון אוטומטי ו-CLAUDE.md. בלעדיו, claude -p טוען את אותו הקשר שהפעלה אינטראקטיבית הייתה טוענת, כולל כל מה שמוגדר בספריית העבודה או ב-~/.claude.

מצב bare שימושי עבור CI ועבור סקריפטים שבהם אתה זקוק לאותה תוצאה בכל מחשב. Hook ב-~/.claude של חבר צוות או שרת MCP ב-.mcp.json של הפרויקט לא ירוצו, משום שמצב bare לעולם אינו קורא אותם. ספרייה שאתה מציין באמצעות --add-dir היא חריג חלקי: מצב bare טוען כישורים מתיקיית ה-.claude/skills/ שלה, אך עדיין מדלג על תיקיות ה-.claude/commands/ וה-.claude/agents/ שלה. כישורים מספריות נוספות מכסה מה נטען ומה לא נטען.

ללא --bare, הפעלת -p מריצה את ה-hooks ב-.claude/settings.json של הפרויקט ומחברת את השרתים ב-.mcp.json שלו, אפילו בתיקייה שמעולם לא אישרת לתת בה אמון. הפעלת -p אינה מציגה תיבת שיח של אמון בסביבת העבודה ואינה מציגה בקשת אישור לכל שרת. מה רץ לפני שאתה נותן אמון בתיקייה מכסה כל סוג של תוכן מאגר תחת -p וכיצד למנוע את הפעלתו.

דוגמה זו מריצה משימת סיכום חד פעמית במצב bare ומאשרת מראש את הכלי Read כדי שהקריאה תושלם ללא בקשת הרשאה. הגדר את ANTHROPIC_API_KEY לפני הרצתה, משום שמצב bare אינו משתמש בהתחברות המנוי שלך:

claude --bare -p "Summarize README.md" --allowedTools "Read"

במצב bare, Claude Code לעולם אינו קורא אישורי OAuth או את ה-keychain של המערכת. עבור ה-API של Anthropic, הגדר את ANTHROPIC_API_KEY בסביבה, עם מפתח שנוצר ב-Claude Console, או ספק apiKeyHelper ב-JSON של --settings. ספקי Amazon Bedrock, Agent Platform של Google Cloud ו-Microsoft Foundry ממשיכים לקרוא את אישורי הספק שלהם כרגיל.

במצב bare יש ל-Claude גישה לכלים Bash, קריאת קבצים ועריכת קבצים. העבר כל הקשר שאתה צריך באמצעות דגל:

כדי לטעוןהשתמש ב
תוספות לפרומפט המערכת--append-system-prompt, --append-system-prompt-file
הגדרות--settings <file-or-json>
שרתי MCP--mcp-config <file-or-json>
סוכנים מותאמים אישית--agents <json>
תוסף--plugin-dir <path>, --plugin-url <url>

הערה: --bare הוא המצב המומלץ עבור קריאות מתוך סקריפטים ומתוך SDK, ויהפוך לברירת המחדל עבור -p בגרסה עתידית.

#משימות רקע בעת יציאה

אם Claude מתחיל משימת Bash ברקע במהלך הרצת claude -p, למשל שרת פיתוח או בנייה במעקב (watch build), אותו מעטפת shell מופסקת כחמש שניות לאחר ש-Claude החזיר את התוצאה הסופית שלו ו-stdin נסגר. תקופת החסד מאפשרת למשימה שמסתיימת מיד לאחר קבלת התוצאה עדיין להעביר את הפלט שלה.

אם Claude מתחיל סוכן משנה או תהליך עבודה (workflow) ברקע, claude -p נשאר פתוח במקום זאת עד שהעבודה הזו מסתיימת, משום שהתוצאה שלה היא חלק מהפלט הסופי.

כברירת מחדל ההמתנה מסתיימת לאחר 10 דקות של המתנה רצופה ללא פעילות (idle), כך שסוכן משנה או תהליך עבודה שנתקעו אינם יכולים להחזיק את התהליך פתוח ללא הגבלה. בנקודה זו Claude Code עוצר את כל מה שעדיין רץ ומשליך את התוצאה החלקית שלו. כדי לשנות את המגבלה, הגדר את CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS, או הגדר אותו ל-0 כדי להמתין ללא הגבלה.

אם Claude מתחיל מעקב Monitor במהלך הרצת claude -p, הרי ש-Claude Code ממתין למעקב עד לפקיעת הזמן שלו או עד שמגבלת עשר הדקות מסיימת את ההמתנה, המוקדם מביניהם. בזמן שהוא ממתין, Claude ממשיך להגיב למה שהמעקב מדווח. כברירת מחדל, מעקב מגיע לפקיעת זמן חמש דקות לאחר ש-Claude מפעיל אותו.

#עצירת הרצה באמצעות SIGTERM

אם תעצור הרצת claude -p באמצעות SIGTERM, למשל עם kill או ממנהל תהליכים (process supervisor), Claude Code יוצא עם קוד 143. Claude Code משאיר את התור (turn) שהיה בעיצומו כלא גמור ואינו רושם תוצאה עבורו. כדי לסיים את התור במקום זאת, שלח SIGINT, או קרא ל-interrupt() של ה-Agent SDK, לפני שתעצור את התהליך.

בעת קבלת SIGTERM, מסיים Claude Code את עץ התהליכים של כל פקודת Bash שעדיין רצה. לאחר מכן Claude Code מריץ hooks של SessionEnd ויוצא. במהלך היציאה, Claude Code אינו מתחיל קריאה חדשה לכלי, אינו שולח בקשה חדשה למודל, ואינו מריץ שום hook מלבד SessionEnd. אם ההרצה הייתה באמצע פקודה או המתינה לבקשת אישור הרשאה כאשר האות הגיע, Claude Code מטפל בשלב זה באופן הבא:

  • הרצת פקודה: Claude Code רושם את הפקודה כמחוסלת (killed) בהפעלה.
  • המתנה לתשובה לבקשת הרשאה: אם אתה שולח SIGTERM לתהליך, Claude Code משאיר את הבקשה ללא מענה. אם התוכנית שלך סוגרת את ההפעלה באמצעות ה-Agent SDK, ה-SDK מסיים את הקלט של Claude Code לפני שליחת אות כלשהו, ו-Claude Code מבטל את הבקשה ברגע שהקלט מסתיים.

כאשר אתה מחדש את ההפעלה, Claude Code ממשיך את התור ש-SIGTERM השאיר לא גמור.

#דוגמאות

דוגמאות אלו מדגישות דפוסי CLI נפוצים. במקומות שבהם פקודה מציינת שם קובץ כגון auth.py או build-error.txt, החלף אותו בקובץ מהפרויקט שלך. בסביבות CI או בסביבות סקריפטים אחרות, הוסף את --bare כדי ש-Claude Code יתחיל לפעול מבלי לטעון את ה-hooks, התוספים, הזיכרון האוטומטי או ה-CLAUDE.md של המחשב המארח.

#הזרמת נתונים (Pipe) דרך Claude

מצב לא אינטראקטיבי קורא מ-stdin, כך שתוכל להזרים נתונים פנימה ולהפנות את התגובה החוצה כמו בכל כלי שורת פקודה אחר.

דוגמה זו מזרימה יומן בנייה (build log) לתוך Claude וכותבת את ההסבר לקובץ:

cat build-error.txt | claude -p 'concisely explain the root cause of this build error' > output.txt

עם --output-format json, תוכן התגובה כולל את total_cost_usd ופירוט עלויות לפי מודל, כך שקוראים מתוך סקריפט יכולים לעקוב אחר ההוצאות לכל הפעלה מבלי לעיין ב-לוח מחווני השימוש. שני הנתונים הם הערכות בצד הלקוח ועשויים להיות שונים מהחשבון בפועל.

הערה: קלט מוזרם ב-stdin מוגבל ל-10MB. אם תחרוג מהמגבלה, Claude Code יוצא עם שגיאה ברורה וסטטוס שאינו אפס. כדי לעבוד עם קלטים גדולים יותר, כתוב את התוכן לקובץ והתייחס לנתיב הקובץ בפרומפט שלך במקום להזרים אותו.

אם Claude Code אינו מצליח לקרוא מ-stdin, למשל משום שהתהליך שהפעיל אותו ניתק את הצד שלו, Claude Code מדפיס אזהרה ל-stderr וממשיך עם הפרומפט משורת הפקודה. לפני גרסה v2.1.211, מצב של stdin בלתי קריא ב-Windows גרם לקריסת ההפעלה או ליציאה שקטה ללא כל פלט.

#הוספת Claude לסקריפט בנייה

תוכל לעטוף קריאה לא אינטראקטיבית בתוך סקריפט כדי להשתמש ב-Claude כבודק (linter) או סוקר הייעודי לפרויקט.

סקריפט package.json זה מזרים את ה-diff מול main לתוך Claude ומבקש ממנו לדווח על שגיאות הקלדה. הזרמת ה-diff פירושה ש-Claude אינו זקוק להרשאת Bash כדי לקרוא אותו, והמירכאות הכפולות עם תווי מילוט שומרות על הסקריפט נייד עבור Windows:

{
  "scripts": {
    "lint:claude": "git diff main | claude -p \"you are a typo linter. for each typo in this diff, report filename:line on one line and the issue on the next. return nothing else.\""
  }
}

הרץ אותו באמצעות npm run lint:claude.

#קבלת פלט מובנה

השתמש ב---output-format כדי לשלוט באופן החזרת התגובות:

  • text (ברירת מחדל): פלט טקסט רגיל
  • json: פלט JSON מובנה עם תוצאה, מזהה הפעלה ומטא-נתונים
  • stream-json: פלט JSON מופרד בשורות חדשות עבור הזרמה בזמן אמת

דוגמה זו מחזירה סיכום פרויקט כ-JSON עם מטא-נתונים של ההפעלה, כאשר תוצאת הטקסט נמצאת בשדה result:

claude -p "Summarize this project" --output-format json

כדי לקבל פלט התואם לסכמה ספציפית, השתמש ב---output-format json יחד עם --json-schema והגדרת JSON Schema. התגובה כוללת מטא-נתונים על הבקשה (מזהה הפעלה, שימוש וכו') כאשר הפלט המובנה נמצא בשדה structured_output.

דוגמה זו מחלצת שמות פונקציות ומחזירה אותם כמערך של מחרוזות:

claude -p "Extract the main function names from auth.py" \
  --output-format json \
  --json-schema '{"type":"object","properties":{"functions":{"type":"array","items":{"type":"string"}}},"required":["functions"]}'

אם הערך אינו JSON Schema תקין, claude יוצא עם Error: --json-schema is not a valid JSON Schema ולאחריו האבחון של הבודק. Claude Code מקבל סכמות המשתמשות במילת המפתח format, כגון "format": "email", אך מתייחס ל-format כהערה בלבד ואינו אוכף אותה. לפני גרסה v2.1.205, Claude Code התעלם בשקט מסכמה לא חוקית והחזיר טקסט לא מובנה, והתייחס לכל סכמה המכילה format כבלתי חוקית.

טיפ: השתמש בכלי כמו jq כדי לנתח את התגובה ולחלץ שדות ספציפיים:

#חילוץ תוצאת הטקסט

claude -p "Summarize this project" --output-format json | jq -r '.result'

#חילוץ פלט מובנה

claude -p "Extract function names from auth.py"
--output-format json
--json-schema '{"type":"object","properties":{"functions":{"type":"array","items":{"type":"string"}}},"required":["functions"]}'
| jq '.structured_output' ```

#הזרמת תגובות

השתמש ב---output-format stream-json יחד עם --verbose ו---include-partial-messages כדי לקבל אסימונים (tokens) בזמן יצירתם. כל שורה היא אובייקט JSON המייצג אירוע:

claude -p "Explain recursion" --output-format stream-json --verbose --include-partial-messages

השורה האחרונה בהזרמה היא הודעת result עם טקסט התגובה הסופי, העלות ומטא-נתונים של ההפעלה.

אם הצרכן שלך קורא את ההזרמה באיטיות, Claude Code ממתין להתרוקנות הפלט שבתור לפני היציאה, תוך התאמת זמן ההמתנה לכמות שעדיין נותרה בתור, עם תקרה של 30 שניות. לפני גרסה v2.1.214 ההמתנה ליציאה הוגבלה לכשתי שניות, מה שיכול היה לקטוע את סופה של תגובה גדולה.

הדוגמה הבאה משתמשת ב-jq כדי לסנן שינויי טקסט (text deltas) ולהציג רק את הטקסט המוזרם. הדגל -r פולט מחרוזות גולמיות (ללא מירכאות) ו--j מחבר ללא שורות חדשות כך שהאסימונים מוזרמים ברצף:

claude -p "Write a poem" --output-format stream-json --verbose --include-partial-messages | \
  jq -rj 'select(.type == "stream_event" and .event.delta.type? == "text_delta") | .event.delta.text'

עבור הזרמה תכנותית עם קריאות חוזרות (callbacks) ואובייקטי הודעה, ראה הזרמת תגובות בזמן אמת בתיעוד ה-Agent SDK.

#מעקב אחר הודעות של סוכני משנה

הודעות מסוכני משנה מופיעות בהזרמה כהודעות assistant ו-user אשר שדה ה-parent_tool_use_id שלהן הוא המזהה של קריאת הכלי שהפעילה את סוכן המשנה. הודעות מהשיחה הראשית נושאות ערך null בשדה זה.

כברירת מחדל, Claude Code פולט רק בלוקים מסוג tool_use ו-tool_result של סוכני משנה. העבר את --forward-subagent-text או הגדר את CLAUDE_CODE_FORWARD_SUBAGENT_TEXT כדי לפלוט גם בלוקים של טקסט ומחשבה (thinking) של סוכני משנה, כדי שתוכל לשחזר את התמליל של כל סוכן משנה. אפשרות זו דורשת את Claude Code בגרסה v2.1.211 ומעלה.

כאשר אתה מפעיל אחת משתי האפשרויות, Claude Code מעביר הלאה הודעות מסוכני משנה בכל עומק קינון: כאשר סוכן משנה יוצר סוכן משנה משלו, ההודעות של סוכן המשנה המקונן נושאות בשדה parent_tool_use_id את המזהה של קריאת כלי ה-Agent שיצרה אותו, כך שתוכל לבנות מחדש את עץ הקינון המלא על ידי מעקב אחר מזהים אלו. לפני גרסה v2.1.219, הודעות מסוכני משנה מקוננים לא הופיעו בהזרמה.

#טיפול בניסיונות חוזרים של ה-API

כאשר בקשת API נכשלת עם שגיאה שניתן לנסות שוב, Claude Code פולט אירוע system/api_retry לפני הניסיון החוזר. בגרסה v2.1.246 ומעלה, כאשר שגיאת 401 או 403 דוחה אישור מסוג apiKeyHelper, Claude Code מבצע את שני הניסיונות החוזרים הראשונים בשקט ללא אירוע, ולאחר מכן פולט את האירוע כרגיל החל מהניסיון החוזר השלישי ברצף ואילך. הניסיונות השקטים עדיין נספרים לתוך attempt. תוכל להשתמש באירוע כדי להציג את התקדמות הניסיונות החוזרים בממשק שלך.

שדהסוגתיאור
type"system"סוג ההודעה
subtype"api_retry"מזהה זאת כאירוע ניסיון חוזר
attemptintegerמספר הניסיון הנוכחי, החל מ-1
max_retriesintegerסך הניסיונות החוזרים המותרים
retry_delay_msintegerמילישניות עד הניסיון הבא
error_statusinteger או nullקוד סטטוס HTTP, או null עבור שגיאות חיבור ללא תגובת HTTP
no_responseobject, אופציונליקיים רק כאשר הניסיון שנכשל לא קיבל כותרות תגובה בזמן. השדה waited_ms מציין כמה זמן המתין אותו ניסיון, והשדה retry_wait_ms מציין כמה זמן ימתין הניסיון החוזר. באירועים אלו, max_retries משקף את הניסיון החוזר היחיד שסיבה זו מקבלת בדרך כלל, ולא את התקציב של ההפעלה כולה. דורש את Claude Code בגרסה v2.1.261 ומעלה
errorstringקטגוריית שגיאה: authentication_failed, oauth_org_not_allowed, billing_error, rate_limit, overloaded, invalid_request, model_not_found, server_error, max_output_tokens, או unknown
uuidstringמזהה אירוע ייחודי
session_idstringההפעלה שאליה שייך האירוע

#קריאת מטא-נתונים של ההפעלה

אירוע ה-system/init מדווח על מטא-נתונים של ההפעלה כולל המודל, הכלים, שרתי ה-MCP והתוספים שנטענו. זהו האירוע הראשון בהזרמה אלא אם מקדימים אותו אירועי עלייה (startup):

  • אירועי plugin_install, כאשר CLAUDE_CODE_SYNC_PLUGIN_INSTALL מוגדר.
  • אירועי hook_started, hook_progress ו-hook_response, בזמן ש-hook מוגדר מסוג SessionStart או Setup פועל. אלו מוזרמים בזמן שה-hook מייצר אותם. Claude Code בגרסאות v2.1.169 עד v2.1.203 העביר אותם במקבץ אחד לאחר שה-hook הסתיים, עדיין לפני system/init. גרסה v2.1.204 החזירה את ההעברה החיה.

האירוע נושא גם מערך מחרוזות אופציונלי בשם capabilities, המציין את התנהגויות הפרוטוקול שגרסת Claude Code זו מיישמת, כגון interrupt_receipt_v1 או interrupt_cancel_queued_v1. בדוק אותו לצורך זיהוי תכונות במקום להשוות מחרוזות גרסה, והתעלם מערכים שאינך מזהה. השדה דורש את Claude Code בגרסה v2.1.205 ומעלה ואינו קיים בגרסאות מוקדמות יותר. ראה SDKSystemMessage לרשימת היכולות.

#הכשלת CI כאשר תוסף או שרת MCP אינם נטענים

השתמש בשדות התוספים באירוע ה-system/init כדי לזהות תוסף שלא נטען:

שדהסוגתיאור
pluginsarrayתוספים שנטענו בהצלחה, כל אחד עם name ו-path
plugin_errorsarrayשגיאות בזמן טעינת תוספים, כל אחת עם plugin, type ו-message. כולל גרסאות תלות שלא סופקו וכשלי טעינה של --plugin-dir כגון נתיב חסר או ארכיון לא חוקי. תוספים מושפעים מורדים בדרגה ונעדרים מ-plugins. המפתח מושמט כאשר אין שגיאות

השתמש בשדות של שרת ה-MCP באותו האופן. כאשר אתה מעביר את --mcp-config עם -p, Claude Code ממתין לשרתים שעדיין ממתינים לפני הרצת התור הראשון, עד לזמן הקצוב לעלייה MCP_TIMEOUT, 30 שניות כברירת מחדל. שרת מרוחק עם רשימת כלים שמורה במטמון מדלג על ההמתנה, מציג pending ב-system/init, ומתחבר בקריאת הכלי הראשונה שלו. ההמתנה דורשת את Claude Code בגרסה v2.1.221 ומעלה.

Claude Code מאמת כל רשומת --mcp-config בעת ההפעלה ומדלג על רשומות שנכשלות באימות, למשל רשומת url ללא type. ההרצה ממשיכה ומסתיימת בצורה נקייה, לכן בדוק שדות אלו כדי לזהות שרת שמעולם לא נטען:

שדהסוגתיאור
mcp_serversarrayשרתי MCP בהפעלה, כל אחד עם name ו-status
mcp_server_errorsarrayרשומות --mcp-config שדולגו עקב אימות הגדרות, כל אחת עם name, type ו-message. השדה type הוא קטגוריית דילוג כגון unknown_type, url_missing_type, invalid_config או reserved_name. יש להתייחס לערכים שאינך מזהה כדילוג כללי. שרתים מושפעים נעדרים מ-mcp_servers. המפתח מושמט כאשר אין שגיאות, כך ששער CI יכול להיכשל על מערך שאינו ריק. דורש את Claude Code בגרסה v2.1.219 ומעלה

כאשר אתה מריץ את הפקודה ידנית בטרמינל, Claude Code גם מדפיס אזהרת עלייה ל-stderr, כגון Warning: 1 MCP server skipped due to invalid config:, ולאחריה הסיבה לכל רשומה שדולגה. כאשר אתה מפנה את stderr, או כאשר תוכנית כגון מריץ CI או מארח SDK לוכדת אותו, Claude Code אינו מדפיס אזהרה ומדווח על הרשומות שדולגו רק בשדה mcp_server_errors. האזהרה דורשת את Claude Code בגרסה v2.1.219 ומעלה.

#מעקב אחר התקנות תוספים

כאשר CLAUDE_CODE_SYNC_PLUGIN_INSTALL מוגדר, Claude Code פולט אירועי system/plugin_install בזמן שתוספי חנות (marketplace) מותקנים לפני התור הראשון. השתמש בהם כדי להציג את התקדמות ההתקנה בממשק המשתמש שלך.

שדהסוגתיאור
type"system"סוג ההודעה
subtype"plugin_install"מזהה זאת כאירוע התקנת תוסף
status"started", "installed", "failed", או "completed"הערכים started ו-completed תוחמים את ההתקנה הכוללת. הערכים installed ו-failed מדווחים על חנויות בודדות
namestring, אופציונלישם החנות, קיים ב-installed וב-failed
errorstring, אופציונליהודעת כשל, קיימת ב-failed
uuidstringמזהה אירוע ייחודי
session_idstringההפעלה שאליה שייך האירוע

#אישור אוטומטי של כלים

השתמש ב---allowedTools כדי לאפשר ל-Claude להשתמש בכלים מסוימים ללא בקשת אישור. דוגמה זו מריצה חבילת בדיקות ומתקנת כשלים, ומאפשרת ל-Claude לבצע פקודות Bash ולקרוא או לערוך קבצים מבלי לבקש רשות:

claude -p "Run the test suite and fix any failures" \
  --allowedTools "Bash,Read,Edit"

כדי לקבוע קו בסיס לכל ההפעלה במקום לפרט כלים בודדים, העבר מצב הרשאות. עבור -p, מצב ההרשאות ההתחלתי המובנה הוא Manual בכל התוכניות, לכן העבר את מצב ההרשאות שאתה רוצה:

  • auto: העבר --permission-mode auto כדי שמסווג יבדוק את רוב הפעולות במקומך
  • dontAsk: Claude Code דוחה כל דבר שאינו מופיע בכללי permissions.allow שלך או בערכת הפקודות לקריאה בלבד, דבר השימושי להרצות CI נעולות ומאובטחות. AskUserQuestion, כלי קישור שהארגון שלך הגדיר כ-ask, וכלי MCP המסומנים כ-requiresUserInteraction נדחים גם כאשר כלל הרשאה תואם
  • acceptEdits: Claude כותב קבצים ללא בקשת אישור, ו-Claude Code מאשר אוטומטית פקודות מערכת קבצים נפוצות כגון mkdir, touch, mv ו-cp. פעולות שאף מצב אינו מאשר אוטומטית עדיין חלות. מלבד ערכת הפקודות לקריאה בלבד, פקודות מעטפת אחרות ובקשות רשת עדיין זקוקות לרשומת --allowedTools או לכלל permissions.allow. ראה מה ש-acceptEdits מאשר אוטומטית לרשימה המלאה

דוגמה זו מחילה תיקוני lint כאשר acceptEdits משמש כקו הבסיס:

claude -p "Apply the lint fixes" --permission-mode acceptEdits

#כיבוי בקשות הרשאה בהרצות ללא השגחה

העבר את --permission-prompts none כאשר אין איש זמין לענות לבקשות הרשאה, למשל במשימה מתוזמנת. הדגל משמעותי במיוחד כאשר להרצה שלך יש מארח הרשאות: אפליקציית Agent SDK עם קריאה חוזרת של canUseTool, או כלי MCP שאתה מעביר באמצעות --permission-prompt-tool. ללא הדגל, ההרצה שלך ממתינה לאותו מארח שיענה לכל בקשת הרשאה.

עם הדגל, ההרצה שלך אינה מתייעצת עם המארח ואינה ממתינה לו. כל מה שהיה אמור להציג בקשת אישור נדחה, אלא אם hook מסוג PermissionRequest מאשר זאת, ל-Claude נמסר שאיש אינו יכול לאשר את הבקשה ושאין לנסות אותה שוב, וההרצה ממשיכה. בהרצת -p ללא מארח, בקשות אלו נדחות בכל מקרה, והדגל גם מורה ל-Claude לא לנסות אותן שוב. כללי הרשאות, hooks מסוג PermissionRequest, ומצב ההרשאות שהגדרת עדיין קובעים תחילה לגבי כל קריאה. Claude Code דוחה רק את הבקשות ששום דבר אחר אינו פותר.

דוגמה זו מריצה משימה ללא השגחה במצב אוטומטי. המסווג בודק כל פעולה כרגיל, ו-Claude Code דוחה כל דבר שהיה נסוג לבקשת אישור:

claude -p "Update the dependency pins and run the tests" --permission-mode auto --permission-prompts none

עם --permission-prompts none, Claude Code מסיר את הכלים הזקוקים לתשובה מאדם, כגון AskUserQuestion, כך ש-Claude אינו יכול לקרוא להם. כל בקשת בירור (elicitation) של MCP ששום hook מסוג Elicitation אינו עונה עליה מבוטלת.

עם --output-format stream-json, דחיות מופיעות כהודעות מערכת מסוג permission_denied, והודעת התוצאה הסופית מפרטת אותן ב-permission_denials.

הערה: הדגל --permission-prompts דורש את Claude Code בגרסה v2.1.259 ומעלה. גרסאות מוקדמות יותר דוחות אותו עם שגיאה של אפשרות לא מוכרת (unknown-option error).

#יצירת commit

דוגמה זו סוקרת שינויים שבשלב ה-staging ויוצרת commit עם הודעה מתאימה:

claude -p "Look at my staged changes and create an appropriate commit" \
  --allowedTools "Bash(git diff *),Bash(git log *),Bash(git status *),Bash(git commit *)"

הדגל --allowedTools משתמש בתחביר כללי הרשאות. הסיומת * מאפשרת התאמת קידומת (prefix matching), כך ש-Bash(git diff *) מאפשר כל פקודה שמתחילה ב-git diff. הרווח לפני ה-* חשוב: בלעדיו, Bash(git diff*) היה מתאים גם ל-git diff-index.

הערה: כישורים (skills) המופעלים על ידי המשתמש ופקודות מותאמות אישית עובדים במצב -p: כלול את /skill-name במחרוזת הפרומפט ו-Claude Code מרחיב אותו לפני ההרצה. פקודות מובנות שרצות רק בממשק הטרמינל, כגון /login, אינן זמינות במצב -p. הפקודות /model, /effort, /fast, /color ו-/rename מקבלות את הערך כארגומנט, למשל /model sonnet, והפקודה /mcp ללא ארגומנט מדפיסה סיכום טקסטואלי של סטטוס השרתים. צורות אלו דורשות את Claude Code בגרסה v2.1.205 ומעלה ופועלות לפי הערות הזמינות של כל פקודה. כדי לשנות הגדרה מתוך הפעלת -p, העבר key=value לפקודה /config, למשל /config thinking=false.

#התאמה אישית של פרומפט המערכת

השתמש ב---append-system-prompt כדי להוסיף הוראות תוך שמירה על התנהגות ברירת המחדל של Claude Code. דוגמה זו מזרימה את ה-diff של ה-PR לתוך Claude ומורה לו לבדוק פגיעויות אבטחה. שמור זאת כסקריפט shell, למשל review.sh:

gh pr diff "$1" | claude -p \
  --append-system-prompt "You are a security engineer. Review for vulnerabilities." \
  --output-format json

בסקריפט, "$1" מייצג את הארגומנט הראשון שאתה מעביר בשורת הפקודה. הרץ את bash review.sh 123 וה-shell מחליף את "$1" ב-123, כך שהסקריפט מביא את ה-diff עבור PR 123. Claude Code מדפיס את הסקירה כ-JSON, כאשר הטקסט נמצא בשדה result.

ראה דגלי פרומפט מערכת לאפשרויות נוספות כולל --system-prompt להחלפה מלאה של פרומפט ברירת המחדל.

#המשך שיחות

השתמש ב---continue כדי להמשיך את השיחה האחרונה ביותר, או ב---resume עם מזהה הפעלה כדי להמשיך שיחה ספציפית. הדגל --continue מדלג על הפעלות רקע. דוגמה זו מריצה סקירה, ולאחר מכן שולחת פרומפטים של המשך:

# בקשה ראשונה
claude -p "Review this codebase for performance issues"

# המשך השיחה האחרונה ביותר
claude -p "Now focus on the database queries" --continue
claude -p "Generate a summary of all issues found" --continue

אם אתה מריץ מספר שיחות, לכוד את מזהה ההפעלה כדי לחדש שיחה ספציפית:

session_id=$(claude -p "Start a review" --output-format json | jq -r '.session_id')
claude -p "Continue that review" --resume "$session_id"

תוכל להריץ את שתי הפקודות מספריות שונות: Claude Code מוצא את ההפעלה לפי המזהה שלה בכל פרויקט במחשב זה. לפני גרסה v2.1.223, Claude Code חיפש את המזהה רק בספריית הפרויקט הנוכחית וב-git worktrees שלה, כך שהיית חייב להריץ את שתי הפקודות מאותה ספרייה.

#השלבים הבאים