Claude Codeのツール仕様を初めて確認する人向け(Read/Edit との違いを知りたい人歓迎)
新規ファイル作成、または既存ファイルの全面書き換え。部分修正は Edit / MultiEdit を使う。
指定パスに新規ファイルを書き出すツール。既存ファイルがあった場合は上書きする。
初心者がよく勘違いするのは「Write を使えばコードを直せる」と思うところ。Writeは全面書き換えなので、部分修正には向かない。1行直したいだけなら Edit、複数箇所をまとめて直すなら MultiEdit、ファイルを丸ごと作る・全置換するなら Write、と使い分ける。
噛み砕くと
ノート1ページに何か書くとして、Writeは「真っ白なページに最初から書き直す」、Editは「鉛筆で1行だけ直す」、MultiEditは「3箇所を一気に直す」という違い。新しいページを作るならWrite、既存ページの一部だけ直すならEdit。
使い分けを間違えると、Editで済むのにWriteで全消ししてしまう事故が起きる。「全部書き直すか?」「一部だけ直すか?」を毎回確認するのが安全運転。
具体的に何ができる?
- 新規ファイルを指定パスに作成する
- 既存ファイルがある場合は内容を完全に置き換える
- 絶対パス(=ルートからの完全な住所)での指定が必須
- 既存ファイル上書き時は事前に Read 必須(=意図しない上書きを防ぐガード)
使いどころ3シナリオ
シナリオ1: 新規ファイルを作りたい
「README.md(=プロジェクトの説明文ファイル)を新規作成して」「scripts/deploy.sh(=デプロイ用シェルスクリプト)を書いて」「.env.example(=環境変数のサンプル設定)を作って」など、空から作るタイプの作業。Editは事前にファイルが存在している必要があるので使えない。Write一択。
シナリオ2: ファイルを丸ごと書き換える
古い設計のコードを別アーキテクチャ(=全体の作り)で全面書き直す時。1行ずつEditで直すより、Writeで全置換する方が早い。事前にRead→構造を理解した上でWrite。
シナリオ3: 設定ファイルの雛形を量産する
「全リポジトリに同じ .github/workflows/ci.yml(=GitHub Actions の自動テスト設定)を入れて」みたいな展開作業。1ファイルだけWriteを書いておけば、AIに同じ内容を別ディレクトリに横展開させられる。
初心者が踏みやすい落とし穴
- 既存ファイルを Read せずに Write すると消える。ガードで止まるはずだが、念のため Write 前は Read で内容確認する習慣をつける
- 部分修正に Write を使うとファイル全体を書き直すことになる。1行直したいなら Edit、複数箇所なら MultiEdit が正解
- 絶対パスでないと動かない。
./file.txtのような相対パスは受け付けない - ディレクトリは作ってくれない。
/path/to/new/dir/file.mdを Write する前に、親ディレクトリの存在を確認する(Bashでmkdir -pしておく)
書き方
Write(file_path="<absolute-path>", content="<text>")
やってみるとこうなる
入力
Write(file_path="/path/to/new.md", content="# Hello")
出力例
指定パスに新規ファイルが作成される。既存ファイル上書き時は事前にReadが必要。
このページに出てきた言葉
- パス
- ファイルの場所を示す文字列の住所。
- 絶対パス
- ルート <code>/</code> から始まる完全な住所。Claude Codeのツールは絶対パス必須が多い。
- README.md
- プロジェクトの説明文を書くMarkdownファイル。GitHub等で最初に表示される。
- シェルスクリプト
- シェル(ターミナル)で実行するコマンドを並べたファイル。<code>.sh</code>。
- 環境変数
- OS側に保管される設定値。APIキー等の秘密情報を保管する用途で使う。
- GitHub Actions
- GitHub上で自動でテスト実行・デプロイ等を行うCI/CD(=自動化パイプライン)の仕組み。