Claude Computer Use : Contrôler un Ordinateur avec l'IA
By Dorian Laurenceau
📅 Dernière révision : 24 avril 2026. Mise à jour avec les retours et observations d'avril 2026.
🔗 Article pilier : API Claude : Guide Complet
Qu'est-ce que Computer Use ?
Computer Use est une fonctionnalité révolutionnaire qui permet à Claude d'interagir directement avec un ordinateur via des captures d'écran. Contrairement au Tool Use classique (qui appelle des fonctions), Computer Use permet à Claude de :
- →Voir l'écran de l'ordinateur via des captures d'écran
- →Comprendre les interfaces graphiques (boutons, menus, formulaires)
- →Agir sur l'ordinateur (cliquer, taper, faire défiler)
- →Vérifier le résultat de ses actions via de nouvelles captures
La Boucle d'Interaction
1. Votre code → Capture d'écran → Claude
2. Claude analyse l'écran → Décide une action
3. Claude → Action (clic, saisie...) → Votre code
4. Votre code exécute l'action → Nouvelle capture → Retour à l'étape 1
Cette boucle continue jusqu'à ce que la tâche soit accomplie ou que Claude détermine qu'il ne peut pas continuer.
Computer Use est la feature qui illustre le plus clairement l'écart entre ce que les modèles peuvent faire dans un sandbox et ce qu'ils devraient faire en production. L'annonce d'Anthropic était honnête sur son statut beta, et les praticiens sur r/ClaudeAI et r/LocalLLaMA l'ont été encore plus : la démo de Claude qui réserve un hôtel fonctionne ; le workflow de production où Claude navigue dans votre stack SaaS réelle ne fonctionne pas, et les raisons ne sont pas purement techniques.
Là où la communauté nuance à juste titre : le cadrage marketing « digital worker » suggère une fiabilité que la boucle sous-jacente n'offre pas encore. Les agents basés sur l'écran sont contraints par des sélecteurs fragiles (une classe CSS change, l'agent clique sur le mauvais bouton), par des latences longues (chaque cycle capture + décision prend des secondes), et par l'absence de sortie structurée (l'agent doit re-parser une page à partir des pixels à chaque tour). Des travaux comme WebArena chiffrent cela — les agents à l'état de l'art ne résolvent qu'une fraction des tâches web réelles de façon fiable, et ce chiffre évolue lentement.
Cadrage pragmatique : Computer Use brille pour les automatisations exploratoires ou ponctuelles où la fragilité est acceptable (parcours QA, captures de régression UI, scraping d'un site qui refuse d'exposer une API). Il échoue sur les chemins critiques qui disposent déjà d'une API, d'un serveur MCP ou d'une surface scriptable — y recourir relève alors du cosplay technique. Commencez par l'API, repliez-vous sur le navigateur, et traitez « l'agent voit l'écran » comme un dernier recours, pas comme le premier.
Quickstart : Premier Exemple
import anthropic
client = anthropic.Anthropic()
# Configuration de l'outil Computer Use
tools = [{
"type": "computer_20250124",
"name": "computer",
"display_width_px": 1920,
"display_height_px": 1080,
"display_number": 0 # Écran principal
}]
# Première requête avec une capture d'écran
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=4096,
tools=tools,
messages=[{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": take_screenshot() # Votre fonction de capture
}
},
{
"type": "text",
"text": "Ouvre le navigateur Chrome et va sur google.com"
}
]
}]
)
# Traiter les actions retournées par Claude
for block in response.content:
if block.type == "tool_use" and block.name == "computer":
action = block.input
execute_action(action) # Exécuter l'action sur l'ordinateur
Actions Disponibles
Claude peut effectuer les actions suivantes sur l'ordinateur :
| Action | Description | Paramètres |
|---|---|---|
click | Clic souris | x, y, button (left/right/middle) |
double_click | Double-clic | x, y |
type | Saisir du texte | text |
key | Appuyer sur une touche | key (ex: "Enter", "Tab", "ctrl+c") |
scroll | Faire défiler | x, y, direction (up/down), amount |
move | Déplacer la souris | x, y |
screenshot | Demander une nouvelle capture | , |
drag | Glisser-déposer | start_x, start_y, end_x, end_y |
Exemples d'Actions
# Clic sur un bouton
{"action": "click", "coordinate": [960, 540]}
# Double-clic pour ouvrir un fichier
{"action": "double_click", "coordinate": [200, 300]}
# Saisie de texte
{"action": "type", "text": "Hello World"}
# Raccourci clavier
{"action": "key", "key": "ctrl+s"}
# Défilement vers le bas
{"action": "scroll", "coordinate": [960, 540], "direction": "down", "amount": 3}
# Demande de nouvelle capture d'écran
{"action": "screenshot"}
Implémentation Complète
Boucle d'Agent Computer Use
import anthropic
import base64
import subprocess
client = anthropic.Anthropic()
def take_screenshot():
"""Capture l'écran et retourne le base64."""
# Linux avec scrot
subprocess.run(["scrot", "/tmp/screenshot.png"])
with open("/tmp/screenshot.png", "rb") as f:
return base64.standard_b64encode(f.read()).decode("utf-8")
def execute_action(action):
"""Exécute une action Computer Use sur l'ordinateur."""
action_type = action.get("action")
if action_type == "click":
x, y = action["coordinate"]
subprocess.run(["xdotool", "mousemove", str(x), str(y), "click", "1"])
elif action_type == "type":
subprocess.run(["xdotool", "type", "--clearmodifiers", action["text"]])
elif action_type == "key":
subprocess.run(["xdotool", "key", action["key"]])
elif action_type == "scroll":
x, y = action["coordinate"]
direction = action["direction"]
button = "4" if direction == "up" else "5"
subprocess.run(["xdotool", "mousemove", str(x), str(y)])
for _ in range(action.get("amount", 3)):
subprocess.run(["xdotool", "click", button])
elif action_type == "screenshot":
pass # Sera capturé au prochain tour de boucle
def computer_use_loop(task, max_steps=20):
"""Boucle principale Computer Use."""
messages = [{
"role": "user",
"content": [
{"type": "image", "source": {
"type": "base64", "media_type": "image/png",
"data": take_screenshot()
}},
{"type": "text", "text": task}
]
}]
tools = [{
"type": "computer_20250124",
"name": "computer",
"display_width_px": 1920,
"display_height_px": 1080,
"display_number": 0
}]
for step in range(max_steps):
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=4096,
tools=tools,
messages=messages
)
if response.stop_reason == "end_turn":
# Tâche terminée
for block in response.content:
if block.type == "text":
print(f"✅ Terminé : {block.text}")
return
# Exécuter les actions
messages.append({"role": "assistant", "content": response.content})
tool_results = []
for block in response.content:
if block.type == "tool_use":
execute_action(block.input)
# Nouvelle capture après l'action
tool_results.append({
"type": "tool_result",
"tool_use_id": block.id,
"content": [{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": take_screenshot()
}
}]
})
messages.append({"role": "user", "content": tool_results})
print("⚠️ Nombre maximum d'étapes atteint")
# Utilisation
computer_use_loop("Ouvre Firefox, va sur wikipedia.org et cherche 'intelligence artificielle'")
Cas d'Usage
1. Tests d'Interface Utilisateur
Automatisez les tests UI sans écrire de sélecteurs fragiles.
computer_use_loop("""
Test du formulaire d'inscription :
1. Remplis le champ "Nom" avec "Jean Dupont"
2. Remplis le champ "Email" avec "jean@test.com"
3. Remplis le champ "Mot de passe" avec "SecurePass123!"
4. Coche la case "J'accepte les conditions"
5. Clique sur "S'inscrire"
6. Vérifie qu'un message de succès apparaît
""")
2. Saisie de Données dans des Systèmes Legacy
| Scénario | Approche traditionnelle | Avec Computer Use |
|---|---|---|
| ERP sans API | Développement d'un connecteur custom (semaines) | Script en quelques heures |
| Application Windows legacy | RPA avec règles fragiles | Vision adaptative |
| Formulaires web complexes | Selenium avec sélecteurs qui cassent | Claude s'adapte aux changements UI |
3. Automatisation de Workflows
computer_use_loop("""
Workflow de reporting mensuel :
1. Ouvre l'application de comptabilité
2. Exporte le rapport des ventes du mois dernier en CSV
3. Ouvre Excel et importe le CSV
4. Crée un tableau croisé dynamique par région
5. Sauvegarde le fichier sur le Bureau
""")
Sécurité : Points Critiques
Risques Identifiés
| Risque | Niveau | Mitigation |
|---|---|---|
| Actions non intentionnelles | ⚠️ Élevé | Environnement sandbox, supervision |
| Injection via contenu écran | ⚠️ Moyen | Ne pas naviguer sur des sites non fiables |
| Accès à des données sensibles | ⚠️ Élevé | Limiter les permissions du compte utilisé |
| Boucle infinie d'actions | ⚠️ Moyen | Limiter max_steps, timeout global |
Checklist de Sécurité
- →Environnement isolé, VM ou conteneur Docker dédié
- →Compte non privilégié, L'utilisateur ne doit pas être admin
- →Réseau limité, Restreindre l'accès réseau au strictement nécessaire
- →Supervision humaine, Toujours avoir un moyen d'interrompre la session
- →Durée limitée, Définir un timeout maximum pour chaque tâche
- →Logs complets, Enregistrer toutes les captures d'écran et actions
- →Pas de credentials, Ne jamais demander à Claude de saisir des mots de passe réels
Docker Quickstart (Recommandé)
FROM ubuntu:22.04
# Environnement graphique minimal
RUN apt-get update && apt-get install -y \
xvfb x11vnc fluxbox \
firefox scrot xdotool \
python3 python3-pip
# Installer le SDK Anthropic
RUN pip3 install anthropic
# Script de démarrage
COPY start.sh /start.sh
RUN chmod +x /start.sh
EXPOSE 5900
CMD ["/start.sh"]
# start.sh
#!/bin/bash
Xvfb :99 -screen 0 1920x1080x24 &
export DISPLAY=:99
fluxbox &
x11vnc -display :99 -forever -nopw &
python3 /app/computer_use_agent.py
Limitations Actuelles
| Limitation | Impact | Contournement |
|---|---|---|
| Latence (~2-5s par action) | Workflows longs sont lents | Regrouper les instructions |
| Résolution fixe | Doit correspondre à l'écran réel | Configurer display_width_px correctement |
| Pas de drag-and-drop complexe | Certaines interactions impossibles | Combiner avec des raccourcis clavier |
| Erreurs de coordonnées | Clics parfois imprécis | Demander une capture de vérification |
| Coût élevé | Chaque capture = ~2500 tokens | Limiter le nombre d'étapes |
Comparaison avec les Alternatives
| Aspect | Computer Use (Claude) | Selenium/Playwright | RPA (UiPath, etc.) |
|---|---|---|---|
| Setup | Minimal (juste l'API) | Drivers, sélecteurs | Installation lourde |
| Fragilité | Faible (vision adaptative) | Élevée (sélecteurs cassent) | Moyenne |
| Vitesse | Lente (~2-5s/action) | Rapide | Rapide |
| Flexibilité | Très haute | Moyenne (web seulement) | Haute |
| Coût par exécution | Élevé (API tokens) | Quasi nul | License logicielle |
| Applications supportées | Toutes (via écran) | Web seulement | Desktop + Web |
Module 0 — Prompting Fundamentals
Build your first effective prompts from scratch with hands-on exercises.
Dorian Laurenceau
Full-Stack Developer & Learning DesignerFull-stack web developer and learning designer. I spent 4 years as a freelance full-stack developer and 4 years teaching React, JavaScript, HTML/CSS and WordPress to adult learners. Today I design learning paths in web development and AI, grounded in learning science. I founded learn-prompting.fr to make AI practical and accessible, and built the Bluff app to gamify political transparency.
Weekly AI Insights
Tools, techniques & news — curated for AI practitioners. Free, no spam.
Free, no spam. Unsubscribe anytime.
→Related Articles
FAQ
Qu'est-ce que Claude Computer Use ?+
Computer Use est une fonctionnalité qui permet à Claude d'interagir avec un ordinateur via des captures d'écran. Claude voit l'écran, décide quelles actions effectuer (clic, saisie, scroll) et reçoit de nouvelles captures pour continuer.
Comment fonctionne Computer Use techniquement ?+
C'est une boucle : votre code prend une capture d'écran, l'envoie à Claude, Claude retourne une action (clic à x,y ou saisie de texte), votre code exécute l'action, prend une nouvelle capture, et le cycle recommence.
Computer Use est-il sûr à utiliser ?+
Computer Use doit être utilisé avec précaution. Anthropic recommande de l'exécuter dans un environnement isolé (machine virtuelle, conteneur), de ne jamais l'utiliser avec des comptes admin privilégiés, et de superviser les sessions.
Quels sont les cas d'usage principaux de Computer Use ?+
Tests d'interface utilisateur automatisés, saisie de données dans des systèmes legacy, démonstrations de produits, automatisation de workflows sur des applications sans API, et scraping de données complexes.
Comment faire pour que Claude contrôle mon PC ?+
Claude Computer Use fonctionne via l'API. Vous devez configurer un environnement Docker ou une VM avec les outils anthropiques installés. Claude prend ensuite des captures d'écran, les analyse, et envoie des commandes (clic, clavier, défilement). Un guide de démarrage est disponible dans la documentation officielle d'Anthropic.
Claude est-il facile à utiliser pour contrôler un ordinateur ?+
L'utilisation de Computer Use nécessite des connaissances techniques (API, Docker, Python). Ce n'est pas un simple clic dans l'interface, il faut configurer un environnement dédié. Cependant, avec le SDK Python d'Anthropic, le code de base tient en 20 lignes et de nombreux tutoriels sont disponibles.