Claudeは、テキストファイルを表示および変更するためのAnthropicが定義したテキストエディタツールを使用できます。これにより、コードやその他のテキストドキュメントのデバッグ、修正、改善を行うことができます。このツールにより、Claudeはファイルと直接対話でき、変更を提案するだけでなく、実践的なサポートを提供できます。
| モデル | ツールバージョン |
|---|---|
| Claude 4.xモデル | text_editor_20250728 |
| Claude Sonnet 3.7 (廃止予定) | text_editor_20250124 |
Claude 4モデル用のtext_editor_20250728ツールにはundo_editコマンドが含まれていません。この機能が必要な場合は、Claude Sonnet 3.7 (廃止予定)を使用する必要があります。
古いツールバージョンは、新しいモデルとの下位互換性が保証されていません。常にモデルバージョンに対応するツールバージョンを使用してください。
テキストエディタツールを使用する場合の例としては、以下のようなものがあります:
テキストエディタツールは以下の方法で使用できます:
テキストエディタツールは、ファイルを表示および変更するためのいくつかのコマンドをサポートしています:
viewコマンドにより、Claudeはファイルの内容を検査するか、ディレクトリの内容をリストできます。ファイル全体または特定の行の範囲を読み込むことができます。
パラメータ:
command: 「view」である必要がありますpath: 表示するファイルまたはディレクトリへのパスview_range(オプション): 表示する開始行番号と終了行番号を指定する2つの整数の配列。行番号は1から始まり、終了行に-1を指定するとファイルの終わりまで読み込みます。このパラメータはファイルを表示する場合にのみ適用され、ディレクトリには適用されません。str_replaceコマンドにより、Claudeはファイル内の特定の文字列を新しい文字列に置換できます。これは正確な編集を行うために使用されます。
パラメータ:
command: 「str_replace」である必要がありますpath: 変更するファイルへのパスold_str: 置換するテキスト(空白とインデントを含めて完全に一致する必要があります)new_str: 古いテキストの代わりに挿入する新しいテキストcreateコマンドにより、Claudeは指定されたコンテンツで新しいファイルを作成できます。
パラメータ:
command: 「create」である必要がありますpath: 新しいファイルを作成する場所へのパスfile_text: 新しいファイルに書き込むコンテンツinsertコマンドにより、Claudeはファイル内の特定の場所にテキストを挿入できます。
パラメータ:
command: 「insert」である必要がありますpath: 変更するファイルへのパスinsert_line: テキストを挿入する行番号の後(ファイルの開始の場合は0)new_str: 挿入するテキストundo_editコマンドにより、Claudeはファイルに加えた最後の編集を元に戻すことができます。
このコマンドはClaude Sonnet 3.7 (廃止予定)でのみ利用可能です。Claude 4モデルでtext_editor_20250728を使用する場合はサポートされていません。
パラメータ:
command: 「undo_edit」である必要がありますpath: 最後の編集を元に戻すファイルへのパステキストエディタツールはスキーマレスツールとして実装されています。このツールを使用する場合、他のツールのような入力スキーマを提供する必要はありません。スキーマはClaudeのモデルに組み込まれており、変更することはできません。
ツールタイプはモデルバージョンによって異なります:
type: "text_editor_20250728"type: "text_editor_20250124"テキストエディタツールを実装する際は、以下の点に注意してください:
テキストエディタツールを使用する場合、様々なエラーが発生する可能性があります。以下は、それらの処理方法に関するガイダンスです:
The text editor tool uses the same pricing structure as other tools used with Claude. It follows the standard input and output token pricing based on the Claude model you're using.
In addition to the base tokens, the following additional input tokens are needed for the text editor tool:
| Tool | Additional input tokens |
|---|---|
text_editor_20250429 (Claude 4.x) | 700 tokens |
text_editor_20250124 (Claude Sonnet 3.7 (deprecated)) | 700 tokens |
ツール価格の詳細については、ツール使用価格を参照してください。
テキストエディタツールは他のClaudeツールと一緒に使用できます。ツールを組み合わせる場合は、以下を確認してください:
| 日付 | バージョン | 変更内容 |
|---|---|---|
| 2025年7月28日 | text_editor_20250728 | いくつかの問題を修正し、オプションのmax_charactersパラメータを追加した更新されたテキストエディタツールのリリース。text_editor_20250429と同一です。 |
| 2025年4月29日 | text_editor_20250429 | Claude 4用のテキストエディタツールのリリース。このバージョンはundo_editコマンドを削除しますが、他のすべての機能は保持されます。ツール名はstr_replaceベースのアーキテクチャを反映するように更新されました。 |
| 2025年3月13日 | text_editor_20250124 | スタンドアロンテキストエディタツールドキュメントの導入。このバージョンはClaude Sonnet 3.7に最適化されていますが、前のバージョンと同一の機能を備えています。 |
| 2024年10月22日 | text_editor_20241022 | Claude Sonnet 3.5(廃止)を使用したテキストエディタツールの初期リリース。view、create、、、およびコマンドを通じてファイルを表示、作成、編集するための機能を提供します。 |
テキストエディタツールをより便利で強力な方法で使用する方法のいくつかのアイデアを以下に示します:
テキストエディタツールを使用してアプリケーションを構築する際、Claudeの機能を活用して開発ワークフローと生産性を向上させる方法を見ることに期待しています。
テキストエディタツールとユーザープロンプトをClaudeに提供する
Claudeがツールを使用してファイルまたはディレクトリを検査する
viewコマンドを使用してファイルの内容を検査するか、ディレクトリの内容をリストしますviewコマンドを含むtool_useコンテンツブロックが含まれますviewコマンドを実行して結果を返す
max_charactersパラメータが指定されていた場合、ファイルの内容をその長さに切り詰めますtool_resultコンテンツブロックを含む新しいuserメッセージで会話を続けることで、結果をClaudeに返しますClaudeがツールを使用してファイルを変更する
str_replaceなどのコマンドを使用して変更を加えるか、insertを使用して特定の行番号にテキストを追加する場合がありますstr_replaceコマンドを使用する場合、Claudeは古いテキストと新しいテキストを含む適切にフォーマットされたツール使用リクエストを構築します編集を実行して結果を返す
Claudeが分析と説明を提供する
エディタ実装の初期化
ファイルの読み取り、書き込み、変更などのファイル操作を処理するヘルパー関数を作成します。ミスから回復するためのバックアップ機能の実装を検討してください。
エディタツール呼び出しの処理
コマンドタイプに基づいてClaudeからのツール呼び出しを処理する関数を作成します:
def handle_editor_tool(tool_call, model_version):
input_params = tool_call.input
command = input_params.get('command', '')
file_path = input_params.get('path', '')
if command == 'view':
# ファイルの内容を読み取って返す
pass
elif command == 'str_replace':
# ファイル内のテキストを置換
pass
elif command == 'create':
# 新しいファイルを作成
pass
elif command == 'insert':
# 位置にテキストを挿入
pass
elif command == 'undo_edit':
# Claude 4モデルかどうかを確認
if 'str_replace_based_edit_tool' in model_version:
return {"error": "undo_edit command is not supported in Claude 4"}
# Claude 3.7のバックアップから復元
passセキュリティ対策の実装
検証とセキュリティチェックを追加します:
Claudeの応答を処理
Claudeの応答からツール呼び出しを抽出して処理します:
# Claudeの応答でツール使用を処理
for content in response.content:
if content.type == "tool_use":
# コマンドに基づいてツールを実行
result = handle_editor_tool(content)
# 結果をClaudeに返す
tool_result = {
"type": "tool_result",
"tool_use_id": content.id,
"content": result
}str_replaceinsertundo_editClaudeでシェルコマンドを実行します。