Claude Code 是什麼封面:會讀檔改檔跑指令的 AI 開發工具,安裝、權限模式與第一個任務

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),分成三個階段:

  1. 蒐集脈絡:搜尋與讀取相關的檔案,了解程式怎麼寫。
  2. 採取行動:修改檔案、執行指令。
  3. 驗證結果:跑測試或建置,確認改對了。

三個階段會反覆進行。例如你說「修好失敗的測試」,Claude 可能先跑測試、讀錯誤訊息,找到相關的原始碼。改完之後,它會再跑一次測試確認。

Claude Code 代理循環圖:你的指令進來後,依序蒐集脈絡、採取行動、驗證結果,反覆直到完成,你可以隨時中斷 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 安裝外掛,另外安裝 CLIIntelliJ IDEA、PyCharm、WebStorm 等
桌面 app下載安裝、登入後點 Code 分頁內建 Claude Code,圖形化看 diff
網頁開啟 claude.ai/code不用在本機安裝,適合長時間任務

資料來源:Claude Code 官方文件〈Overview〉

Claude Code 怎麼安裝?

官方建議用原生安裝(native install),裝好之後會在背景自動更新。完整說明見官方〈Quickstart〉,步驟如下:

  1. 開啟終端機,執行對應系統的安裝指令(見下方)。
  2. 開一個新的終端機視窗,執行 claude --version,印出版本號就代表裝好了。
  3. 用 cd 切到專案資料夾,例如豪享記帳的資料夾,輸入 claude 啟動。
  4. 第一次使用會要求登入,照提示在瀏覽器完成驗證;之後不用再登入。
  5. 第一次在某個資料夾啟動時,Claude Code 會請你確認是否信任這個工作區。

macOS、Linux 與 WSL

bash
curl -fsSL https://claude.ai/install.sh | bash

Windows PowerShell

powershell
irm https://claude.ai/install.ps1 | iex

Windows CMD

batch
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

用套件管理工具安裝(不會自動更新)

bash
# 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 依序從 auto 切到 Manual、acceptEdits、plan,再回到 auto 按 Shift+Tab 循環切換的四種權限模式

dontAsk 不在循環裡,要用啟動參數開啟。bypassPermissions 也要在啟動時開啟,才會出現在循環中。

啟動時指定模式

bash
claude --permission-mode plan

讓豪享記帳每次都先進 plan mode(.claude/settings.json)

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)

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/,你想在記帳列表加上「依類別篩選」:

  1. 探索:切到 plan mode,請 Claude 讀相關程式碼並回答問題,這時它不會改檔。
  2. 規劃:請 Claude 列出要改哪些檔案、API 參數怎麼設計;不滿意就選 No, keep planning。
  3. 實作:核准計畫,請 Claude 照計畫寫程式,並跑測試驗證。
  4. 看 diff:輸入 /diff,檢查工作目錄的改動,確認沒動到計畫以外的檔案。
  5. commit:確認沒問題,請 Claude 用清楚的訊息 commit。

第一個任務流程圖:探索、規劃、實作、看 diff、commit 五個步驟,計畫核准前不改檔 第一個任務的五個步驟:計畫核准前,Claude 不會改檔

探索與規劃(plan mode)

text
讀 web/ 的記帳列表頁和 api/ 的交易查詢 handler,
說明列表資料從哪裡來、篩選條件怎麼傳到後端。
我想在列表加上「依類別篩選」,要改哪些檔案?先寫成計畫。

實作(核准計畫後)

text
照計畫實作。幫 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、審查計畫,用輸入框下方的模式指示器切換權限模式。

延伸閱讀