השתמש ב-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 כדי לקצר את זמן העלייה על ידי דילוג על גילוי אוטומטי של 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, קריאת קבצים ועריכת קבצים. העבר כל הקשר שאתה צריך באמצעות דגל:
אם 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 מפעיל אותו.
אם תעצור הרצת 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 של המחשב המארח.
מצב לא אינטראקטיבי קורא מ-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 כבודק (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.\""
}
}
השתמש ב---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 "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 נכשלת עם שגיאה שניתן לנסות שוב, Claude Code פולט אירוע system/api_retry לפני הניסיון החוזר. בגרסה v2.1.246 ומעלה, כאשר שגיאת 401 או 403 דוחה אישור מסוג apiKeyHelper, Claude Code מבצע את שני הניסיונות החוזרים הראשונים בשקט ללא אירוע, ולאחר מכן פולט את האירוע כרגיל החל מהניסיון החוזר השלישי ברצף ואילך. הניסיונות השקטים עדיין נספרים לתוך attempt. תוכל להשתמש באירוע כדי להציג את התקדמות הניסיונות החוזרים בממשק שלך.
שדה
סוג
תיאור
type
"system"
סוג ההודעה
subtype
"api_retry"
מזהה זאת כאירוע ניסיון חוזר
attempt
integer
מספר הניסיון הנוכחי, החל מ-1
max_retries
integer
סך הניסיונות החוזרים המותרים
retry_delay_ms
integer
מילישניות עד הניסיון הבא
error_status
integer או null
קוד סטטוס HTTP, או null עבור שגיאות חיבור ללא תגובת HTTP
no_response
object, אופציונלי
קיים רק כאשר הניסיון שנכשל לא קיבל כותרות תגובה בזמן. השדה waited_ms מציין כמה זמן המתין אותו ניסיון, והשדה retry_wait_ms מציין כמה זמן ימתין הניסיון החוזר. באירועים אלו, max_retries משקף את הניסיון החוזר היחיד שסיבה זו מקבלת בדרך כלל, ולא את התקציב של ההפעלה כולה. דורש את Claude Code בגרסה v2.1.261 ומעלה
אירוע ה-system/init מדווח על מטא-נתונים של ההפעלה כולל המודל, הכלים, שרתי ה-MCP והתוספים שנטענו. זהו האירוע הראשון בהזרמה אלא אם מקדימים אותו אירועי עלייה (startup):
אירועי 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 לרשימת היכולות.
השתמש בשדות התוספים באירוע ה-system/init כדי לזהות תוסף שלא נטען:
שדה
סוג
תיאור
plugins
array
תוספים שנטענו בהצלחה, כל אחד עם name ו-path
plugin_errors
array
שגיאות בזמן טעינת תוספים, כל אחת עם 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_servers
array
שרתי MCP בהפעלה, כל אחד עם name ו-status
mcp_server_errors
array
רשומות --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 מדווחים על חנויות בודדות
השתמש ב---allowedTools כדי לאפשר ל-Claude להשתמש בכלים מסוימים ללא בקשת אישור. דוגמה זו מריצה חבילת בדיקות ומתקנת כשלים, ומאפשרת ל-Claude לבצע פקודות Bash ולקרוא או לערוך קבצים מבלי לבקש רשות:
claude -p "Run the test suite and fix any failures" \
--allowedTools "Bash,Read,Edit"
כדי לקבוע קו בסיס לכל ההפעלה במקום לפרט כלים בודדים, העבר מצב הרשאות. עבור -p, מצב ההרשאות ההתחלתי המובנה הוא Manual בכל התוכניות, לכן העבר את מצב ההרשאות שאתה רוצה:
auto: העבר --permission-mode auto כדי שמסווג יבדוק את רוב הפעולות במקומך
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
עם --output-format stream-json, דחיות מופיעות כהודעות מערכת מסוג permission_denied, והודעת התוצאה הסופית מפרטת אותן ב-permission_denials.
הערה: הדגל --permission-prompts דורש את Claude Code בגרסה v2.1.259 ומעלה. גרסאות מוקדמות יותר דוחות אותו עם שגיאה של אפשרות לא מוכרת (unknown-option error).
דוגמה זו סוקרת שינויים שבשלב ה-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 שלה, כך שהיית חייב להריץ את שתי הפקודות מאותה ספרייה.