iT邦幫忙

2026 iThome 鐵人賽

DAY 4
0
Claude AI

從零開始 Claude Code:30 天打造 AI 任務管理 Web App系列 第 4

[Day 4] Claude Code 到底看得到什麼?認識專案與工作目錄

  • 分享至 

  • xImage
  •  

上一篇我們已經把 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

查看目前的位置。

在哪裡執行 claude 有差嗎?

有。
假設我先執行:

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-test 外面的東西嗎?

如果需要 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 的四種權限模式

目前使用 Claude Code 時,常見的核心模式可以先認識這四種:

Manual
Accept Edits
Plan
Auto

不同模式最大的差別,可以先簡單理解成:

我要讓 Claude Code 有多少操作空間?

不用現在就把每個模式的所有細節背起來。
先知道差別,之後真的用到會比較容易理解。


Manual:手動模式

第一次使用 Claude Code,我會先從 Manual Mode 開始。
在這個模式下,Claude Code 可以進行一般的專案分析,但遇到需要額外權限的操作時,會依照目前的權限設定詢問。
例如它準備執行某些指令時,我可能會看到確認畫面。
這時候我可以先看看 Claude Code 想做什麼,再決定要不要同意。
我目前剛開始學 Claude Code,所以大部分時間會先留在這個模式。
適合的情況:

第一次接觸 Claude Code
正在熟悉一個陌生專案
想知道 Claude 每一步準備做什麼

Accept Edits:接受編輯

如果已經知道 Claude Code 接下來要修改什麼,可以切換到 Accept Edits。
這個模式會自動接受檔案編輯,不需要每一次修改檔案都重新確認。
例如我已經跟 Claude Code 討論好:

接下來幫我把首頁的 HTML 和 CSS 分開。

而且我也知道它接下來會連續修改幾個檔案。
這時候 Accept Edits 就比較方便。
不過它的名字是「接受編輯」,不是「什麼都自動同意」。
像某些終端機指令仍然可能需要確認。
適合的情況:

已經確認修改方向
接下來會連續修改多個檔案
不想每一次編輯都手動確認

Plan:計畫模式

這個模式是我目前最有興趣的一個。
Plan Mode 的重點很簡單:

先想怎麼做,不要急著改。

Claude Code 可以先閱讀專案、分析問題,再提出它準備怎麼處理。
例如之後我要加入登入功能,我可以先切到 Plan Mode,再問:

我想加入使用者登入功能。

先分析目前的專案,告訴我需要新增或修改哪些檔案,
以及你準備怎麼做。

這時候我可以先看它的規劃。
如果發現方向不對,就在真正修改程式之前先調整。
我覺得這對比較大的功能滿有用。
適合的情況:

準備加入比較大的功能
第一次接觸陌生專案
還不確定應該怎麼修改
想先確認 Claude 的做法

而且下一篇我們馬上就會真的用到它。


Auto:自動模式

最後一個就比較不一樣了。
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。


回到之後的 Web App

等到開始做 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 拿來實際使用。


上一篇
[Day 3] 安裝 Claude Code,第一次在終端機和它說話
下一篇
[Day 5] 不急著寫程式,先讓 Claude Code 幫我規劃專案
系列文
從零開始 Claude Code:30 天打造 AI 任務管理 Web App5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言