# Read

從本機檔案系統載入單一檔案的內容。支援純文字、原始碼、圖片、PDF 與 Jupyter notebook，並以 `cat -n` 風格回傳以 1 為起始的行號。

## 使用時機

- 在編輯或分析前，依已知路徑讀取原始檔案
- 檢視設定檔、lockfile、記錄或產出的成品
- 檢視使用者貼入對話中的螢幕截圖或示意圖
- 從長 PDF 手冊中擷取特定頁面範圍
- 開啟 `.ipynb` notebook 同時檢視程式碼 cell、markdown 與 cell 輸出

## 參數

- `file_path`（string，必填）：目標檔案的絕對路徑。相對路徑會被拒絕。
- `offset`（integer，選填）：從以 1 為起始的行號開始讀取。對大檔搭配 `limit` 使用很實用。
- `limit`（integer，選填）：從 `offset` 開始回傳的最大行數。未提供時預設為檔案頂端起的 2000 行。
- `pages`（string，選填）：PDF 檔案的頁碼範圍，例如 `"1-5"`、`"3"` 或 `"10-20"`。對超過 10 頁的 PDF 為必填；每次請求最多 20 頁。

## 範例

### 範例 1：讀取整個小檔案
僅以 `file_path` 為 `/Users/me/project/src/index.ts` 呼叫 `Read`。最多會回傳 2000 行並附行號，通常足以提供編輯所需的上下文。

### 範例 2：分頁瀏覽長記錄
對上萬行的記錄檔使用 `offset: 5001` 與 `limit: 500`，擷取狹窄區段而不浪費上下文 tokens。

### 範例 3：擷取特定 PDF 頁面
對於 `/tmp/spec.pdf` 這份 120 頁的 PDF，設 `pages: "8-15"` 只擷取所需章節。對大型 PDF 省略 `pages` 會產生錯誤。

### 範例 4：檢視圖片
傳入 PNG 或 JPG 螢幕截圖的絕對路徑。圖片會以視覺形式呈現，Claude Code 可直接對其推理。

## 注意事項

- 一律優先使用絕對路徑。若使用者提供了絕對路徑，就照用。
- 超過 2000 字元的行會被截斷；對於極寬的資料，請把回傳內容視為可能被截斷。
- 需要讀取多個獨立檔案嗎？在同一次回應中平行送出多個 `Read` 呼叫。
- `Read` 無法列出目錄。請改用 `Bash` 的 `ls` 呼叫或 `Glob` 工具。
- 讀取既有但空白的檔案會回傳系統提示而非檔案位元組，請明確處理該訊號。
- 在目前工作階段中，你必須先成功 `Read` 過同一個檔案，才能對其使用 `Edit`。
