Page informative, sans valeur de conseil. OpenHands exécute du code et des commandes. Lisez les points de vigilance avant tout usage, installez depuis la source officielle et vérifiez la licence.
À quoi ça sert
OpenHands est un environnement d'agent capable de mener une tâche de développement de bout en
bout. Vous formulez un objectif (« corrige le bug de l'issue #42 et ajoute un test de
non-régression ») ; l'agent planifie, écrit du code, lance des commandes dans un
conteneur d'exécution isolé, lit les sorties et itère. Une interface web sur
localhost:3000 permet de suivre et de piloter chaque étape. C'est le projet anciennement
connu sous le nom OpenDevin.
Ce qui fait sa force
- Une vraie boucle d'agent. Là où un assistant suggère, OpenHands agit : il enchaîne édition, exécution, lecture des résultats et correction — exactement ce qu'on attend pour automatiser une tâche complète.
- Exécution sandboxée par défaut. Le code tourne dans un conteneur d'exécution dédié, séparé de votre système. L'isolation est au cœur de l'architecture, pas un ajout.
- Le modèle reste votre choix. OpenHands se branche sur le LLM que vous fournissez (Anthropic, OpenAI ou compatible). Les grands modèles donnent les meilleurs résultats sur les tâches longues, mais rien n'est imposé.
- Interface web pour garder la main. On suit le raisonnement, on interrompt, on corrige — la supervision est intégrée, pas optionnelle.
-
Cœur sous licence MIT. Le projet et ses images Docker principales sont MIT, donc
réutilisables largement (voir la nuance sur le répertoire
enterprise/plus bas).
Pour qui
Pour le développeur expérimenté qui maîtrise Docker et git, et comprend ce qu'implique l'exécution de code autonome. Ce n'est pas un premier pas : pour découvrir l'IA qui code, commencez par Continue ou Aider. Pour un agent plus léger, intégré à VS Code, voyez Cline.
Attention. OpenHands exécute du code. Le conteneur limite la portée, mais l'agent peut écrire des fichiers, faire des requêtes réseau et — selon la configuration — accéder à des volumes que vous montez. Supervisez chaque session ; ne le pointez jamais sur de la production sans précautions strictes.
Installation
Prérequis
Docker est indispensable (installez-le depuis docker.com). Une clé API LLM est requise (Anthropic, OpenAI ou compatible).
Lancer OpenHands
Source officielle : github.com/OpenHands/OpenHands. Les numéros de version évoluent vite : vérifiez la commande à jour dans la documentation officielle. À titre indicatif, la forme actuelle :
docker run -it --rm --pull=always \
-e AGENT_SERVER_IMAGE_REPOSITORY=ghcr.io/openhands/agent-server \
-e AGENT_SERVER_IMAGE_TAG=1.26.0-python \
-e LOG_ALL_EVENTS=true \
-v /var/run/docker.sock:/var/run/docker.sock \
-v ~/.openhands:/.openhands \
-p 3000:3000 \
--add-host host.docker.internal:host-gateway \
--name openhands-app \
docker.openhands.dev/openhands/openhands:1.8
Ouvrez ensuite http://localhost:3000, renseignez votre clé API LLM et définissez le répertoire de travail.
Points de vigilance
Le risque n'est pas une « machine qui ralentit » : c'est un agent qui exécute réellement du code. L'isolation Docker réduit la surface, sans la supprimer. Les vrais points :
| Point d'attention | Niveau | Ce qu'il faut savoir |
|---|---|---|
| Exécution de code et de commandes par l'agent | 🔴 réel | OpenHands crée, modifie, supprime des fichiers et lance des commandes dans son conteneur. Supervisez chaque session, ne le lancez que sur un dépôt isolé (copie ou branche), jamais sur de la production sans filet. |
Socket Docker monté (/var/run/docker.sock) |
🔴 selon configuration | Monter le socket Docker accorde des droits étendus sur l'hôte : à réserver au développement local, sur une machine de confiance. Ne le faites pas sur un serveur partagé ou exposé. |
| Volumes montés trop larges | 🟡 selon configuration | Ne montez que les répertoires nécessaires. Éviter de monter le dossier personnel ou des chemins contenant des secrets limite ce que l'agent peut lire ou modifier. |
| Code et contexte envoyés au LLM | 🟡 selon provider | OpenHands s'appuie sur un LLM externe : fichiers, commandes et sorties transitent vers le provider. N'y travaillez pas sur des données sensibles sans en mesurer l'envoi. |
| Consommation de tokens sur tâches longues | 🟡 selon usage | Une boucle d'agent peut consommer beaucoup de tokens. Fixez des limites de dépense côté provider et surveillez la consommation. |
Licence : cœur MIT, sauf enterprise/ |
🟡 à vérifier | Le cœur d'OpenHands et ses images principales sont sous licence MIT ; le répertoire enterprise/ relève d'une licence dédiée. Lisez la licence du modèle LLM avant un usage commercial. |
| Réglages par défaut accordant un accès large à la machine | 🟡 à vérifier avant usage | Certains réglages par défaut d'OpenHands donnent au conteneur un accès étendu à l'hôte (socket Docker, volumes). Avant de lancer une session, vérifiez la configuration et montez uniquement les répertoires nécessaires — c'est ce qui garantit que le bac à sable reste un bac à sable. |
Sécurité
- Dépôt isolé, toujours. Copie ou branche dédiée ; traitez le code produit comme du code externe : revue, tests, validation avant merge.
- Socket Docker en local uniquement. Jamais sur une machine partagée ou exposée à Internet.
- Restreignez volumes et réseau. Montez le strict nécessaire ; en contexte sensible, limitez l'accès réseau du conteneur.
- Protégez la clé API. Gestionnaire de secrets ou variable d'environnement, jamais dans une image ou un fichier commité.
Aller plus loin
- Dépôt officiel OpenHands — code, releases, guide de démarrage.
- Documentation OpenHands — configuration détaillée et bonnes pratiques.
- Cline — agent plus léger, intégré à VS Code, validation pas à pas.
- Aider — assistant terminal centré git, plus prévisible.
- OSIALab — comparer tous les outils pour coder avec l'IA.
Sources
- Code source & licence (MIT, hors
enterprise/) : github.com/OpenHands/OpenHands - Documentation : docs.openhands.dev