DeepSeek Harness, Claude Code ou Omnigent : comparatif
Comparez architecture, modèles, licence et maturité de DeepSeek Harness, Claude Code et Omnigent, avec les ressources nécessaires pour les exécuter sur un VPS.
DeepSeek Harness, Claude Code ou 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 plugins avec une interface web, auquel vous fournissez le modèle. Claude Code est un programme pour terminal développé par 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 de ces outils ne remplace directement les deux autres. La question à poser est donc la suivante : quelle couche vous manque ?
Les différences importantes concernent l’architecture, le couplage au modèle, l’interface, la maturité et la licence. Toutes les versions et dates ci-dessous ont été vérifiées le 18 August 2026. Deux de ces trois projets évoluent suffisamment rapidement pour que vous deviez effectuer une nouvelle vérification avant de faire votre choix.
Qu’est-ce que DeepSeek Harness et qu’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, le 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é particulièrement rapide et le dépôt a dépassé 150,000 étoiles quelques jours après sa publication (vérifié le 18 août 2026).
DeepSeek Harness est actuellement en developer preview et évolue rapidement. DES MODIFICATIONS INCOMPATIBLES SONT À PRÉVOIR.
C’est l’avertissement du README, et c’est la phrase la plus importante de cette comparaison. Tout code que vous écrivez aujourd’hui contre l’API (application programming interface) des plugins 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 accessible sur http://127.0.0.1:3080. 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 un raccourci pour dsh --profile web. Un profil est un répertoire situé sous $DSH_HOME/profiles/, et le launcher démarre celui dont vous indiquez le nom. C’est important, car il existe également un profil headless : dsh --profile headless "job" exécute une session persistante, affiche le résultat, puis quitte. C’est le format adapté à une tâche cron ou à une étape de build. Les options du launcher, comme --profile et --patch, doivent précéder les arguments propres à l’application, car le launcher cesse de les analyser au moment du transfert. Une option 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>.
Qu’est-ce que Claude Code et pourquoi s’utilise-t-il dans un terminal ?
Claude Code est l’agent CLI (interface en ligne de commande) d’Anthropic. Le produit lui-même ne possède pas d’interface web. Il s’exécute dans votre terminal, depuis le répertoire sur lequel vous voulez travailler. C’est pourquoi il convient particulièrement bien à une session serveur. L’installation s’effectue avec une seule 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). En cas d’échec, claude doctor affiche des diagnostics en lecture seule sur l’installation et la configuration, sans démarrer de session. Il existe aussi un package npm, npm install -g @anthropic-ai/claude-code, qui, depuis la version v2.1.198, 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 arrivent alors via votre workflow 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 réglage interne de l’outil.
Qu’est-ce qu’Omnigent et qu’est-ce qu’un meta-harness orchestre ?
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 le SDK (software development kit) d’agents 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 est 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éterminé où placer les skills, les serveurs MCP et les fichiers de règles, la différence entre les skills d’agent, MCP et les fichiers de règles mérite une lecture préalable, car Omnigent hérite des éléments pris en charge par le harness sous-jacent.
L’exemple fourni rend cette idée concrète. Polly est un orchestrateur de développement qui n’écrit pas lui-même de code. Il planifie les tâches, les délègue en parallèle à des sous-agents de développement dans des worktrees git, 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 manière habituelle avec uv tool install "omnigent[databricks,modal]". omnigent setup collecte les identifiants et 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 quotidiennement. 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. Cela découle directement de la conception. Omnigent doit installer et superviser lui-même les CLI des fournisseurs. C’est donc 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 du BYOK. Le catalogue de fournisseurs installé couvre Anthropic, OpenAI, Bedrock, Vertex, Azure et Codex. Une entrée de fournisseur personnalisée prend un identifiant de fournisseur en minuscules, un nom d’affichage, une URL de base, un protocole d’API, des identifiants et au moins un modèle. C’est ainsi que vous pouvez la connecter à une passerelle d’entreprise ou à un serveur auto-hébergé. Les clés sont écrites dans $DSH_HOME/.credentials.yaml, et $DSH_HOME/settings.yaml ne conserve qu’une référence vers celles-ci. Le fichier de paramètres peut donc être partagé sans risque, contrairement au fichier d’identifiants. Une entrée de passerelle peut aussi utiliser une variable d’environnement, avec une ligne telle que apiKeyEnv: GATEWAY_API_KEY. Malgré le nom du projet, rien ne vous oblige à utiliser les modèles de DeepSeek.
Claude Code est volontairement 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. C’est la méthode qui 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 des éléments requis par le harness sous-jacent, qu’il rassemble avec omnigent setup. Il accepte les clés d’API, les abonnements CLI existants, les passerelles compatibles avec OpenAI ou Anthropic, ainsi que les espaces de travail Databricks. C’est le coût réel d’un meta-harness : une même machine finit par contenir les identifiants de tous les fournisseurs. Consultez 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 automatiquement à jour en arrière-plan, propose les canaux de publication latest et stable, publie des manifestes de publication signés avec GPG et documente un minimumVersion pin pour les organisations qui ont besoin d’une version minimale. C’est le profil d’un produit déjà utilisé en production.
Omnigent est public depuis juin 2026, suit encore la série 0.x et son README le décrit comme un logiciel alpha. Attendez-vous à ce que la liste des harnesses 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 d’étoiles indique que beaucoup de personnes suivent le projet. Cela ne dit rien sur le degré de stabilisation de l’API des plugins.
Quelle licence accompagne chacun de ces outils ?
DeepSeek Harness est distribué sous licence MIT ; les licences tierces sont indiquées dans THIRD_PARTY_NOTICES.md. Omnigent est distribué sous licence Apache 2.0. Claude Code n’est pas open source : il s’agit du produit commercial d’Anthropic, et son utilisation nécessite un compte payant ou un accès à l’API facturé. Si vous devez pouvoir lire et modifier chaque ligne, Claude Code est exclu avant même de comparer les fonctionnalités. Si vous voulez que l’outil continue de fonctionner le mois prochain sans intervention de votre part, cette exigence oriente plutôt le choix dans l’autre sens.
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 connexion SSH (secure shell) interrompue. Anthropic recommande 4 GB de RAM (random access memory) ou plus, ainsi qu’un processeur x64 ou ARM64, sous Ubuntu 20.04 ou une version ultérieure, Debian 10 ou une version ultérieure, ou Alpine 3.19 ou une 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 décrit 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é. Ne publiez 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 décrit 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échargera également chaque CLI d’éditeur 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 par défaut les comptes multi-utilisateurs. 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 décrit 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 interfaces web écoutent par défaut sur loopback, et la solution évidente consiste à les lier à 0.0.0.0 puis à ouvrir le port. Deux problèmes distincts se posent. Le premier concerne la sécurité : aucune des deux n’intègre d’authentification dans son mode local par défaut. Un port ouvert donne donc 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 comme 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 session échoue avant que quoi que ce soit puisse être rendu. Rien n’est défectueux sur le serveur et les journaux affichent une requête normale. L’origine n’est pas considérée comme fiable par le navigateur. Une fonction dont le frontend dépend n’a donc jamais été définie. Un tunnel SSH règle 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ègle également le problème. Vous devez ensuite ajouter vous-même l’authentification.
Lequel vous convient ?
Choisissez Claude Code si vous voulez un agent de programmation utilisable dès aujourd’hui, si vous acceptez de payer Anthropic et si vous travaillez déjà dans le terminal. C’est le seul des trois qui soit un produit commercial finalisé plutôt qu’une preview.
Choisissez DeepSeek Harness si le modèle de plugins est le point essentiel : vous voulez remplacer l’adaptateur de modèle, la sandbox ou la boucle de l’agent, et vous acceptez que l’interface utilisée évolue. Son catalogue de fournisseurs couvre Anthropic et OpenAI. Le choisir revient donc à miser sur le runtime, pas sur les modèles de DeepSeek.
Choisissez Omnigent si vous utilisez déjà plusieurs CLI d’agents et si votre problème réel concerne la coordination : la policy, la sandboxing, la revue par le modèle d’un autre fournisseur et une session partagée que d’autres personnes peuvent suivre. Il ajoute une couche à votre stack. Une couche inutile est une couche susceptible de tomber en panne. Si votre besoin de coordination est plus limité, deux sessions Claude Code sur le même serveur peuvent s’échanger des messages sans orchestrateur intermédiaire.
Si vous êtes encore en phase de sélection, l’agent de programmation IA Mimo Code appartient à la même catégorie d’agents de terminal que Claude Code. Exécuter des agents de programmation dans une VM éphémère vaut aussi la lecture, 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 de prompt. Une skill qui pousse un agent à produire la plus petite modification fonctionnelle constitue donc une couche utile, quel que soit le harness retenu.
FAQ
Ai-je besoin d’un abonnement Anthropic payant pour utiliser Claude Code ?
Oui. Claude Code nécessite un compte Pro, Max, Team, Enterprise ou Console. L’offre gratuite de 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 capacités ailleurs peuvent le connecter à Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry.
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 identifiant d’accès 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 d’identifiants 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 orchestration, des règles et un sandboxing par-dessus. Ses dépendances ne sont donc justifiées 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 ne constitue pas un contexte sécurisé, que crypto.randomUUID() n’y est pas défini et que la console du navigateur signale TypeError: crypto.randomUUID is not a function. La création de session échoue. La page ne s’affiche alors que partiellement, voire pas du tout, tandis 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, car loopback est considéré comme un contexte sécurisé. 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. Ni DeepSeek Harness ni Omnigent ne publie de valeur. Mesurez donc la consommation au lieu de l’estimer. Dans les trois cas, le modèle s’exécute à distance. Le harness assure principalement la supervision des processus et les opérations sur les fichiers, pas l’inférence. La taille du serveur dépend surtout du travail effectué par l’agent, 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.