
Claude Code 是 Anthropic 推出的代理式程式開發工具(agentic coding tool)。它會讀你的程式碼、修改檔案、執行指令,可以在終端機、IDE、桌面 app 與瀏覽器使用。第一個任務建議先用 plan mode 規劃,核准後再動手,改完看 diff 再 commit。
本文說明 Claude Code 和聊天 AI 的差別、安裝與權限模式,以及第一個任務和會話管理。前置知識是會開終端機、懂 git 的基本指令。例子用假案例:假設你在做一個記帳網站,叫做豪享記帳,前端用 Next.js、後端用 Go。
沒用過終端機,可以先看官方的終端機入門。
Claude Code 和聊天 AI 差在哪?
聊天 AI 回答完問題就停下來等你。Claude Code 會自己讀檔案、跑指令、改程式,一步步把問題做完;你可以在旁邊看、隨時改方向。
官方把這個過程稱為代理循環(agentic loop),分成三個階段:
- 蒐集脈絡:搜尋與讀取相關的檔案,了解程式怎麼寫。
- 採取行動:修改檔案、執行指令。
- 驗證結果:跑測試或建置,確認改對了。
三個階段會反覆進行。例如你說「修好失敗的測試」,Claude 可能先跑測試、讀錯誤訊息,找到相關的原始碼。改完之後,它會再跑一次測試確認。
Claude Code 的代理循環:蒐集脈絡、採取行動、驗證結果
啟動後,Claude Code 看得到專案檔案、終端機、git 狀態與 CLAUDE.md。它用下面五類內建工具動手。
Claude Code 內建工具的五個類別
| 類別 | 能做什麼 |
|---|---|
| 檔案操作 | 讀檔、改程式、建立新檔、改名與搬移 |
| 搜尋 | 依檔名模式找檔案、用正規表示式搜尋內容 |
| 執行 | 跑 shell 指令、啟動伺服器、跑測試、使用 git |
| 網路 | 搜尋網頁、讀官方文件、查錯誤訊息 |
| 程式碼智慧 | 改完看型別錯誤、跳到定義、找引用(需安裝外掛) |
資料來源:Claude Code 官方文件〈How Claude Code works〉
Claude Code 可以在哪裡用?
Claude Code 有五種主要介面。每種介面接的都是同一個引擎,所以專案裡的 CLAUDE.md、設定檔與 MCP 伺服器在各介面都適用。
Claude Code 的五種介面
| 介面 | 怎麼開始 | 特色 |
|---|---|---|
| 終端機 CLI | 安裝後在專案資料夾輸入 claude | 功能最完整,可以寫進腳本與 CI |
| VS Code(也支援 Cursor) | 在擴充套件搜尋「Claude Code」 | 編輯器裡看行內 diff、審查計畫 |
| JetBrains | 從 Marketplace 安裝外掛,另外安裝 CLI | IntelliJ IDEA、PyCharm、WebStorm 等 |
| 桌面 app | 下載安裝、登入後點 Code 分頁 | 內建 Claude Code,圖形化看 diff |
| 網頁 | 開啟 claude.ai/code | 不用在本機安裝,適合長時間任務 |
資料來源:Claude Code 官方文件〈Overview〉
Claude Code 怎麼安裝?
官方建議用原生安裝(native install),裝好之後會在背景自動更新。完整說明見官方〈Quickstart〉,步驟如下:
- 開啟終端機,執行對應系統的安裝指令(見下方)。
- 開一個新的終端機視窗,執行
claude --version,印出版本號就代表裝好了。 - 用
cd切到專案資料夾,例如豪享記帳的資料夾,輸入claude啟動。 - 第一次使用會要求登入,照提示在瀏覽器完成驗證;之後不用再登入。
- 第一次在某個資料夾啟動時,Claude Code 會請你確認是否信任這個工作區。
macOS、Linux 與 WSL
curl -fsSL https://claude.ai/install.sh | bash
Windows PowerShell
irm https://claude.ai/install.ps1 | iex
Windows CMD
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
用套件管理工具安裝(不會自動更新)
# macOS:Homebrew
brew install --cask claude-code
# Windows:WinGet
winget install Anthropic.ClaudeCode
補充:在原生 Windows 上,官方建議安裝 Git for Windows,Claude Code 才能使用 Bash 工具。沒有安裝時,它會改用 PowerShell 執行指令。
執行 claude --version 出現找不到指令,通常是安裝目錄還沒加進 PATH。其他錯誤可以對照官方的〈Troubleshoot installation〉。
Claude Code 的權限模式有哪些?
權限模式決定 Claude 哪些動作可以不先問你。官方共有 6 種模式,終端機下方的狀態列會顯示目前是哪一種。
Claude Code 的 6 種權限模式
| 模式(設定值) | 狀態列顯示 | 不用問就能做 | 適合 |
|---|---|---|---|
Manual(default) | ⏸ manual mode on | 只有讀取 | 敏感工作,每一步自己審 |
acceptEdits | ⏵⏵ accept edits on | 讀取、改檔,以及 mkdir、mv、cp 等常見檔案指令 | 邊改邊用 git diff 檢查 |
plan | ⏸ plan mode on | 讀取與探索,不改原始碼 | 動手前先研究 |
auto | ⏵⏵ auto mode on | 全部,由分類器模型在背景把關 | 長任務、減少確認次數 |
dontAsk | ⏵⏵ don't ask on | 只有預先允許的工具,其他一律拒絕 | CI 與自動化腳本 |
bypassPermissions | ⏵⏵ bypass permissions on | 幾乎全部,跳過權限提示 | 只限隔離的容器或虛擬機 |
資料來源:Claude Code 官方文件〈Choose a permission mode〉
v2.1.283 起,終端機與 VS Code 的互動會話預設從 auto 模式開始。帳號、模型或組織設定不符合 auto 的條件時,會改從 Manual 開始。
auto 模式由另一個分類器模型審查動作,取代逐次詢問你。它預設會擋下 curl | bash 這類下載後直接執行的指令,也會擋下強制推送與正式環境部署。
官方提醒,auto 能減少確認,但不保證安全,敏感操作還是要自己審。
bypassPermissions 會跳過權限提示,對提示注入(prompt injection)沒有防護。官方只建議在隔離的容器或虛擬機使用。
Shift+Tab 怎麼切換權限模式?
在會話中按 Shift+Tab,可以循環切換權限模式。從 auto 開始,依序會切到 Manual、acceptEdits、plan,再回到 auto。
按 Shift+Tab 循環切換的四種權限模式
dontAsk 不在循環裡,要用啟動參數開啟。bypassPermissions 也要在啟動時開啟,才會出現在循環中。
啟動時指定模式
claude --permission-mode plan
讓豪享記帳每次都先進 plan mode(.claude/settings.json)
{
"permissions": {
"defaultMode": "plan"
}
}
有兩個例外要注意:
- auto 與 bypassPermissions:寫在專案設定檔不會生效。要寫在個人的
~/.claude/settings.json。 - VS Code 擴充套件:不讀專案設定的起始模式,要改 VS Code 的使用者設定。
哪些動作不會被自動放行?
有些路徑受到保護,例如 .git、.claude、.vscode 與 .mcp.json。寫入這些路徑時,Manual 與 acceptEdits 一定先問你,auto 模式會交給分類器審查;允許規則也不能預先放行。
刪除檔案系統根目錄、家目錄或工作目錄的 rm 指令,允許規則同樣放行不了。另外,拒絕規則在每個模式都有效,包括 bypassPermissions。
權限提示出現時怎麼選?
Claude 要執行需要確認的動作時,會跳出權限提示。以 Bash 指令為例,選項如下:
- Yes:只放行這一次。
- 之後不再詢問:放行,之後同一類指令不再問(按鈕的實際文字依版本略有不同)。
- Yes, and switch to auto mode:放行並切到 auto 模式;auto 可用時才會出現。
- No:拒絕;可以按
Tab附上一句說明,告訴 Claude 為什麼不行。
選「don't ask again」時,Bash 指令與網域的核准是永久的。這條規則會存進專案的 .claude/settings.local.json;改檔的核准則只維持到會話結束。
這個檔案是你個人的設定,建議自己把它加進 .gitignore。要給團隊共用的規則,寫在 .claude/settings.json 並 commit。
常用指令怎麼設成不用每次問?
輸入 /permissions 會打開權限對話框,列出所有規則與來源設定檔,也可以直接新增或刪除。規則分成允許(allow)、詢問(ask)與拒絕(deny)。Claude Code 依序比對 deny、ask、allow,第一個符合的生效。
豪享記帳的團隊設定(.claude/settings.json)
{
"permissions": {
"allow": [
"Bash(npm run lint)",
"Bash(npm run test *)",
"Bash(go test *)",
"Bash(go vet *)"
],
"ask": [
"Bash(git push *)"
],
"deny": [
"Read(./.env)",
"Read(./.env.*)"
]
}
}
這份設定的效果:
- 允許:跑 lint 和測試不用問。
- 詢問:push 前一定問你,auto 模式下也一樣。
- 拒絕:不能讀
.env這類存放金鑰的檔案。
* 代表任何文字,要放在子指令後面。例如 Bash(go test *) 只放行 go test,Bash(go *) 則放行所有 go 指令。專案設定檔裡的允許規則,要在你信任這個工作區之後才會生效。
注意:權限規則由 Claude Code 執行,不是由模型判斷。寫在 CLAUDE.md 或對話裡的要求,只影響 Claude 想怎麼做,不改變 Claude Code 放行什麼。
在 auto 模式下,你在對話裡說「不要 push」,分類器會把它當成要擋下的訊號。不過,這句話可能在對話被摘要壓縮時消失,所以一定要守住的界線,官方建議寫成規則。
常見的舊寫法與官方新寫法
| 想做到的事 | 舊寫法 | 新寫法 |
|---|---|---|
| 改程式前先經過同意 | 在說明文件寫「提案沒批准不寫程式」 | 用 plan mode,計畫核准前不能改原始碼 |
| push 前一定要問 | 在對話裡交代「不要 push」 | 加詢問規則 Bash(git push *) |
| 常用指令不用每次問 | 每次選「不要再問」,累積一長串完整指令 | 用 * 寫成一類,例如 Bash(npm run test *) |
| 限制讀寫範圍 | 在說明文件寫「超出目錄必須停止」 | 用拒絕規則,額外目錄用 /add-dir 加入 |
| 機密檔不給讀 | 在 CLAUDE.md 提醒不要讀 | 加拒絕規則 Read(./.env) |
資料來源:Claude Code 官方文件〈Configure permissions〉
Plan mode 怎麼用?
Plan mode 讓 Claude 只研究、不改檔。它會讀檔案、跑指令探索,寫出一份計畫;你核准之後,它才開始改原始碼。用 bypassPermissions 啟動的終端機會話例外,那時 plan mode 不會擋下編輯。
進入 plan mode 有三種方式:
- 切換模式:按
Shift+Tab,直到狀態列顯示⏸ plan mode on。 - 單次指令:在提示詞前面加
/plan,例如/plan 修好登入逾時的問題。 - 啟動參數:執行
claude --permission-mode plan。
計畫寫好後,Claude 會問你要怎麼進行:
- Yes, and use auto mode:核准計畫,切到 auto 模式開始實作;auto 不可用時顯示為 Yes, auto-accept edits。
- Yes, manually approve edits:核准計畫,之後每次改檔都先問你。
- No, keep planning:繼續規劃,告訴 Claude 要改哪裡。
按 Ctrl+G 可以用文字編輯器打開計畫直接修改。不想核准,再按一次 Shift+Tab 就能離開 plan mode。
我的做法是每個任務先提案,我批准了才動工。這條規則寫在文字說明裡時,要靠 Claude 自己遵守;plan mode 則把它做成機制,計畫沒核准就改不了原始碼。
不是每個任務都要規劃。改錯字、加一行 log、改變數名稱這類小修改,直接請 Claude 做;官方的說法是,一句話就能描述的 diff,就不用規劃。
第一個任務怎麼下?先規劃、再動手、看 diff
官方建議的流程是探索、規劃、實作、commit,實作完先看 diff 再決定。假設豪享記帳的前端放在 web/、後端放在 api/,你想在記帳列表加上「依類別篩選」:
- 探索:切到 plan mode,請 Claude 讀相關程式碼並回答問題,這時它不會改檔。
- 規劃:請 Claude 列出要改哪些檔案、API 參數怎麼設計;不滿意就選 No, keep planning。
- 實作:核准計畫,請 Claude 照計畫寫程式,並跑測試驗證。
- 看 diff:輸入
/diff,檢查工作目錄的改動,確認沒動到計畫以外的檔案。 - commit:確認沒問題,請 Claude 用清楚的訊息 commit。
第一個任務的五個步驟:計畫核准前,Claude 不會改檔
探索與規劃(plan mode)
讀 web/ 的記帳列表頁和 api/ 的交易查詢 handler,
說明列表資料從哪裡來、篩選條件怎麼傳到後端。
我想在列表加上「依類別篩選」,要改哪些檔案?先寫成計畫。
實作(核准計畫後)
照計畫實作。幫 Go 的 handler 補上測試,
跑 go test ./... 和前端的 npm run lint,失敗就修到通過。
看過 /diff 沒問題,再請 Claude「用清楚的訊息 commit 這次的改動」。
實作的提示裡一定要附上驗證方式。Claude 覺得做完了就會停下來;有測試、建置或 lint 可以跑,它就能自己讀結果、修到通過。也可以請它附上測試輸出當證據,你看證據比自己重跑快。
提示詞怎麼寫得更具體?
| 做法 | 模糊的寫法 | 具體的寫法 |
|---|---|---|
| 限定範圍 | 幫我加測試 | 幫交易查詢 handler 補測試,涵蓋類別不存在的情況 |
| 描述症狀 | 修好登入的問題 | 登入逾時後重新整理會被登出,查 api/ 的 token 更新流程,先寫重現問題的測試再修 |
| 附上驗證方式 | 讓建置通過 | 建置失敗的錯誤如下,找出根本原因修好,並確認建置成功 |
資料來源:改寫自 Claude Code 官方文件〈Best practices〉的範例
Claude 做到一半走偏時,按 Esc 可以立刻停下。也可以直接輸入修正並按 Enter,Claude 跑完手上的工具呼叫就會讀到。
改壞了怎麼復原?
每次送出提示詞,Claude Code 都會自動建立檢查點(checkpoint),記下 Claude 改檔前的狀態。輸入框空白時按兩下 Esc,或輸入 /rewind,就能打開倒回選單。
選好要回到哪一則提示詞,再選要倒回什麼:
- Restore code and conversation:程式碼與對話都回到那個時間點。
- Restore conversation:對話倒回,程式碼維持現狀。
- Restore code:程式碼倒回,對話保留。
- Summarize from here:把那一則之後的對話壓縮成摘要,騰出脈絡空間。
檢查點只記錄 Claude 用檔案編輯工具做的修改。用 rm、mv、cp 這類 Bash 指令改動的檔案,倒回不了。你在 Claude Code 以外手動改的檔案,也不會被記錄。
資料庫、API 與部署這類遠端動作,也無法用檢查點倒回,要靠權限模式和規則控制。檢查點是會話內的快速復原,長期的版本紀錄還是交給 git。細節見官方〈Checkpointing〉。
Claude Code 的會話怎麼管理?
會話(session)是一段綁定專案資料夾的對話,Claude Code 會持續存在本機。關掉終端機之後,可以接續、改名或分出另一條分支。
常用的會話指令
| 指令 | 用途 |
|---|---|
claude --continue(-c) | 接續目前資料夾最近一次的會話 |
claude --resume(-r) | 打開會話清單,挑一個接續 |
/resume | 在會話中切換到另一個會話 |
claude -n 名稱、/rename 名稱 | 幫會話取名,之後可以用名稱接續 |
/branch | 把目前的對話複製成分支,試另一種做法 |
/clear | 清空脈絡開新對話,舊的可以用 /resume 找回 |
/compact | 把對話摘要成較短的內容,騰出脈絡空間 |
/context | 查看目前的脈絡被哪些內容佔用 |
資料來源:Claude Code 官方文件〈Manage sessions〉
每個新會話都從空白脈絡開始,不帶前一次的對話。要跨會話保留的規則,寫進 CLAUDE.md,或讓 Claude 存成自動記憶(auto memory)。
我的做法是把每次的回饋寫成記憶,下次開新會話就不用再講一次。CLAUDE.md 和自動記憶怎麼寫,在下一章說明。
脈絡越滿,Claude 的表現越容易變差。官方建議不相關的任務之間用 /clear 隔開;同一個問題糾正超過兩次,就 /clear 重來,寫一個更具體的提示。
對話紀錄存在 ~/.claude/projects/<專案>/<session-id>.jsonl。紀錄預設保留 30 天,可以用 cleanupPeriodDays 設定調整。這些檔案是內部格式,每個版本都可能改;要匯出對話請用 /export,不要寫腳本直接解析或修改。
常見問題
Q1:Claude Code 可以在 Windows 上用嗎?
可以。Windows 可以用 PowerShell、CMD 或 WinGet 安裝。官方建議同時安裝 Git for Windows,沒裝時 Claude Code 會改用 PowerShell 執行指令。
Q2:Claude Code 會不會自己刪掉或改壞檔案?
要看權限模式。Manual 模式下,改檔與執行指令都會先問你;刪除根目錄、家目錄或工作目錄的 rm 指令,任何允許規則都放行不了。改壞了可以用 /rewind 倒回,但 Bash 指令刪掉的檔案倒回不了,重要的改動要先 commit。
Q3:關掉終端機之後,對話還找得回來嗎?
找得回來。在同一個專案資料夾執行 claude --continue,會接續最近一次的會話;claude --resume 可以從清單挑選。對話紀錄預設保留 30 天。
Q4:終端機版和 VS Code 擴充套件差在哪?
兩者用同一個引擎,專案的 CLAUDE.md、設定檔與 MCP 伺服器都共用。VS Code 版可以在編輯器裡看行內 diff、審查計畫,用輸入框下方的模式指示器切換權限模式。
延伸閱讀
- CLAUDE.md要寫什麼?專案規則範例、匯入與自動記憶:把專案規則寫成 Claude 每次都會讀的說明檔,並用自動記憶保留回饋
- Claude Code Hooks與權限怎麼設?擋指令與沙箱:用 hooks 做自動檢查,用權限規則擋下危險指令
- 一人開發怎麼用AI團隊?Claude Code分工與上版審查:我用 Claude Code 分工開發網站的流程與兩道閘門
留言0