This feature is eligible for Zero Data Retention (ZDR). When your organization has a ZDR arrangement, data sent through this feature is not stored after the API response is returned.
Claude peut utiliser un outil d'éditeur de texte conforme au schéma Anthropic pour afficher et modifier des fichiers texte, vous aidant à déboguer, corriger et améliorer votre code ou d'autres documents texte. Cela permet à Claude d'interagir directement avec vos fichiers, en fournissant une assistance pratique plutôt que de simplement suggérer des modifications.
Pour le support des modèles, consultez la Référence des outils.
Voici quelques exemples de quand utiliser l'outil d'éditeur de texte :
Fournissez l'outil d'éditeur de texte (nommé str_replace_based_edit_tool) à Claude en utilisant l'API Messages.
Vous pouvez éventuellement spécifier un paramètre max_characters pour contrôler la troncature lors de la visualisation de fichiers volumineux.
max_characters est uniquement compatible avec text_editor_20250728 et les versions ultérieures de l'outil d'éditeur de texte.
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-opus-4-6",
"max_tokens": 1024,
"tools": [
{
"type": "text_editor_20250728",
"name": "str_replace_based_edit_tool",
"max_characters": 10000
}
],
"messages": [
{
"role": "user",
"content": "There'\''s a syntax error in my primes.py file. Can you help me fix it?"
}
]
}'L'outil d'éditeur de texte peut être utilisé de la manière suivante :
Fournissez à Claude l'outil d'éditeur de texte et une invite utilisateur
Claude utilise l'outil pour examiner les fichiers ou répertoires
view pour examiner le contenu des fichiers ou lister le contenu des répertoirestool_use avec la commande viewExécutez la commande view et retournez les résultats
max_characters a été spécifié dans la configuration de l'outil, tronquez le contenu du fichier à cette longueuruser contenant un bloc de contenu tool_resultClaude utilise l'outil pour modifier les fichiers
str_replace pour apporter des modifications ou insert pour ajouter du texte à un numéro de ligne spécifique.str_replace, Claude construit une demande d'utilisation d'outil correctement formatée avec l'ancien texte et le nouveau texte pour le remplacerExécutez la modification et retournez les résultats
Claude fournit son analyse et son explication
L'outil d'éditeur de texte prend en charge plusieurs commandes pour afficher et modifier des fichiers :
La commande view permet à Claude d'examiner le contenu d'un fichier ou de lister le contenu d'un répertoire. Elle peut lire l'intégralité du fichier ou une plage de lignes spécifique.
Paramètres :
command : Doit être « view »path : Le chemin du fichier ou du répertoire à afficherview_range (optionnel) : Un tableau de deux entiers spécifiant les numéros de ligne de début et de fin à afficher. Les numéros de ligne sont indexés à partir de 1, et -1 pour la ligne de fin signifie lire jusqu'à la fin du fichier. Ce paramètre s'applique uniquement lors de l'affichage de fichiers, pas de répertoires.La commande str_replace permet à Claude de remplacer une chaîne spécifique dans un fichier par une nouvelle chaîne. Ceci est utilisé pour effectuer des modifications précises.
Paramètres :
command : Doit être « str_replace »path : Le chemin du fichier à modifierold_str : Le texte à remplacer (doit correspondre exactement, y compris les espaces et l'indentation)new_str : Le nouveau texte à insérer à la place de l'ancien texteLa commande create permet à Claude de créer un nouveau fichier avec le contenu spécifié.
Paramètres :
command : Doit être « create »path : Le chemin où le nouveau fichier doit être crééfile_text : Le contenu à écrire dans le nouveau fichierLa commande insert permet à Claude d'insérer du texte à un emplacement spécifique dans un fichier.
Paramètres :
command : Doit être « insert »path : Le chemin du fichier à modifierinsert_line : Le numéro de ligne après lequel insérer le texte (0 pour le début du fichier)insert_text : Le texte à insérerCet exemple montre comment Claude utilise l'outil d'édition de texte pour corriger une erreur de syntaxe dans un fichier Python.
Tout d'abord, votre application fournit à Claude l'outil d'édition de texte et une invite pour corriger une erreur de syntaxe :
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-opus-4-6",
"max_tokens": 1024,
"tools": [
{
"type": "text_editor_20250728",
"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?"
}
]
}'Claude utilise d'abord l'outil d'édition de texte pour afficher le fichier :
{
"id": "msg_01XAbCDeFgHiJkLmNoPQrStU",
"model": "claude-opus-4-6",
"stop_reason": "tool_use",
"role": "assistant",
"content": [
{
"type": "text",
"text": "I'll 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",
"id": "toolu_01AbCdEfGhIjKlMnOpQrStU",
"name": "str_replace_based_edit_tool",
"input": {
"command": "view",
"path": "primes.py"
}
}
]
}Votre application doit ensuite lire le fichier et retourner son contenu à Claude :
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-opus-4-6",
"max_tokens": 1024,
"tools": [
{
"type": "text_editor_20250728",
"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?"
},
{
"role": "assistant",
"content": [
{
"type": "text",
"text": "I'\''ll 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",
"id": "toolu_01AbCdEfGhIjKlMnOpQrStU",
"name": "str_replace_based_edit_tool",
"input": {
"command": "view",
"path": "primes.py"
}
}
]
},
{
"role": "user",
"content": [
{
"type": "tool_result",
"tool_use_id": "toolu_01AbCdEfGhIjKlMnOpQrStU",
"content": "1: def is_prime(n):\n2: \"\"\"Check if a number is prime.\"\"\"\n3: if n <= 1:\n4: return False\n5: if n <= 3:\n6: return True\n7: if n % 2 == 0 or n % 3 == 0:\n8: return False\n9: i = 5\n10: while i * i <= n:\n11: if n % i == 0 or n % (i + 2) == 0:\n12: return False\n13: i += 6\n14: return True\n15: \n16: def get_primes(limit):\n17: \"\"\"Generate a list of prime numbers up to the given limit.\"\"\"\n18: primes = []\n19: for num in range(2, limit + 1)\n20: if is_prime(num):\n21: primes.append(num)\n22: return primes\n23: \n24: def main():\n25: \"\"\"Main function to demonstrate prime number generation.\"\"\"\n26: limit = 100\n27: prime_list = get_primes(limit)\n28: print(f\"Prime numbers up to {limit}:\")\n29: print(prime_list)\n30: print(f\"Found {len(prime_list)} prime numbers.\")\n31: \n32: if __name__ == \"__main__\":\n33: main()"
}
]
}
]
}'Numéros de ligne
Dans l'exemple ci-dessus, le résultat de l'outil view inclut le contenu du fichier avec les numéros de ligne ajoutés au début de chaque ligne (par exemple, « 1: def is_prime(n): »). Les numéros de ligne ne sont pas obligatoires, mais ils sont essentiels pour utiliser avec succès le paramètre view_range pour examiner des sections spécifiques de fichiers et le paramètre insert_line pour ajouter du contenu à des emplacements précis.
Claude identifie l'erreur de syntaxe et utilise la commande str_replace pour la corriger :
{
"id": "msg_01VwXyZAbCdEfGhIjKlMnO",
"model": "claude-opus-4-6",
"stop_reason": "tool_use",
"role": "assistant",
"content": [
{
"type": "text",
"text": "I found the syntax error in your primes.py file. In the `get_primes` function, there is a missing colon (:) at the end of the for loop line. Let me fix that for you."
},
{
"type": "tool_use",
"id": "toolu_01PqRsTuVwXyZAbCdEfGh",
"name": "str_replace_based_edit_tool",
"input": {
"command": "str_replace",
"path": "primes.py",
"old_str": " for num in range(2, limit + 1)",
"new_str": " for num in range(2, limit + 1):"
}
}
]
}Votre application doit ensuite effectuer la modification et retourner le résultat :
ant messages create <<'YAML'
model: claude-opus-4-6
max_tokens: 1024
tools:
- type: text_editor_20250728
name: str_replace_based_edit_tool
messages:
# Previous messages...
- role: assistant
content:
- type: text
text: >-
I found the syntax error in your primes.py file. In the `get_primes`
function, there is a missing colon (:) at the end of the for loop
line. Let me fix that for you.
- type: tool_use
id: toolu_01PqRsTuVwXyZAbCdEfGh
name: str_replace_based_edit_tool
input:
command: str_replace
path: primes.py
old_str: " for num in range(2, limit + 1)"
new_str: " for num in range(2, limit + 1):"
- role: user
content:
- type: tool_result
tool_use_id: toolu_01PqRsTuVwXyZAbCdEfGh
content: Successfully replaced text at exactly one location.
YAMLEnfin, Claude fournit une explication complète de la correction :
{
"id": "msg_01IjKlMnOpQrStUvWxYzAb",
"model": "claude-opus-4-6",
"stop_reason": "end_turn",
"role": "assistant",
"content": [
{
"type": "text",
"text": "I've fixed the syntax error in your primes.py file. The issue was in the `get_primes` function at line 19. There was a missing colon (:) at the end of the for loop line.\n\nHere's what I changed:\n\nFrom:\n```python\nfor num in range(2, limit + 1)\n```\n\nTo:\n```python\nfor num in range(2, limit + 1):\n```\n\nIn Python, a colon is required at the end of statements that start a new code block, such as for loops, if statements, function definitions, etc. Without the colon, Python raises a syntax error because it doesn't know where the code block begins.\n\nYour code should now run correctly. The function will properly generate a list of prime numbers up to the specified limit."
}
]
}L'outil d'édition de texte est implémenté comme un outil sans schéma. Lorsque vous utilisez cet outil, vous n'avez pas besoin de fournir un schéma d'entrée comme avec d'autres outils ; le schéma est intégré au modèle de Claude et ne peut pas être modifié.
Le type d'outil est type: "text_editor_20250728" pour les modèles Claude 4.
Initialiser votre implémentation d'éditeur
Créez des fonctions d'assistance pour gérer les opérations de fichiers comme la lecture, l'écriture et la modification de fichiers. Envisagez d'implémenter une fonctionnalité de sauvegarde pour récupérer les erreurs.
Gérer les appels de l'outil d'édition
Créez une fonction qui traite les appels d'outils de Claude en fonction du type de commande :
def handle_editor_tool(tool_call):
input_params = tool_call.input
command = input_params.get("command", "")
file_path = input_params.get("path", "")
if command == "view":
# Read and return file contents
pass
elif command == "str_replace":
# Replace text in file
pass
elif command == "create":
# Create new file
pass
elif command == "insert":
# Insert text at location
passImplémenter les mesures de sécurité
Ajoutez des validations et des vérifications de sécurité :
Traiter les réponses de Claude
Extrayez et gérez les appels d'outils des réponses de Claude :
# Process tool use in Claude's response
for content in response.content:
if content.type == "tool_use":
# Execute the tool based on command
result = handle_editor_tool(content)
# Return result to Claude
tool_result = {
"type": "tool_result",
"tool_use_id": content.id,
"content": result,
}Lors de l'implémentation de l'outil d'édition de texte, gardez à l'esprit :
Lors de l'utilisation de l'outil d'édition de texte, diverses erreurs peuvent survenir. Voici des conseils sur la façon de les gérer :
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 |
Pour plus d'informations détaillées sur la tarification des outils, consultez Tarification de l'utilisation des outils.
L'outil d'édition de texte peut être utilisé aux côtés d'autres outils Claude. Lors de la combinaison d'outils, assurez-vous que :
| Date | Version | Modifications |
|---|---|---|
| 28 juillet 2025 | text_editor_20250728 | Publication d'un outil d'édition de texte mis à jour qui corrige certains problèmes et ajoute un paramètre max_characters optionnel. Il est par ailleurs identique à text_editor_20250429. |
| 29 avril 2025 | text_editor_20250429 | Publication de l'outil d'édition de texte pour Claude 4. Cette version supprime la commande undo_edit mais conserve toutes les autres capacités. Le nom de l'outil a été mis à jour pour refléter son architecture basée sur str_replace. |
| 13 mars 2025 | text_editor_20250124 | Introduction de la documentation autonome de l'outil d'édition de texte. Cette version est optimisée pour Claude Sonnet 3.7 mais a des capacités identiques à la version précédente. |
| 22 octobre 2024 | text_editor_20241022 | Publication initiale de l'outil d'édition de texte avec Claude Sonnet 3.5 (retiré). Fournit des capacités pour afficher, créer et modifier des fichiers via les commandes view, create, str_replace, insert et undo_edit. |
Voici quelques idées sur la façon d'utiliser l'outil d'édition de texte de manière plus pratique et puissante :
L'outil d'édition de texte permet à Claude de travailler directement avec votre base de code, en soutenant les flux de travail du débogage à la documentation automatisée.
Apprenez comment implémenter des flux de travail d'outils pour une utilisation avec Claude.
Exécutez des commandes shell avec Claude.
Was this page helpful?