Read(リード)

組み込みツール
Read
リード
指定したファイルの中身を読み込むためのClaude Codeのツール。テキストファイルだけでなく、画像(PNG/JPG)、PDF、Jupyterノートブックも読める。読み込んだ内容は行番号付きで出力される(Linuxの cat -n コマンドと同じ見た目)

料理ブログをClaude Codeで作っている初心者向け

Claudeにファイルの内容を踏まえて何かをしてほしいとき(例: 既存のレシピ記事を初心者向けにリライトしてほしい、料理写真のスクショを見てスマホ表示の改善点を指摘してほしい、PDFの食材成分表から数字を抜き出してほしい)に呼ぶ。Edit ツールでファイルの一部を書き換えてもらう前にも、同じファイルを必ず先に Read しておく必要がある

噛み砕くと、料理人にレシピを見せてから直してもらうのと同じ

料理人に「うちのカレーレシピをもうちょっと辛くしたい」と頼むとき、レシピそのものを見せずに口頭だけで頼んだら、たぶんめちゃくちゃな改変が返ってきます。

Claude Codeも同じで、ファイルの中身を見せていない状態で「直して」と言うと、ファイル名から内容を推測しに行きます。これが事故の温床。

Readは、レシピを目の前に広げる動作です。広げてから「ここの分量を倍に」「ここの手順を入れ替えて」と頼めば、ちゃんと現物に基づいた変更が返ってきます。

Readを呼ぶと画面に何が出てくるのか

Claudeが Read を呼ぶと、画面には「Read(ファイルパス)」という1行と、その下に行番号付きの中身が出てきます。

たとえば ~/projects/cooking-blog/content/curry-recipe.md を読ませると、こんな感じで返ってきます。

     1  # 基本のチキンカレー
     2
     3  ## 材料(4人分)
     4  - 鶏もも肉 400g
     5  - 玉ねぎ 2個
     6  - カレー粉 大さじ2
     7  ...

左の数字が行番号。これがあるから、Claudeは「6行目のカレー粉の量を倍にして」みたいな指示を正確に拾えるわけです。

地味だけど、行番号が振ってあるかどうかで作業精度がまるで変わります。

料理ブログで「既存レシピ記事のリライト前にRead」する再現手順

もう書いてある curry-recipe.md を、「もっと初心者向けに、調理時間の目安も入れて書き直してほしい」と頼みたい場面を想定します。

ステップ1: Claude Codeを起動して、料理ブログのフォルダに入る。

$ cd ~/projects/cooking-blog
$ claude

ステップ2: Claudeに直接こう頼みます。

content/curry-recipe.md を読んで、初心者向けに調理時間の目安を入れた版に書き直して。

ステップ3: するとClaudeはまず Read を呼びます。画面には「Read(content/curry-recipe.md)」の行が出て、行番号付きで中身が表示される。

ここでClaudeはようやく現物の構成を把握します。「材料リストはこういう順、手順は7ステップ、写真キャプションは入ってない」みたいな情報が頭に入る。

ステップ4: Read が終わると、Claudeは続けて Edit ツールを呼びに行きます。「3行目の見出し直後に調理時間の目安を入れる」「手順4のあとに『焦げそうになったら火を弱める』を追加」のような部分修正が、行単位で確実に入る。

ここで初心者がやりがちな勘違いがある。

「直接 Edit から始めればいいんじゃないの?」と思って、Claudeに「Edit でこの行を変えて」と頼みたくなる。でも Edit ツールは内部的に「先に同じファイルを Read していること」を要求していて、Read していないと弾かれます。安全装置です。

5000行ある記事から該当章だけを読ませたい時のやり方

料理ブログの下書きで、5000行近い長文ドラフト book-draft.md を書いているとします。

「第3章のスパイス解説のところだけ整理し直してほしい」みたいな場面で、5000行を全部読ませる必要はないし、そもそも一度に全部は読めません。Read はそのまま呼ぶと先頭から最大2000行までしか取らないからです。

そこで使うのが offsetlimit の2つの設定項目。

  • offset - 何行目から読み始めるかの指定(例: 1500なら1500行目から)
  • limit - 何行ぶん読むかの指定(例: 300なら300行ぶん)

第3章が book-draft.md の 1500行目あたりから始まっているなら、Claudeにこう頼みます。

book-draft.md の 1500行目から 300行ぶんだけ読んで、第3章のスパイス解説を整理し直してほしい。

Claudeは Readoffset=1500, limit=300 で呼んでくれて、必要な範囲だけ画面に出る。長文ドラフトを扱うときの定番ワザ。

料理ブログでの使いどころ

シーン1: 完成記事のスクリーンショットを見せて、スマホ表示の指摘をもらう

料理ブログの完成ページをスマホで開いて、画面のスクリーンショットを /mnt/c/Users/user/Desktop/screen.png に保存する。Claudeにこう頼みます。

~/Desktop/screen.png を読んで、スマホで見たときに改善できそうなところを指摘して。

Claudeが Read を画像ファイルに対して呼ぶと、その場で画像の中身を解釈して返してきます。「メイン写真の下のボタンがスマホ幅で2行に折り返してる」「材料リストの行間が詰まりすぎて読みづらい」みたいな視覚的指摘が返ってくる。

テキストだけじゃなく画像も読めるのが Read の強み。

