DeepSeek Harness, Claude Code ou Omnigent : comparatif
Comparez DeepSeek Harness, Claude Code et Omnigent sur l’architecture, le couplage au modèle, la licence, la maturité et les besoins pour un VPS.
DeepSeek Harness vs Claude Code vs Omnigent : lequel vous faut-il ?
DeepSeek Harness, Claude Code et Omnigent sont tous appelés des agent harnesses, mais ils répondent à des besoins différents. DeepSeek Harness est un runtime de plugin doté d’une interface web, auquel vous fournissez le modèle. Claude Code est un programme terminal d’Anthropic qui exécute les modèles Anthropic. Omnigent est un orchestrateur de Databricks qui pilote d’autres harnesses, notamment Claude Code, au lieu d’implémenter sa propre boucle d’agent. Aucun ne constitue un remplacement direct des autres. La question pertinente est donc de savoir quelle couche vous manque. Si cette approche vous est nouvelle, ce qu’est réellement un agent harness présente les composants que ces trois outils répartissent différemment : la boucle, les outils, les permissions et l’état de session.
Les différences qui comptent réellement concernent l’architecture, le couplage au modèle, l’interface, la maturité et la licence. Toutes les versions et les dates ci-dessous ont été vérifiées le 18 août 2026. Deux de ces trois outils évoluent suffisamment rapidement pour que vous deviez effectuer une nouvelle vérification avant d’en choisir un.
Qu’est-ce que DeepSeek Harness et que vous apporte le modèle par plugins ?
DeepSeek a publié DeepSeek Harness, ou dsh, sur github.com/deepseek-ai/deepseek-harness en août 2026. La description du dépôt résume toute l’architecture en quatre mots : tout est un plugin. L’adaptateur du modèle, le registre des outils, le journal de session, la sandbox et la boucle d’agent elle-même sont tous des plugins, chargés par un runtime basé sur Cordis. L’adoption a été exceptionnellement rapide et le dépôt a dépassé 150,000 stars quelques jours après sa publication (vérifié le 18 août 2026).
DeepSeek Harness est actuellement en developer preview et évolue rapidement. DES CHANGEMENTS INCOMPATIBLES SONT À PRÉVOIR.
C’est l’avertissement du README lui-même, et c’est la phrase la plus importante de cette comparaison. Tout ce que vous écrivez aujourd’hui contre l’API de plugins (application programming interface) devra probablement être réécrit.
Lancez-le avec npx. Node.js doit être installé :
npx @deepseek-ai/dsh webLa commande affiche son URL. Par défaut, l’interface web est disponible sur http://127.0.0.1:3080. Cette adresse correspond à un bind explicite, et non à une valeur par défaut purement esthétique. Ce que signifie un bind sur 127.0.0.1 pour accéder à l’interface devient important dès que dsh s’exécute sur une autre machine que votre navigateur. Chaque build publiée est une release candidate plutôt qu’une release stable. Si cette commande échoue ou démarre une version inattendue, verrouiller une version exacte de dsh et vider le cache npx est la solution la plus rapide. Pour compiler depuis les sources, utilisez plutôt pnpm :
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh webdsh web est l’abréviation de dsh --profile web. Un profil est un répertoire situé sous $DSH_HOME/profiles/, et le launcher démarre celui que vous indiquez. Cela est important, car un profil headless est également disponible : dsh --profile headless "job" exécute une session persistante, affiche le résultat, puis se termine. C’est le format adapté à une tâche cron ou à une étape de build. Les flags du launcher, comme --profile et --patch, doivent précéder les arguments de l’application, car le launcher cesse de les analyser au moment du handoff. Un flag comme --port appartient au profil démarré, et non au launcher. Sa position est donc importante. Les plugins sont gérés en transmettant des arguments à pnpm, comme dans dsh plugin --profile web add <package>. Un plugin est chargé dans le même runtime que l’agent et hérite de ses permissions. Vérifiez ce à quoi un plugin peut accéder avant de l’installer.
Qu’est-ce que Claude Code et pourquoi s’agit-il d’un programme pour terminal ?
Claude Code est l’agent CLI (command line interface) d’Anthropic. Le produit ne fournit aucune interface web. Il s’exécute dans votre terminal, dans le répertoire sur lequel vous voulez travailler. C’est pourquoi il s’intègre si bien à une session serveur. Comme il n’y a aucune interface à configurer, vous orientez ses réponses avec du texte plutôt qu’avec des panneaux de paramètres. Un style de sortie remplace son system prompt, afin que chaque réponse de la session adopte une forme différente. L’installation tient en une commande sur macOS, Linux et WSL :
curl -fsSL https://claude.ai/install.sh | bash
claude --versionUne installation fonctionnelle affiche une version et le nom du produit, par exemple 2.1.211 (Claude Code). Si cette commande échoue, claude doctor affiche des diagnostics en lecture seule sur l’installation et la configuration, sans démarrer de session. Un package npm est également disponible : npm install -g @anthropic-ai/claude-code. Depuis la version v2.1.198, il nécessite Node.js 22 ou une version ultérieure. Il installe le même binaire natif. Le claude installé n’utilise donc pas Node.js lors de son exécution. Anthropic publie également des dépôts apt, dnf et apk signés pour Debian, Ubuntu, Fedora, RHEL et Alpine. C’est le meilleur choix sur un serveur géré avec un outil de gestion de configuration, car les mises à jour suivent alors votre processus habituel de mise à niveau.
Claude Code nécessite un compte Pro, Max, Team, Enterprise ou Console. L’offre gratuite Claude.ai ne donne pas accès au service. Le choix entre un abonnement Claude et une facturation à l’API modifie beaucoup plus le montant payé que n’importe quel paramètre interne de l’outil.
Qu’est-ce qu’Omnigent et qu’orchestré un meta-harness ?
Databricks a annoncé Omnigent en juin 2026 et l’a publié sous licence Apache 2.0. Le projet se présente comme un meta-harness. Il n’implémente pas de boucle d’agent. Il pilote celles qui existent déjà : Claude, Codex, Cursor, OpenCode, Hermes, Pi et l’Agents SDK (software development kit) d’OpenAI. Plusieurs de ces agents apparaissent deux fois dans la liste des harnesses : une fois sous une forme qui utilise le SDK du fournisseur, et une fois sous une forme native qui encapsule le véritable programme terminal du fournisseur.
Un agent est un fichier YAML, YAML étant un format de configuration en texte brut :
name: my_agent
prompt: You are a helpful data analyst.
executor:
harness: claude-sdk
tools:
word_count:
type: function
callable: mypackage.mymodule.word_count
docs:
type: mcp
url: https://example.com/mcp
researcher:
type: agent
prompt: Search for relevant information.La ligne executor.harness constitue le principe central du projet. Remplacez claude-sdk par codex et le même prompt, avec les mêmes outils, s’exécute avec un autre fournisseur. Un outil peut être une fonction Python, un serveur MCP (model context protocol) ou un autre agent. Ce dernier cas permet d’exprimer le travail multi-agent : un sous-agent est simplement un outil. Si vous n’avez pas encore défini où placer les skills, les serveurs MCP et les fichiers de règles, consultez d’abord la différence entre les skills d’agent, MCP et les fichiers de règles, car Omnigent reprend ceux que le harness sous-jacent prend en charge.
L’exemple fourni rend cette idée concrète. Polly est un orchestrateur de code qui n’écrit pas lui-même de code. Il établit un plan, délègue le travail à des sous-agents de développement exécutés en parallèle dans des git worktrees, puis transmet chaque diff à un reviewer exécuté avec le modèle d’un autre fournisseur.
Installez-le avec le script publié :
curl -fsSL https://raw.githubusercontent.com/omnigent-ai/omnigent/main/scripts/install_oss.sh | shVous pouvez aussi l’installer manuellement. Cette méthode nécessite Python 3.12 ou une version ultérieure :
uv tool install omnigent
omnigent setup
omnigent startpip install "omnigent" fonctionne également, et les extras se sélectionnent de la manière habituelle avec uv tool install "omnigent[databricks,modal]". omnigent setup collecte les identifiants et applique les valeurs par défaut. omnigent start démarre le serveur, enregistre la machine comme host et fournit une interface web sur http://localhost:6767. omnigent server status et omnigent stop sont les deux autres commandes que vous utiliserez au quotidien. Un simple omnigent ouvre une session interactive sans démarrer le serveur.
La liste des dépendances est plus longue que ne le laisse penser l’installateur en une ligne : Python 3.12 ou une version ultérieure, git, Node.js 22 LTS (long term support) ou une version ultérieure avec npm et pnpm, tmux pour les wrappers de terminal natifs, et bubblewrap (bwrap) pour le sandbox Linux. Cette liste découle directement de la conception. Omnigent doit installer et superviser lui-même les CLI des fournisseurs. Il s’agit donc d’un logiciel Python chargé d’exécuter des logiciels Node.js.
Qui fournit le modèle et qui le paie ?
C’est l’axe qui a les conséquences pratiques les plus importantes, et les trois réponses sont réellement différentes.
DeepSeek Harness fonctionne selon le principe bring-your-own. Le catalogue de providers intégré couvre Anthropic, OpenAI, Bedrock, Vertex, Azure et Codex. Une entrée de provider personnalisée utilise un identifiant de provider en minuscules, un nom d’affichage, une URL de base, un protocole d’API, un credential et au moins un modèle. Vous pouvez ainsi la pointer vers une gateway d’entreprise ou un serveur auto-hébergé. Les clés sont enregistrées dans $DSH_HOME/.credentials.yaml, tandis que $DSH_HOME/settings.yaml ne contient qu’une référence vers celles-ci. Le fichier de configuration peut donc être partagé sans risque, contrairement au fichier des credentials. Une entrée de gateway peut aussi nommer une variable d’environnement, avec une ligne telle que apiKeyEnv: GATEWAY_API_KEY. Malgré le nom du projet, rien ne vous impose d’utiliser les modèles de DeepSeek. Si vous voulez voir ces fichiers remplis avec une vraie clé ou configurés vers un endpoint Ollama local, configurer les clés, modèles et endpoints de dsh détaille chaque mode et indique ce qui quitte ou non votre machine dans ce mode.
Claude Code est conçu pour être lié à un seul fournisseur. Vous vous connectez avec un compte payant ou vous définissez ANTHROPIC_API_KEY ; Claude Code vous demande alors une seule fois d’autoriser cette clé au lieu d’ouvrir un navigateur. Cette seconde méthode fonctionne sur un serveur headless. Les organisations qui achètent déjà de la capacité ailleurs peuvent passer par Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry.
Omnigent a besoin de tout ce qui est requis par le harness sous-jacent, rassemblé par omnigent setup. Il accepte les clés d’API, les abonnements CLI existants, les gateways compatibles avec OpenAI ou Anthropic, ainsi que les workspaces Databricks. C’est le coût réel d’un meta-harness : une machine finit par contenir les credentials de chaque fournisseur. Lisez comment empêcher un agent IA d’accéder aux secrets avant de connecter cette machine à Internet public.
Quelle est la maturité de chacun, en août 2026 ?
Claude Code est disponible de manière générale depuis 2025 et suit la branche 2.1.x en août 2026. Il se met à jour automatiquement en arrière-plan, propose les canaux de release latest et stable, publie des manifestes de release signés avec GPG et documente un verrouillage minimumVersion pour les organisations qui doivent imposer une version minimale. C’est le profil d’un produit déjà utilisé en production.
Omnigent est public depuis juin 2026, appartient encore à la série 0.x et son README le décrit comme étant en alpha. Attendez-vous à ce que la liste des harness et le schéma YAML continuent d’évoluer. Il est utilisable, mais il n’est pas encore stable.
DeepSeek Harness est de loin le plus récent. Il a été publié en août 2026, quelques jours avant la rédaction de cette comparaison, et son propre README annonce des changements incompatibles. Un très grand nombre de stars montre que beaucoup de personnes le suivent. Cela ne dit rien sur la stabilisation de son API de plugin.
Quelle licence chacun utilise-t-il ?
DeepSeek Harness est sous licence MIT, avec les licences tierces indiquées dans THIRD_PARTY_NOTICES.md. Omnigent est sous licence Apache 2.0. Claude Code n’est pas open source : c’est le produit commercial d’Anthropic, et son utilisation nécessite un compte payant ou un accès API facturé. Si votre exigence est de pouvoir lire et modifier chaque ligne, Claude Code est exclu avant même toute comparaison des fonctionnalités. Si votre exigence est que l’outil continue de fonctionner le mois prochain sans intervention de votre part, cette exigence oriente plutôt le choix dans l’autre direction.
Que faut-il pour exécuter chacun sur un VPS ?
Claude Code est le plus simple des trois. Installez-le, connectez-vous, puis exécutez-le dans tmux afin que la session survive à une déconnexion SSH (secure shell). Anthropic indique 4 GB de RAM (random access memory) ou plus, ainsi qu’un processeur x64 ou ARM64, sous Ubuntu 20.04 ou version ultérieure, Debian 10 ou version ultérieure, ou Alpine 3.19 ou version ultérieure. Sous Alpine, vous devez également installer bash, curl, libgcc, libstdc++ et ripgrep au préalable, car la commande d’installation échoue avec une erreur not found sans ces éléments. Exécuter Claude Code sur un VPS dans tmux explique en détail la gestion de la session.
DeepSeek Harness nécessite Node.js et un navigateur pointant vers son interface web. Le README demande Node.js sans préciser de version minimale. Node 22 LTS est donc le choix le plus sûr, car c’est la version ciblée par l’écosystème associé. N’exposez pas le port 3080. Laissez le serveur écouter sur 127.0.0.1 et transférez le port depuis votre ordinateur portable :
ssh -N -L 3080:127.0.0.1:3080 you@your-vpsOuvrez ensuite http://127.0.0.1:3080 en local. Installer complètement DeepSeek Harness sur un VPS explique l’organisation des profils et les commandes des plugins.
Omnigent est le plus lourd, car il installe et supervise les CLI d’autres éditeurs. Il nécessite Python 3.12, Node.js 22, npm, pnpm, tmux et bubblewrap sur le même serveur. Il télécharge ensuite chaque CLI fournisseur que vous activez. Transférez son port de la même manière :
ssh -N -L 6767:127.0.0.1:6767 you@your-vpsPour un serveur utilisé par plusieurs personnes, la méthode prise en charge est le déploiement Docker sous deploy/, qui active les comptes multi-utilisateurs par défaut. Le même comportement est disponible sur un serveur démarré manuellement en définissant OMNIGENT_AUTH_ENABLED=1. La connexion OIDC (OpenID Connect) fonctionne avec Google, GitHub, Okta et Microsoft. Guide du harness multi-agent Omnigent présente les fournisseurs de sandbox, qui deviennent importants dès que les agents écrivent sur le disque.
Pourquoi l’interface web est-elle vide sur l’adresse IP publique de votre serveur ?
Les deux web harnesses écoutent par défaut sur loopback. La solution évidente consiste à les lier à 0.0.0.0 et à ouvrir le port. Deux problèmes distincts se posent. Le premier concerne la sécurité : aucun des deux ne fournit d’authentification dans son mode local par défaut. Un port ouvert donne donc directement accès à un shell sur votre VPS. Le second vient d’une règle du navigateur qui surprend souvent. crypto.randomUUID() n’est défini que dans un contexte sécurisé, c’est-à-dire HTTPS (hypertext transfer protocol secure), localhost ou 127.0.0.1. Si vous chargez la même interface avec une adresse non chiffrée telle que http://203.0.113.10:3080, la console du navigateur affiche :
TypeError: crypto.randomUUID is not a functionLa page s’affiche alors partiellement, voire pas du tout, car la création de la session échoue avant que le moindre élément puisse être rendu. Le serveur ne présente aucun dysfonctionnement et les journaux affichent une requête normale. L’origine n’est pas approuvée par le navigateur. Une fonction dont dépend le frontend n’a donc jamais été définie. Un tunnel SSH résout le problème sans certificat, car 127.0.0.1 est considéré comme un contexte sécurisé. Un reverse proxy utilisant un véritable certificat TLS (transport layer security) résout également le problème. Vous devez alors ajouter vous-même l’authentification.
Lequel vous convient ?
Choisissez Claude Code si vous voulez un agent de coding utilisable dès aujourd’hui, que vous acceptez de payer Anthropic et que vous travaillez déjà dans le terminal. C’est le seul des trois qui soit un produit commercial abouti plutôt qu’une preview.
Choisissez DeepSeek Harness si le modèle de plugins est l’élément central : vous voulez remplacer l’adaptateur de modèle, la sandbox ou la boucle de l’agent, et vous acceptez que l’interface contre laquelle vous développez évolue. Son catalogue de fournisseurs couvre Anthropic et OpenAI. Le choisir revient donc à parier sur le runtime, pas sur les modèles de DeepSeek.
Choisissez Omnigent si vous utilisez déjà plusieurs agent CLI et que votre problème réel concerne la coordination : règles, sandboxing, review par le modèle d’un second fournisseur et session partagée que d’autres personnes peuvent suivre. Il ajoute une couche à votre stack. Or une couche inutile est une couche susceptible de tomber en panne. Si votre problème de coordination est plus limité, deux sessions Claude Code sur la même machine peuvent s’échanger des messages sans orchestrateur intermédiaire.
Si vous êtes encore en phase de sélection, l’agent de coding Mimo Code AI appartient à la même catégorie d’agents de terminal que Claude Code. La lecture de l’exécution d’agents de coding dans une VM éphémère est également utile, quel que soit votre choix, car aucun de ces trois outils ne rend à lui seul un rm -rf imprudent sûr. Aucun des trois ne détermine non plus la taille du diff proposé par l’agent. C’est une question qui relève du prompt. Il est donc utile d’ajouter une skill qui oriente l’agent vers la plus petite modification fonctionnelle au-dessus du harness que vous choisirez.
FAQ
Ai-je besoin d’un forfait Anthropic payant pour utiliser Claude Code ?
Oui. Claude Code nécessite un compte Pro, Max, Team, Enterprise ou Console. Le forfait gratuit Claude.ai n’inclut pas cet accès. Sur un VPS headless, définissez ANTHROPIC_API_KEY avant le premier lancement. Claude Code vous demande alors une seule fois d’autoriser cette clé, au lieu d’essayer d’ouvrir un navigateur. Les organisations qui disposent de ressources ailleurs peuvent utiliser Amazon Bedrock, Agent Platform de Google Cloud ou Microsoft Foundry à la place.
DeepSeek Harness peut-il exécuter des modèles Claude ou OpenAI ?
Oui. Le catalogue de providers installé couvre Anthropic, OpenAI, Bedrock, Vertex, Azure et Codex. Ajoutez une clé pour chaque provider dans Settings, puis Models. Tout ce qui ne figure pas dans le catalogue doit être ajouté comme custom provider. Celui-ci nécessite un provider id en minuscules, une base URL, un protocole API, un credential et au moins un modèle. Les clés sont stockées dans $DSH_HOME/.credentials.yaml, tandis que $DSH_HOME/settings.yaml ne contient qu’une référence. Sauvegardez donc séparément le fichier de credentials et excluez-le du contrôle de version.
Omnigent remplace-t-il Claude Code ?
Non. Omnigent exécute Claude Code. Sa liste de harnesses inclut Claude, Codex, Cursor, OpenCode, Hermes et Pi. Un agent en sélectionne un avec une seule ligne harness: dans son fichier YAML. Vous devez toujours installer et authentifier vous-même le CLI sous-jacent. Omnigent ajoute une couche d’orchestration, de contrôle des règles et de sandboxing. Ses dépendances ne se justifient donc que si vous exécutez plusieurs agents ou utilisez plusieurs fournisseurs.
Pourquoi l’interface web de DeepSeek Harness est-elle vide sur l’adresse IP publique de mon serveur ?
Parce qu’une origine HTTP simple n’est pas un secure context. crypto.randomUUID() n’y est pas défini et la console du navigateur signale TypeError: crypto.randomUUID is not a function. La création de session échoue. La page s’affiche donc partiellement, voire pas du tout, alors que les journaux du serveur semblent normaux. Transférez le port avec SSH à l’aide de ssh -N -L 3080:127.0.0.1:3080 you@your-vps, puis ouvrez http://127.0.0.1:3080. Le loopback est considéré comme un secure context. Un reverse proxy avec un véritable certificat TLS fonctionne également. Vous devez alors ajouter vous-même l’authentification.
De combien de RAM un VPS a-t-il besoin pour ces harnesses ?
Anthropic recommande 4 GB ou plus pour Claude Code. DeepSeek Harness et Omnigent ne publient aucun chiffre. Mesurez donc la consommation au lieu de l’estimer. Dans les trois cas, le modèle s’exécute à distance. Le harness assure donc surtout la supervision des processus et les opérations sur les fichiers, pas l’inférence. La taille de la machine dépend surtout des tâches que l’agent y exécute, par exemple un build et une suite de tests. Omnigent demande le plus de ressources, car Python, Node.js, tmux et chaque CLI de fournisseur activé s’exécutent sur la même machine.