claude -p 是什麼?
跟互動模式差在哪?
你大概聽過「Claude Code 可以拿來自動化」,於是有人推 claude -p。
但網路上很多教學講錯(例如「-p 不會載 memory」「-p 不執行 hook」都不對)、
而真正重要的事沒人講:2026-06-15 起 -p 跟訂閱拆開計費了、誤用會貴 12 ~ 150 倍。
這篇直接從 claude --help + 官方公告、修正迷思、講清楚新計費影響、附對照表跟實戰範例。
不需要會寫程式、但需要對「terminal 打 claude 開始用」這件事有基本概念。如果你連 Claude Code 是什麼都不知道、先去看官方介紹再回來。
適合:已經在用 Claude Code、想知道有沒有更省時間的模式、想拿 Claude 跑 cron / 批次 / 自動化、看過教學文章但被講錯誤導的人。每個技術名詞首次出現都會白話解釋。
核心觀念:-p 不是「閹割版 Claude」、是「同一個 Claude、不開互動視窗」
互動模式 claude 跟 print 模式 claude -p、能力一樣強、預設下也同樣會載入 CLAUDE.md / memory / 你的 skill / hook。
唯一差別是「會不會開一個讓你邊看邊輸入的 REPL」。-p 就是「給我 prompt、做完印結果、退出」。
這個觀念釐清很重要、因為很多 AI 整理的教學會跟你說「-p 不會載 memory」「-p 不執行 hook」「-p 是獨立計費」。這些都不對、稍後會逐一修正。
REPL = Read–Eval–Print Loop、就是「你打一句、它回一句、你再打一句」這種一直循環的互動視窗。當你直接打
claude 進去那個視窗就是 REPL。
比喻:REPL 是跟人面對面講話、-p 是寄一張紙條給對方、對方寫完回給你就走。同一個人、不同的傳達方式。
-p 全名是什麼?跟「Headless」「Non-interactive」是同一個東西嗎?
是同一個東西、官方說法是:
-p, --print Print response and exit (useful for pipes).
所以三個常見稱呼指的都是這個模式:
- Print mode:因為 flag 全名叫
--print - Headless mode:因為沒有「頭」(沒有互動介面)
- Non-interactive mode:因為不開互動 REPL
設計目的:讓 Claude Code 可以被腳本呼叫、被 cron 排程、被 pipe 串接。等於把 Claude 變成 Unix 工具鏈裡的一環、可以跟 grep、jq、curl 一樣 pipe 串接。
Unix / Linux / macOS 終端機把一個程式的輸出、用
| 符號接到下一個程式的輸入。
例如 cat file.txt | claude -p "幫我摘要"、意思是「把 file.txt 的內容餵給 claude、要它摘要」。
比喻:像工廠生產線、A 機器產出半成品、用輸送帶送到 B 機器繼續加工。
互動模式 vs -p 預設 vs -p --bare:完整差異
很多教學只比兩欄、漏掉 --bare 這個關鍵第三欄。其實這才是「真正的乾淨環境模式」、cron 跟 CI 應該用它。
| 面向 | 互動 claude |
-p 預設 |
-p --bare |
|---|---|---|---|
| CLAUDE.md 自動載入 | ✓ | ✓ | ✗ |
| Auto-memory(自動記憶) | ✓ | ✓ | ✗ |
| Hooks(SessionStart / Stop 等) | ✓ | ✓ | ✗ |
| Plugin / Skill 自動載 | ✓ | ✓ | 部分 ✓ /skill 仍可叫 |
| MCP servers | ✓ | ✓ | 需 --mcp-config |
| 多輪對話(Session) | ✓ | 需 -c / -r | 需 -c / -r |
| 適合互動修正 | ✓ | ✗ | ✗ |
| 適合 cron / 批次 | ✗ | 堪用 | ✓ 最佳 |
--bare 這個 flag?--bare 是「完全乾淨環境」、跳過所有自動載入(hooks / LSP / plugin sync / auto-memory / CLAUDE.md auto-discovery / 背景預載 / keychain)。
但 Skills 還是可以用 /skill-name 明確呼叫。
比喻:互動模式是「全副武裝出門」、-p 是「全副武裝快遞」、--bare 是「只帶任務本身、其他不帶」。CI / cron 環境需要可預測性、用 --bare 最穩。
2 個常見迷思 + 1 個你必須知道的計費變動
前兩個是網路教學常講錯的點、第三個是 Anthropic 2026-05-14 官方公告的計費政策、影響所有 -p 用戶。
「-p 不會載入你的 memory 跟 CLAUDE.md」
"用 claude -p 跑的話、你累積的 memory 全部不會載入、要從零開始講背景。"
-p 跟互動模式完全一樣會載 CLAUDE.md 跟 auto-memory。只有加上 --bare 才會跳過。所以你日常用 claude -p "整理今天的諮詢"、它一樣知道你是誰、知道你的工作流。
「-p 不會執行 hooks(SessionStart / PostToolUse 等)」
"-p 是 headless 模式、它跳過所有 hook、所以你的 SessionStart 通知不會發。"
-p 會執行 hooks、跟互動模式一樣。只有 --bare 才跳過。
所以你如果有寫「每次開 session 都發 Discord 通知」的 hook、claude -p 也會發。
2026-06-15 起、-p 跟訂閱拆開計費
Anthropic 2026-05-14 公告:6/15 起 Claude Agent SDK / claude -p / Claude Code GitHub Actions / 第三方 agents 從訂閱額度池移出、改成獨立的「Agent SDK Credit」池、按 API list price 計費。
claude 那個)跟 Claude.ai chat 完全不變、繼續吃訂閱額度。
但只要你用 claude -p(不管是 cron、batch、pipe 都算)、6/15 之後就會吃 Agent SDK Credit 池。
Credit 額度依方案:Pro $20 / Max 5x $100 / Max 20x $200/月、燒完按 API 全價繼續算(如果你有開 usage credits)、不 rollover。 獨立分析估算重度
-p 用戶等同漲價 12 ~ 150 倍。給你的具體建議:能用互動模式跑的、就不要改
-p cron。下一節會講替代方案。
-p 才有的 flag(互動模式用不了)
這些 flag 設計給「腳本 / 批次」場景、互動模式用不上、所以不會出現在你的日常。
結果用 JSON 格式輸出、含 cost、token、duration、session_id。用 jq 解析後可以做成本追蹤儀表板。
結果串流輸出、可以即時用 jq 解析每段。長任務不用等到結束才看到東西。
單次任務的成本上限。超過會中斷、避免不小心燒爆。批次處理一定要設。
主 model(例如 Opus)overload 時自動 fallback 到指定備援。批次跑很久時很實用。
不存 session 紀錄到磁碟、跑完就忘。CI / 短暫查詢用。
強制 Claude 輸出符合 JSON Schema 的 structured output。例如要求「必須輸出 {name, score}」、Claude 會嚴格按 schema。
串流 stdin 輸入、可以邊餵資料邊處理。長 input 不用一次塞完。
什麼時候用 -p、什麼時候繼續用互動?
claude當你需要邊看邊改
- 寫文章、寫程式:要看草稿、改、再看、再改
- 探索性查詢:不確定第一個問題、根據答案決定下一個問
- 開發階段:在還沒固定流程時、用互動最快
- Skill 設計:邊測 prompt、邊看哪裡卡住
- 跟 Claude 一起腦力激盪、不只是「拿結果」
-p當你要外部腳本 / pipe / CI 串接
- 單次查詢腳本化:
echo "$URL" | claude -p "抓 OG" - 批次處理 N 個項目:for loop 跑 100 個 Notion 頁
- CI / GitHub Actions:版本控制提交後自動 review
- Pipe 串接其他工具:跟
grep/jq/curl接 - 外部 cron 任務:但 6/15 後吃 Agent SDK Credit、見下一節替代方案
每天排程跑、用「互動模式 + 自我喚醒」省訂閱額度
如果你的需求是「每天 / 每週固定跑某個任務」、6/15 之後不要用 crontab + claude -p、會吃 Agent SDK Credit、燒得很快。
替代方案:開一個長駐的互動 session、用 ScheduleWakeup / loop 機制讓 Claude 自己排下次醒來的時間。從 Claude Code 的視角這還是「使用者開了一個互動 session 沒關」、所以繼續吃訂閱額度池、不會被新政策影響。
適合:每日營運巡檢、每週報表、固定提醒、定期掃信箱等。下一節 Section 7 講具體做法。
何時加 --bare?
當你在意「環境可預測性」、不希望被 ~/.claude/ 累積的雜訊污染。例如:
- CI 環境:跑在乾淨容器、沒有 user-level CLAUDE.md
- 真的非用外部 cron 不可的任務:明確只想用某幾個 skill、其他不載
- 給別人用的腳本:怕你的 memory 帶來不一致行為
五個直接複製就能跑的範例
範例 1:單次任務 + JSON 拿成本資訊
claude -p "整理今天 Discord #line-mirror 未回覆訊息" \
--output-format json | jq '{result: .result, cost_usd: .total_cost_usd}'
範例 2:從 stdin pipe(Unix 工具鏈)
# 把諮詢逐字稿摘要成 3 段 cat consultation.txt | claude -p "整理諮詢逐字稿成 3 段摘要" # 抓網頁標題 curl -s https://example.com | claude -p "幫我抽出 og:title 跟 description"
範例 3:批次處理 N 個項目(for loop)
# 批改 5 篇 BRAND 作業、設成本上限避免燒爆
for url in $(cat homework_urls.txt); do
echo "處理 $url"
claude -p "用 /brand-grade 批改這個學員作業:$url" \
--max-budget-usd 0.5 \
--output-format json >> grading_results.jsonl
done
範例 4:Cron 夜間批次(⚠️ 6/15 後會吃 Agent SDK Credit)
# 在 crontab 加一行、每天早上 7 點跑 # 注意:6/15 起這種寫法吃 Agent SDK Credit、不是訂閱額度 0 7 * * * cd /Users/kevinhuang/Developer/claude-workspace && \ claude -p --bare \ --add-dir . \ --mcp-config ./mcp-config.json \ --append-system-prompt-file ./skills/daily-ops.md \ --max-budget-usd 0.5 \ "執行 daily-ops 並寄結果到 Gmail"
更省錢的做法:開一個長駐的互動 claude session、用 ScheduleWakeup 機制讓 Claude 自己每天 7am 醒來跑任務。這樣計費走訂閱額度池、不吃 Agent SDK Credit。見 Section 7。
範例 5:接續上次對話(不開新 session)
# 用 -c 接續最近的 session claude -p "剛剛那篇文章再加一段結論" --continue # 用 -r <session-id> 指定 session claude -p "繼續剛剛的話題" --resume abc-123-def
用「對話模式 + 自我喚醒」取代外部 -p cron
這是 6/15 計費變動後最大的省錢竅門、值得單獨講。
核心觀念:Claude Code 計費分兩個池、看你的 session 是「互動模式」還是「-p 模式」、不是看「有沒有人坐在電腦前」。
| 做法 | 長相 | 計費 |
|---|---|---|
外部 cron + claude -p |
crontab 排「每天 7am 跑 claude -p ...」 |
⚠️ Agent SDK Credit (按 API 全價) |
| 長駐互動 session + 自我喚醒 | 開著 claude 互動視窗、用 ScheduleWakeup / loop 讓 Claude 自己排下次醒來 |
✓ 訂閱額度池 (不額外計費) |
Claude Code 內建一個機制、讓 Claude 在互動 session 內、自己決定下次什麼時候醒來繼續工作。 你只需要一台電腦(或 VPS)長駐開著
claude 視窗、給它一個排程任務、它就會睡到指定時間、自動醒來跑、跑完繼續睡。
比喻:外部 cron + -p 像「找快遞每天跑一趟、按距離收費」、長駐互動是「自己車停在停車場、自己開出去、月費吃到飽」。
實作流程(不需要寫程式)
- 找一台可以長時間開著的電腦或 VPS(不用很強、Mac mini / 舊筆電 / 月費 VPS 都行)
- 登入後直接打
claude開互動視窗(不是-p) - 告訴 Claude 你要的排程:例如「每天早上 7 點幫我跑 /daily-ops、寄結果到 Gmail」
- Claude 會用 ScheduleWakeup 工具排下次醒來、你不用做任何事
- 視窗開著就好、Claude 會自己照排程跑、跑完繼續排下一次
這就是「對話模式跑 cron」的真實長相:不是外部 cron 呼叫 Claude、是 Claude 自己排自己。所以從 Claude Code 計費系統的視角這就是一個普通的長駐互動 session、繼續吃訂閱額度。
什麼時候還是該用 -p?
- 真的需要 pipe 串接 Unix 工具:
echo url | claude -p ...這種、長駐 session 做不到 - CI / GitHub Actions:每次觸發都是全新環境、沒有「長駐」可言
- 批次處理 N 個項目跑完就走:for loop 100 次、長駐 session 反而不好控
- 嵌入別人的 SaaS / 自動化流程:用 Agent SDK 整合進別的產品
其他「定期 / 重複 / 排程」需求、優先考慮長駐互動 + 自我喚醒。
先別急著改 cron、99% 的時候互動模式就夠了
除非你有明確的「每天 / 每週固定跑」需求、否則繼續用互動模式就好。把 -p 想成「當你已經有一個穩定流程、要嵌入別的腳本 / pipe / CI」才需要切過去。
反過來、所有「探索性 / 修正性」工作都不適合 -p。寫文章、debug、設計新流程、跟 Claude 討論策略、全部繼續用 claude 進互動模式。
-p 不是「閹割版 Claude」、是給已經知道自己要什麼的人用的捷徑。如果你還在探索、繼續開互動視窗。
記住這四件事、不會被網路教學誤導、也不會被新計費燒到
預設 -p 跟互動模式能力一樣、會載 CLAUDE.md、會跑 hook、會用你的 skill。差別只在「有沒有開互動視窗」。
--bare 才是真正的「乾淨環境」、CI 才適合用。會跳過 hooks、auto-memory、CLAUDE.md auto-discovery、需要你明確 --add-dir / --mcp-config。
2026-06-15 起 -p 跟訂閱拆計費:Agent SDK / -p / Claude Code GitHub Actions 移出訂閱額度池、改吃 Agent SDK Credit(按 API 全價)。互動模式不變、繼續吃訂閱。
排程任務改用「長駐互動 + 自我喚醒」:一台電腦長駐開 claude 互動視窗、用 ScheduleWakeup 讓它自己排下次醒來。計費走訂閱、不吃 Agent SDK Credit。
同主題的其他文章
三個觀察 + 四份研究:Jevons Paradox、Atlassian 89% vs 6%、MIT Cognitive Debt。
Skill 有官方規範(agentskills.io)、Workflow 是描述用詞。一張表 + 兩個生活情境秒懂。
Skill / Memory / CLAUDE.md 三層架構、怎麼讓 AI 累積知識、不用每次重講一遍。
參考來源
- Claude Code 官方 Headless 文件: code.claude.com/docs/en/headless
- Claude Code 完整 flag 清單: 直接跑
claude --help(這篇所有 flag 描述都來自此) - Anthropic 官方計費政策(Agent SDK 與 Claude plan): support.claude.com/en/articles/15036540
- The Decoder 報導 6/15 計費變動: the-decoder.com
- Codersera 整理「每個 Claude Code 用戶必須做的事」: codersera.com
- 真實事故(誤用
-p兩天燒掉 $1,800+): GitHub Issue #37686