シーン2: 食材データのPDFから栄養成分を抜き出す

「鶏もも肉100gあたりのタンパク質は何g?」みたいな数字を、農林水産省や食品メーカーのPDF資料から抜き出して記事に書きたいとき。

PDFを保存して、ファイルパスを Read に渡せば、PDFの中身もテキストとして拾ってくれます。10ページを超える大きいPDFなら、ページ範囲を指定することもできる。

~/Downloads/nutrition-data.pdf の3ページから5ページを読んで、鶏もも肉の栄養成分を抜き出して。

シーン3: 写真フォルダの中身をざっくり確認する

recipes/photos/ フォルダに料理写真が200枚入っていて、「サムネに使えそうな引きの絵だけピックアップしたい」場合。

Read 単体ではフォルダは読めないので、まずClaudeに GlobBash で写真の一覧を取ってもらい、その中の数枚を Read で見せて、どれが当たりっぽいかを判断してもらう、という流れになる。

初心者が踏みやすい落とし穴

  • 相対パスを渡してエラーになる./recipe.mdrecipes/curry.md のような略記は受け付けません。~/projects/cooking-blog/content/curry-recipe.md のように、ホームディレクトリから完全に書いた形(あるいは /home/user/... 始まり)で渡す
  • フォルダを指定して読もうとするRead はファイルしか読めません。「フォルダの中身一覧」が欲しいときは GlobBashls を使う
  • 5000行のファイルをそのまま読ませようとするRead はデフォルトで先頭2000行まで。長いファイルは offsetlimit で切って読ませるか、検索目的なら Grep を先に呼んでもらう
  • Read を飛ばして Edit をいきなり頼むEdit ツールは「先に同じファイルを Read 済みであること」を要求する仕様で、Read を通っていないと弾かれます。直そうとしているファイルは必ず先に Read
  • 同じファイルを何度もReadする。1セッションで一度Readすればしばらく内容は把握済み。同じファイルを毎回Readさせるとコンテキストが膨らんで会話の精度が落ちる
  • 10ページを超えるPDFをページ指定なしで渡すRead はそういうPDFを拒否する仕様で、ページ範囲(例: 3-5)を必ず指定する必要がある

関連するコマンドへの動線

  • /init - プロジェクト初日に CLAUDE.md の雛形を作るスラッシュコマンド。料理ブログのフォルダに入って最初に叩く
  • /memoryCLAUDE.md を後から編集するスラッシュコマンド。記事の文体ルールを Claude に覚えさせる場所を開く
  • /clear - コンテキストをまっさらにリセット。長く Read しすぎて会話が膨らんだときの掃除用
  • /compact - 会話の要点を残しつつ圧縮するスラッシュコマンド。/clear までは消したくないけど重い、というときに
  • /agents - 専門サブエージェントを呼び出して、特定の作業(レシピ整形・記事監査など)を任せる仕組み
  • Skills - 繰り返し使うワークフローを再利用可能な形でまとめておく仕組み。Read からの定型処理をパッケージ化したいときに
  • Hooks - ツール実行の前後にカスタム処理を差し込む仕組み。Read 後に自動で何かさせたい時に
  • MCP - 外部サービス(食材DBやレシピAPIなど)をClaude Codeから呼べるようにする仕組み
  • CLAUDE.md - プロジェクトごとのルールを書き留めるファイル。Read された内容に対して何をしてほしいかを事前に書いておくと、毎回の指示が短くて済む

参考リンク

書き方

Read(file_path="絶対パス", offset=数字, limit=数字, pages="ページ範囲") ※ Read はClaudeが裏で呼ぶツールなので、人間がコマンドとして直接打つわけではない。指示は「~/projects/cooking-blog/content/curry-recipe.md を読んで」のように自然言語で渡せばよい

やってみるとこうなる

入力

content/curry-recipe.md を読んで、初心者向けに調理時間の目安を入れた版に書き直して。

出力例

Read(content/curry-recipe.md)
     1  # 基本のチキンカレー
     2
     3  ## 材料(4人分)
     4  - 鶏もも肉 400g
     5  - 玉ねぎ 2個
     6  - カレー粉 大さじ2
     ...

このページに出てきた言葉

ファイルパス
ファイルやフォルダの場所を表す文字列。例: <code>~/projects/cooking-blog/content/curry-recipe.md</code>
絶対パス
ルート(一番上の階層)からスタートしてファイルにたどり着くまでの全経路を書いたパス。Read ツールはこれが必須で、<code>./recipe.md</code> のような略記は受け付けない
行番号付き出力
ファイルの各行の頭に1, 2, 3…と番号が振られた状態で表示される形式。Linuxの <code>cat -n</code> コマンドと同じ見た目
offset
Read に書き足せる設定項目で、ファイルの何行目から読み始めるかを指定する数字
limit
Read に書き足せる設定項目で、何行ぶん読み込むかを指定する数字。指定しないと最大2000行まで自動で読み込む
Edit
ファイルの一部分だけをピンポイントで書き換えるためのツール。実行前に同じファイルを Read しておく必要がある
コンテキスト
Claudeが今の会話で覚えている内容の総量。長いファイルを何度も Read させると膨らんで、後半の応答精度が落ちる

関連項目

公式ドキュメント

https://code.claude.com/docs/en/tools-reference

-

← 戻る