Claude can use Anthropic’s text editor tool to view and modify text files, helping you debug, fix, and improve code or other text documents. This enables Claude to interact directly with your files, providing practical assistance rather than just suggestions.

Preparation Before Using the Text Editor Tool

Select a Compatible Model Anthropic’s text editor tool supports the following Claude models:

  • Claude 4 Models (claude-opus-4-20250514, claude-sonnet-4-20250514): text_editor_20250429
  • Claude 3.7 Sonnet (claude-3-7-sonnet-20250219): text_editor_20250124
  • Claude 3.5 Sonnet (claude-3-5-sonnet-20241022): text_editor_20241022

Claude 4 models use a completely new text editor tool that is incompatible with older versions. Make sure to use the correct tool type and name.

Model-Specific Tool Configuration

Model VersionTool TypeTool NameSupported Features
Claude 4 (Opus/Sonnet)text_editor_20250429str_replace_based_edit_toolview, str_replace, create
Claude 3.7 Sonnettext_editor_20250124str_replace_editorview, str_replace, create, undo_edit
Claude 3.5 Sonnettext_editor_20241022str_replace_editorview, str_replace, create, undo_edit

Important Change: Claude 4 models no longer support the undo_edit command. Please remove any dependencies on this functionality from your code.

Evaluating Use Cases

Here are some typical scenarios for using the text editor tool:

  • Code Debugging: Help identify and fix issues in code, from syntax errors to logical problems.
  • Code Refactoring: Improve code structure, readability, and performance through targeted edits.
  • Documentation Generation: Add docstrings, comments, or README files to your codebase.
  • Test Creation: Create unit tests based on implementation understanding.

Using the Text Editor Tool

Provide the text editor tool to Claude through the Messages API: You need to install the anthropic package:

pip install anthropic

Usage Example:

import anthropic

client = anthropic.Anthropic(
    api_key="AIHUBMIX_API_KEY", # Replace with the key you generated in AiHubMix
    base_url="https://aihubmix.com"
)

response = client.messages.create(
    model="claude-sonnet-4-20250514",  # or claude-opus-4-20250514
    max_tokens=1024,
    tools=[
        {
            "type": "text_editor_20250429",
            "name": "str_replace_based_edit_tool"
        }
    ],
    messages=[
        {
            "role": "user", 
            "content": "There's a syntax error in my primes.py file. Can you help me fix it?"
        }
    ]
)

print("Response content:")
for message in response.content:
    print(message.text)

Migrating to Claude 4

If you’re migrating from Claude 3.7 Sonnet to Claude 4 models, please note the following changes:

Update Tool Configuration

python
# Claude 3.7 Sonnet
tools=[
    {
        "type": "text_editor_20250124",
        "name": "str_replace_editor"
    }
]

# Claude 4 (Opus/Sonnet)
tools=[
    {
        "type": "text_editor_20250429",
        "name": "str_replace_based_edit_tool"
    }
]

Remove Unsupported Features

  • undo_edit command: Claude 4 models no longer support the undo edit functionality
  • Please remove any logic that depends on undo_edit from your code

Response Example:

{
  "id": "msg_bdrk_012xyNaFCQg4zsVcTk5VkDAe",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "I'd be happy to help you fix the syntax error in your `primes.py` file. First, let me take a look at the file to identify the issue."
    },
    {
      "type": "tool_use",
      "text": "",
      "id": "toolu_bdrk_01P6jQG6suDSsDjzugqGVHWC",
      "name": "str_replace_based_edit_tool",
      "input": {
        "command": "view",
        "path": "/repo/primes.py"
      }
    }
  ],
  "model": "claude-sonnet-4-20250514",
  "stop_reason": "tool_use",
  "usage": {
    "input_tokens": 1042,
    "output_tokens": 115
  }
}