上一篇我們已經把 Claude Code 裝好了,也建立了一個 ai-task-manager 資料夾。
當時我是這樣啟動 Claude Code 的:
cd ai-task-manager
claude
但我開始有一個疑問。
我在 ai-task-manager 裡啟動 Claude Code,它到底看得到什麼?
是只有這個資料夾,還是連電腦裡其他檔案都看得到?
而且 Claude Code 不只會回答問題,它還可以修改檔案。那它每次修改都會先問我嗎?
今天就來把工作目錄和權限這兩件事情搞清楚。
在了解 Claude Code 之前,要先知道什麼是工作目錄。
假設我的電腦裡有這樣的資料夾:
ai-task-manager/
├── claude-test/
│ ├── hello.py
│ └── note.txt
│
└── other-project/
└── app.py
我先進入:
cd ai-task-manager/claude-test
這時候 ai-task-manager 就是我目前所在的目錄。
可以把它想成:
我現在站在
ai-task-manager這個資料夾裡。
macOS、Windows PowerShell 可以使用:
pwd
有。
假設我先執行:
cd ai-task-manager
再啟動:
claude
Claude Code 就會以這個位置開始處理目前的專案。
例如:
claude-test/
├── hello.py
└── note.txt
如果裡面還有其他子資料夾:
claude-test/
├── hello.py
├── note.txt
└── test/
└── example.py
Claude Code 在分析專案時,也可以繼續查看裡面的檔案。
所以之後真的開始做 Web App 時,我不會隨便找一個位置就輸入:
claude
而是先進入專案:
cd ai-task-manager
再啟動:
claude
這樣 Claude Code 一開始面對的就是我們的 ai-task-manager 專案。
上一篇我們已經建立:
claude-test/
└── hello.py
現在我再建立一個:
note.txt
內容隨便寫一句:
這是 Claude Code Day 4 的測試檔案。
現在資料夾變成:
claude-test/
├── hello.py
└── note.txt
接著在 claude-test 裡啟動:
claude
然後直接問:
請告訴我目前這個專案有哪些檔案,以及每個檔案大概在做什麼。
這次我沒有把 hello.py 的程式碼複製給 Claude,也沒有把 note.txt 的內容貼進對話。
Claude Code 可以自己查看專案裡需要的檔案。
這就是我前幾天一直提到的差別。
如果是一般聊天式 AI,我通常要自己把相關程式碼提供給它。
Claude Code 則可以直接從目前的專案開始找。
這裡有一個我一開始容易搞混的地方。
Claude Code 可以存取專案,不代表每次啟動時,就會把所有檔案一次全部讀完。
比較接近的情況是:
我提出問題
↓
Claude Code 判斷需要哪些資訊
↓
尋找相關檔案
↓
讀取需要的內容
↓
回答問題或進行操作
例如我問:
這個專案的入口程式在哪裡?
Claude Code 可以先查看專案結構,再去讀取跟問題有關的程式。
所以之後專案慢慢變大,我也不用每次把所有程式碼全部貼進對話。
如果需要 Claude Code 使用其他目錄,可以額外加入。
例如:
claude --add-dir ../other-project
也可以進入 Claude Code 後使用:
/add-dir
加入其他工作目錄。
不過目前我不打算這樣做。
剛開始使用 Claude Code,我反而希望它的工作範圍越清楚越好。
做 ai-task-manager 時,就讓它處理 ai-task-manager。
等真的遇到需要同時處理其他目錄的情況,再來使用這個功能。
Claude Code 能讀取檔案,不代表所有操作都會直接執行。
例如我只是問:
hello.py 在做什麼?
這次主要是在讀取程式。
但如果我說:
把 hello.py 修改成印出 Hello ITHelp。
這次就牽涉到修改檔案。
又或者我叫它執行:
python hello.py
這又多了一個「執行終端機指令」的動作。
Claude Code 對不同操作有自己的權限控制。
剛開始使用時,我覺得先搞懂它準備做什麼,比一路按同意重要。
在 Claude Code 裡可以輸入:
/permissions
查看目前的權限設定。
可以設定哪些操作允許執行、哪些需要詢問,以及哪些操作不允許執行。
不過除了 /permissions,實際使用 Claude Code 時還會碰到幾種不同的權限模式。
目前使用 Claude Code 時,常見的核心模式可以先認識這四種:
Manual
Accept Edits
Plan
Auto
不同模式最大的差別,可以先簡單理解成:
我要讓 Claude Code 有多少操作空間?
不用現在就把每個模式的所有細節背起來。
先知道差別,之後真的用到會比較容易理解。
第一次使用 Claude Code,我會先從 Manual Mode 開始。
在這個模式下,Claude Code 可以進行一般的專案分析,但遇到需要額外權限的操作時,會依照目前的權限設定詢問。
例如它準備執行某些指令時,我可能會看到確認畫面。
這時候我可以先看看 Claude Code 想做什麼,再決定要不要同意。
我目前剛開始學 Claude Code,所以大部分時間會先留在這個模式。
適合的情況:
第一次接觸 Claude Code
正在熟悉一個陌生專案
想知道 Claude 每一步準備做什麼
如果已經知道 Claude Code 接下來要修改什麼,可以切換到 Accept Edits。
這個模式會自動接受檔案編輯,不需要每一次修改檔案都重新確認。
例如我已經跟 Claude Code 討論好:
接下來幫我把首頁的 HTML 和 CSS 分開。
而且我也知道它接下來會連續修改幾個檔案。
這時候 Accept Edits 就比較方便。
不過它的名字是「接受編輯」,不是「什麼都自動同意」。
像某些終端機指令仍然可能需要確認。
適合的情況:
已經確認修改方向
接下來會連續修改多個檔案
不想每一次編輯都手動確認
這個模式是我目前最有興趣的一個。
Plan Mode 的重點很簡單:
先想怎麼做,不要急著改。
Claude Code 可以先閱讀專案、分析問題,再提出它準備怎麼處理。
例如之後我要加入登入功能,我可以先切到 Plan Mode,再問:
我想加入使用者登入功能。
先分析目前的專案,告訴我需要新增或修改哪些檔案,
以及你準備怎麼做。
這時候我可以先看它的規劃。
如果發現方向不對,就在真正修改程式之前先調整。
我覺得這對比較大的功能滿有用。
適合的情況:
準備加入比較大的功能
第一次接觸陌生專案
還不確定應該怎麼修改
想先確認 Claude 的做法
而且下一篇我們馬上就會真的用到它。
最後一個就比較不一樣了。
Auto Mode 會跳過權限確認,讓 Claude Code 可以更自主地執行操作。
這確實比較省事,但我現在不會使用。
原因也很簡單。
我現在連 Claude Code 平常到底會改哪些東西都還在學,如果直接把確認機制關掉,反而很難知道它實際做了什麼。
這種模式比較適合已經了解 Claude Code 的行為,而且執行環境本身也有做好隔離或其他保護措施的情況。
至少在這個系列前期,我會乖乖看它準備做什麼。
在 Claude Code 的互動介面中,可以使用:
Shift + Tab
循環切換不同的權限模式。
所以不一定要離開 Claude Code 再重新設定。
例如我原本在 Manual Mode,準備做一個比較大的功能時,就可以切換到 Plan Mode。
規劃完成後,再決定下一步要不要真的讓它修改程式。
這個操作之後會一直用到。
目前我會這樣使用:
| 模式 | 我會在什麼時候用 |
|---|---|
| Manual | 平常操作,尤其剛開始接觸專案時 |
| Accept Edits | 已經確認方向,準備連續修改檔案 |
| Plan | 大功能開始前,先分析和規劃 |
| Auto | 目前先不用,等真的了解風險再說 |
現在其實不用急著決定哪一個「最好」。
因為它們處理的是不同情況。
我目前最常用的還是 Manual,下一篇則會第一次正式使用 Plan。
等到開始做 AI 任務管理 Web App,我們的專案會慢慢變成:
ai-task-manager/
├── app.py
├── templates/
│ └── index.html
├── static/
│ └── style.css
└── database/
之後我會先:
cd ai-task-manager
再啟動:
claude
Claude Code 就可以從這個專案開始分析。
而且現在多知道了一件事。
如果我只是想了解專案,可以留在 Manual。
如果準備做一個比較大的功能,可以先切到 Plan。
真的確定修改方向後,再讓 Claude Code 動手。
今天沒有寫新的 Web App 功能,主要先搞懂兩件事情:Claude Code 在哪個專案裡工作,以及我可以給它多少操作權限。
這些東西現在看起來有點像設定,但後面開始修改真正的專案時就會一直碰到。
下一篇終於要建立我們的 AI 任務管理 Web App 了。
不過第一步還是不寫程式。
我想先把需求交給 Claude Code,看看它會怎麼拆這個專案。
這次剛好就能把今天介紹的 Plan Mode 拿來實際使用。