99 lines
3.9 KiB
Markdown
99 lines
3.9 KiB
Markdown
# リファレンス: ローカルファイル操作ツール仕様
|
||
|
||
Claude Code がエージェントとして使うファイル操作ツールの仕様。
|
||
Pod のツール設計の参考資料。
|
||
|
||
## Read
|
||
|
||
ファイルを読む。画像・PDF・Jupyter notebook にも対応。
|
||
|
||
| パラメータ | 型 | 必須 | 説明 |
|
||
|---|---|---|---|
|
||
| `file_path` | string | 必須 | 絶対パス |
|
||
| `offset` | integer | 任意 | 読み開始行番号(0始まり) |
|
||
| `limit` | integer | 任意 | 読み取り行数(offset と併用) |
|
||
| `pages` | string | 任意 | PDF用ページ範囲 (例: `"1-5"`)。最大20ページ/回 |
|
||
|
||
- デフォルトで先頭から最大2000行
|
||
- 出力は行番号付き(1始まり)
|
||
- ディレクトリは読めない
|
||
|
||
## Write
|
||
|
||
ファイルを新規作成、または全体上書き。
|
||
|
||
| パラメータ | 型 | 必須 | 説明 |
|
||
|---|---|---|---|
|
||
| `file_path` | string | 必須 | 絶対パス |
|
||
| `content` | string | 必須 | 書き込む内容全体 |
|
||
|
||
- 既存ファイルは上書き
|
||
- 既存ファイルを Write する前に Read が必要(未読だとエラー)
|
||
|
||
## Edit
|
||
|
||
既存ファイルの部分的な文字列置換。
|
||
|
||
| パラメータ | 型 | 必須 | 説明 |
|
||
|---|---|---|---|
|
||
| `file_path` | string | 必須 | 絶対パス |
|
||
| `old_string` | string | 必須 | 置換対象(ファイル内で一意であること) |
|
||
| `new_string` | string | 必須 | 置換後(old_string と異なること) |
|
||
| `replace_all` | boolean | 任意 | `true` で全出現箇所を置換。デフォルト `false` |
|
||
|
||
- 事前に Read が必要(未読だとエラー)
|
||
- `old_string` がファイル内で一意でないとエラー(`replace_all: true` 除く)
|
||
|
||
## Glob
|
||
|
||
ファイルパターン検索。
|
||
|
||
| パラメータ | 型 | 必須 | 説明 |
|
||
|---|---|---|---|
|
||
| `pattern` | string | 必須 | glob パターン (例: `"**/*.rs"`) |
|
||
| `path` | string | 任意 | 検索ディレクトリ。省略時はカレント |
|
||
|
||
- 結果は更新日時順ソート
|
||
|
||
## Grep
|
||
|
||
ファイル内容の正規表現検索(ripgrep ベース)。
|
||
|
||
| パラメータ | 型 | 必須 | 説明 |
|
||
|---|---|---|---|
|
||
| `pattern` | string | 必須 | 正規表現パターン |
|
||
| `path` | string | 任意 | 検索対象。省略時はカレント |
|
||
| `glob` | string | 任意 | ファイルフィルタ (例: `"*.rs"`) |
|
||
| `type` | string | 任意 | ファイル種別 (例: `"rust"`, `"py"`) |
|
||
| `output_mode` | enum | 任意 | `"files_with_matches"` (デフォルト) / `"content"` / `"count"` |
|
||
| `-n` | boolean | 任意 | 行番号表示 (content モード、デフォルト `true`) |
|
||
| `-i` | boolean | 任意 | 大文字小文字無視 |
|
||
| `-A` | number | 任意 | マッチ後の行数 |
|
||
| `-B` | number | 任意 | マッチ前の行数 |
|
||
| `-C` | number | 任意 | マッチ前後の行数 |
|
||
| `multiline` | boolean | 任意 | 複数行マッチ。デフォルト `false` |
|
||
| `head_limit` | number | 任意 | 出力件数制限。デフォルト 250 |
|
||
| `offset` | number | 任意 | 先頭N件スキップ |
|
||
|
||
## Bash
|
||
|
||
シェルコマンド実行。
|
||
|
||
| パラメータ | 型 | 必須 | 説明 |
|
||
|---|---|---|---|
|
||
| `command` | string | 必須 | 実行するコマンド |
|
||
| `description` | string | 任意 | コマンドの説明 |
|
||
| `timeout` | number | 任意 | タイムアウト ms (最大 600000、デフォルト 120000) |
|
||
| `run_in_background` | boolean | 任意 | バックグラウンド実行 |
|
||
|
||
- 作業ディレクトリはコマンド間で永続
|
||
- シェル状態(変数・エイリアス)は永続しない
|
||
|
||
## 設計上の特徴
|
||
|
||
- **パスは全て絶対パス**
|
||
- **Read → Edit/Write の順序制約**: 未読ファイルの編集を防ぐ安全弁
|
||
- **専用ツール優先**: cat/grep/find/sed の代わりに専用ツールを使う
|
||
- **冪等性**: Edit は差分ベース、Write は全体上書き
|
||
- **ワークフロー**: Glob/Grep で探索 → Read で確認 → Edit で変更
|