Intelligence artificielle appliquée au développement : outils self-hosted, agents, écosystème open source

Construction d'un serveur MCP personnalisé visualisée par des modules empilés et un terminal de code

Créer serveur MCP est devenu en 2026 une compétence à part entière du développement assisté par IA. Chaque équipe qui industrialise Claude Code, Cursor ou un agent maison finit par exposer ses propres outils internes via le Model Context Protocol, plutôt que de réécrire des connecteurs ad hoc à chaque nouveau client. Ce guide pilier conduit pas à pas du tool de calculatrice trivial au serveur métier complet, en passant par l’authentification d’API privée. Trois exemples gradués, tous testés sur Claude Code et Cursor pour démontrer la portabilité, et deux extensions importantes : MCP avec Ollama pour un workflow 100 % local, MCP exposé en node n8n pour l’orchestration visuelle d’agents.

Construction d'un serveur MCP personnalisé visualisée par des modules empilés et un terminal de code

Pourquoi créer son propre serveur MCP

Le Model Context Protocol (MCP), publié par Anthropic fin 2024, standardise la communication entre un agent IA et les outils qu’il consomme. Si l’introduction au protocole reste floue pour vous, commencez par MCP expliqué simplement (introduction). La question pratique qui se pose ensuite est : pourquoi prendre le temps d’écrire un serveur soi-même quand des dizaines existent déjà ?

  • Exposer un outil métier interne : votre CRM maison, votre wiki d’entreprise, votre pipeline de données. Personne d’autre que vous ne le fera.
  • Encapsuler une logique propriétaire : un calcul tarifaire, une règle de validation, un workflow signé qui ne doit jamais quitter votre infrastructure.
  • Mutualiser un connecteur sur plusieurs clients : un serveur écrit une fois fonctionne avec Claude Code, Cursor, Zed et tout autre client compatible. C’est l’argument de capitalisation.
  • Contrôler la surface d’audit : votre serveur log ce qu’il veut, applique vos politiques d’autorisation, garde la main sur les secrets.

Un serveur MCP s’écrit en quelques heures pour un cas simple, en deux à trois jours pour un cas métier sérieux. L’investissement est limité, le levier est durable.

Les briques d’un serveur MCP

Composants internes d'un serveur MCP représentés par des modules logiciels distincts à l'écran

Avant le code, l’architecture. Un serveur MCP est composé de quatre éléments invariants : les primitives qu’il expose, le transport qui le relie au client, les schémas qui décrivent ses entrées-sorties, et le moteur JSON-RPC qui orchestre les messages.

Tools, resources, prompts

Trois primitives à connaître par cœur. Les tools sont des fonctions exécutables avec effet : créer une issue, requêter une base, appeler une API. Les resources sont des données identifiées par URI que l’agent peut lire à la demande. Les prompts sont des modèles de conversation que l’utilisateur peut déclencher pour orienter l’agent. Un serveur peut exposer une, deux ou les trois.

Transport stdio vs HTTP+SSE

Le transport est le canal physique d’échange. stdio est idéal pour un serveur local, lancé en sous-processus par le client. HTTP+SSE (Server-Sent Events) convient à un serveur partagé en équipe ou hébergé en cloud. Une bonne pratique en 2026 consiste à supporter les deux dans la même base de code, ce que les SDK officiels permettent par configuration.

Schémas JSON Schema et types

Chaque tool doit déclarer son schéma d’entrée en JSON Schema. C’est ce qui permet au modèle de comprendre ce qu’il doit fournir et de générer un appel valide. Un schéma trop large produit des erreurs silencieuses, un schéma précis guide le modèle vers le bon usage. Investir cinq minutes sur le schéma économise une heure de débogage.

Voici l’état des SDK officiels et communautaires en 2026.

SDKMaturitéCas d’usage recommandéMaintenance
TypeScriptStableServeur Node, intégration JS, distribution npmOfficielle Anthropic
PythonStableData, ML, intégrations scientifiques, scriptingOfficielle Anthropic
GoBêtaServeur HTTP haute perf, binaire portableCommunauté
RustBêtaPerformance critique, embarquéCommunauté
C#/.NETBêtaIntégration legacy entrepriseCommunauté

Pour démarrer, le choix raisonnable est TypeScript (si votre équipe vit côté JS) ou Python (si elle vit côté data). Les deux sont documentés sur le SDK TypeScript officiel et le SDK Python officiel.

Exemple 1 — Le tool « calculatrice » en 30 lignes

Premier exemple, intentionnellement trivial : exposer une fonction somme à l’agent. L’objectif est de voir l’ensemble du cycle, pas de produire de la valeur métier.

SDK TypeScript (référence)

import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import {
  CallToolRequestSchema,
  ListToolsRequestSchema,
} from "@modelcontextprotocol/sdk/types.js";

const server = new Server(
  { name: "calc-server", version: "1.0.0" },
  { capabilities: { tools: {} } }
);

server.setRequestHandler(ListToolsRequestSchema, async () => ({
  tools: [{
    name: "add",
    description: "Additionne deux nombres entiers ou décimaux.",
    inputSchema: {
      type: "object",
      properties: {
        a: { type: "number", description: "Premier opérande" },
        b: { type: "number", description: "Deuxième opérande" }
      },
      required: ["a", "b"]
    }
  }]
}));

server.setRequestHandler(CallToolRequestSchema, async (req) => {
  if (req.params.name === "add") {
    const { a, b } = req.params.arguments as { a: number; b: number };
    return { content: [{ type: "text", text: String(a + b) }] };
  }
  throw new Error("Tool inconnu");
});

const transport = new StdioServerTransport();
await server.connect(transport);

SDK Python (équivalent)

from mcp.server import Server
from mcp.server.stdio import stdio_server
from mcp.types import Tool, TextContent
import asyncio

server = Server("calc-server")

@server.list_tools()
async def list_tools() -> list[Tool]:
    return [Tool(
        name="add",
        description="Additionne deux nombres entiers ou décimaux.",
        inputSchema={
            "type": "object",
            "properties": {
                "a": {"type": "number"},
                "b": {"type": "number"},
            },
            "required": ["a", "b"],
        },
    )]

@server.call_tool()
async def call_tool(name: str, arguments: dict) -> list[TextContent]:
    if name == "add":
        return [TextContent(type="text", text=str(arguments["a"] + arguments["b"]))]
    raise ValueError("Tool inconnu")

async def main():
    async with stdio_server() as (read, write):
        await server.run(read, write, server.create_initialization_options())

asyncio.run(main())

Tester avec Claude Code

L’enregistrement côté client se fait via le fichier de configuration MCP de Claude Code, en pointant la commande qui démarre le serveur (node calc-server.js ou python calc_server.py). Au prochain démarrage, l’agent expose le tool add et l’appelle quand le besoin se présente. Sur Cursor, la procédure est identique : ajout dans le panneau MCP, redémarrage de la session, le tool est disponible. C’est cette portabilité qui justifie l’investissement.

Exemple 2 — Tool authentifié sur API privée

Deuxième exemple, plus réaliste : un tool qui interroge une API privée nécessitant un jeton d’authentification. C’est le cas typique d’un connecteur sur un CRM ou un ERP interne.

Variables d’env, secrets

Le jeton ne doit jamais être codé en dur. La pratique standard consiste à le lire depuis une variable d’environnement (process.env.API_TOKEN en Node, os.environ["API_TOKEN"] en Python). Si le serveur tourne en stdio, le client peut transmettre les variables d’environnement à la déclaration du serveur. Si le serveur tourne en HTTP, vous gérez les secrets via votre orchestrateur (Doppler, Vault, ou simple .env protégé).

const API_TOKEN = process.env.API_TOKEN;
if (!API_TOKEN) throw new Error("API_TOKEN manquant");

server.setRequestHandler(CallToolRequestSchema, async (req) => {
  if (req.params.name === "search_crm") {
    const { query } = req.params.arguments as { query: string };
    const res = await fetch(`https://api-interne/search?q=${encodeURIComponent(query)}`, {
      headers: { "Authorization": `Bearer ${API_TOKEN}` }
    });
    if (!res.ok) {
      return { content: [{ type: "text", text: `Erreur API: ${res.status}` }], isError: true };
    }
    const data = await res.json();
    return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
  }
  throw new Error("Tool inconnu");
});

Gestion des erreurs proprement

Trois règles utiles. Renvoyer isError: true dans la réponse plutôt que de lever une exception silencieuse permet à l’agent de comprendre l’échec et de tenter une autre stratégie. Logger côté serveur (stderr en stdio, fichier en HTTP) trace ce qui s’est passé sans polluer le canal. Ne jamais renvoyer le secret dans un message d’erreur : ce qui sort du tool peut finir dans une transcription.

Exemple 3 — Serveur complet avec resources

Troisième exemple : un serveur qui combine tools (recherche), resources (lecture de fiches), et prompts (modèle d’audit). Cas d’usage : exposer une base de connaissances interne à l’agent.

Cas métier : recherche dans une base interne

Le serveur expose : un tool search_kb(query) qui retourne une liste d’identifiants pertinents, des resources kb://article/{id} que l’agent peut ouvrir pour lire le contenu complet, et un prompt audit_doc qui injecte le bon contexte pour faire la revue d’un article. Cette répartition est volontaire : l’agent décide quoi consulter, quand, et avec quelle posture.

Resources dynamiques + prompts contextualisés

server.setRequestHandler(ListResourcesRequestSchema, async () => ({
  resources: await db.listArticles().then(arts => arts.map(a => ({
    uri: `kb://article/${a.id}`,
    name: a.title,
    mimeType: "text/markdown"
  })))
}));

server.setRequestHandler(ReadResourceRequestSchema, async (req) => {
  const id = req.params.uri.replace("kb://article/", "");
  const article = await db.getArticle(id);
  return { contents: [{ uri: req.params.uri, mimeType: "text/markdown", text: article.body }] };
});

server.setRequestHandler(GetPromptRequestSchema, async (req) => {
  if (req.params.name === "audit_doc") {
    return {
      messages: [{
        role: "user",
        content: { type: "text", text:
          "Vous êtes auditeur documentaire. Évaluez l'article fourni sur trois axes : exactitude, fraîcheur, actionnabilité. Renvoyez un verdict en trois lignes."
        }
      }]
    };
  }
  throw new Error("Prompt inconnu");
});

Cet exemple condense la logique d’un serveur métier mature : la recherche oriente, les resources nourrissent, les prompts cadrent l’analyse. Vous pouvez ajouter pagination, cache, journalisation sans changer l’architecture.

Déploiement et portabilité

Un serveur MCP n’est intéressant que s’il sort du laptop de son auteur. Voici les quatre cibles de déploiement à connaître en 2026.

Local (stdio) vs distant (HTTP+SSE)

Local en stdio : zéro infrastructure, l’utilisateur installe via npx ou pip, le client lance le sous-processus. Idéal pour un usage personnel ou une distribution open source. Distant en HTTP+SSE : un seul serveur partagé en équipe, gestion centralisée des secrets et des logs, scalable. Idéal pour un cas métier d’entreprise.

Tester sur Cursor et autres clients

La portabilité est l’argument fondamental de MCP. Avant de figer votre serveur, testez-le sur au moins deux clients : Claude Code et Cursor sont les plus matures. Les divergences éventuelles (gestion des erreurs, support des resources, prompts utilisateurs) se révèlent à ce moment-là. Voir aussi workflow Git d’équipe avec Claude Code pour intégrer le serveur dans le cycle de revue.

Brancher un serveur MCP sur Ollama (LLM local + tools personnalisés)

Pour le code sensible ou l’infrastructure isolée, brancher un serveur MCP sur un modèle Ollama local élimine toute fuite vers un fournisseur cloud. Plusieurs clients open source font le pont : ils consomment l’API Ollama d’un côté, parlent MCP de l’autre, traduisent les tool calls entre les deux formats. Configuration type :

{
  "llm": {
    "provider": "ollama",
    "model": "qwen3-coder:30b",
    "baseUrl": "http://localhost:11434"
  },
  "mcpServers": {
    "kb-internal": {
      "command": "node",
      "args": ["./kb-server/dist/index.js"],
      "env": { "API_TOKEN": "..." }
    }
  }
}

Le bénéfice est double : le code source et les requêtes ne quittent jamais la machine, et votre serveur MCP métier reste réutilisable le jour où vous repassez sur Claude. Le sujet est traité plus largement dans brancher MCP sur Ollama et dans notre pilier stack IA locale complète (pilier).

Exposer un serveur MCP comme node n8n pour l’orchestration d’agents

n8n est devenu en 2026 un orchestrateur d’agents IA visuels populaire chez les équipes ops et automation. Exposer votre serveur MCP comme node custom n8n permet d’utiliser vos tools dans des workflows déclenchés par événement (webhook, cron, message). Schéma minimal : un node n8n « MCP Tool Call » prend en entrée le nom du tool et les arguments, appelle le serveur MCP local ou distant, renvoie le résultat dans le flux. Extrait de configuration côté n8n :

{
  "node": "MCP Tool Call",
  "parameters": {
    "server": "kb-internal",
    "transport": "http",
    "endpoint": "https://mcp-internal.example.com/sse",
    "tool": "search_kb",
    "arguments": "={{ { query: $json.user_query } }}"
  }
}

Vous obtenez ainsi une orchestration visuelle des outils MCP que vous avez écrits, sans dupliquer la logique métier dans n8n. Pour aller plus loin sur l’orchestration : exposer un MCP en node n8n et notre panorama agents IA 2026.

Bonnes pratiques (logs, observabilité, sécurité)

Un serveur MCP en production demande la même rigueur qu’un microservice. Cinq règles à appliquer dès le premier déploiement.

  • Logger systématiquement les appels : tool, arguments anonymisés, durée, code de retour. Sans cette traçabilité, impossible d’auditer ce que les agents ont fait.
  • Limiter le rayon d’action : un tool de production ne doit faire qu’une chose. create_user ne doit pas pouvoir devenir delete_database par contournement de schéma.
  • Versionner le serveur : changer la signature d’un tool casse tous les agents qui l’utilisent. Adopter le versioning sémantique évite la mauvaise surprise.
  • Authentifier le client si distant : un serveur HTTP exposé sans auth est une porte ouverte. Token, mTLS, ou intégration SSO selon le contexte.
  • Tester en intégration : un test qui démarre le serveur, lance un client, exécute trois tools et vérifie les réponses. Indispensable avant chaque release. Le guide Claude Code (pilier) détaille les patterns d’intégration sur ce point.

L’observabilité reste le talon d’Achille des serveurs MCP en 2026. La spécification a anticipé le sujet via les notifications de progression et les logs structurés, mais les outils tiers (collecteurs OpenTelemetry, dashboards Grafana, alerteurs PagerDuty) ne sont pas encore standardisés. Une instrumentation maison couvre généralement le besoin : compter les appels, mesurer les latences, alerter sur les erreurs récurrentes. Voir aussi le site officiel modelcontextprotocol.io pour les évolutions de spécification.

Foire aux questions sur la création d’un serveur MCP

Comment créer un serveur MCP en 2026 ?

Choisir un SDK officiel (TypeScript ou Python), définir les tools que vous voulez exposer avec leurs schémas JSON, implémenter les handlers, choisir un transport (stdio pour usage local, HTTP+SSE pour usage partagé). Tester sur Claude Code et Cursor pour valider la portabilité, puis déployer selon votre cible. Un serveur simple se livre en quelques heures, un cas métier en deux à trois jours.

Quel SDK choisir : TypeScript ou Python ?

Les deux SDK sont officiels, stables et équivalents en couverture. Le critère dépend de votre stack existante. TypeScript si votre équipe vit côté Node ou navigateur, distribution npm immédiate. Python si vous intégrez avec de la data ou du machine learning, ou si vos opérations préfèrent ce langage. Évitez de mélanger les deux dans un même projet sauf nécessité claire.

Comment authentifier un serveur MCP qui expose une API privée ?

Lire le jeton depuis une variable d’environnement, jamais en dur dans le code. En transport stdio, le client peut transmettre les variables au lancement du serveur. En transport HTTP, gérer les secrets via votre orchestrateur ou un vault dédié. Côté API distante, utiliser Authorization: Bearer et journaliser les codes de retour pour faciliter le diagnostic.

Peut-on utiliser un serveur MCP avec Ollama au lieu de Claude ?

Oui, plusieurs clients open source font le pont entre l’API Ollama et le protocole MCP. La configuration consiste à pointer le client vers votre instance Ollama locale et à déclarer les serveurs MCP comme on le ferait avec Claude Code. Le bénéfice : vos tools métier restent réutilisables sans dépendre d’un fournisseur cloud, ce qui est précieux pour le code sensible ou les environnements isolés.

Comment exposer un serveur MCP comme node n8n ?

n8n propose désormais un node MCP capable d’appeler un serveur en HTTP+SSE ou en stdio. Vous configurez l’endpoint du serveur, le nom du tool à invoquer, et la mappe d’arguments depuis les données du flux. Le résultat alimente la suite du workflow. Cela permet d’orchestrer visuellement des agents qui utilisent vos tools métier sans dupliquer la logique.

Vous avez un outil interne, une API privée ou un workflow métier à exposer en MCP ? Nous prototypons un serveur opérationnel et portable en 2 à 3 jours, testé sur Claude Code et Cursor, livré avec sa documentation. Parlons-en chez WebCreatid.

Assistant IA open source OpenClaw automatisant des tâches système sur un poste de développeur

OpenClaw a été lancé en janvier 2026 comme « le Jarvis open source du développeur » et la promesse mérite qu’on l’examine de près. Présenté par ses auteurs comme « Personal AI assistant you run on your own devices. Any OS. Any Platform. » (voir openclaw.ai), OpenClaw est une passerelle multi-canal (Telegram, Slack, Discord, WhatsApp, Signal, iMessage, Matrix, Microsoft Teams, Zalo, Feishu) pour vos AI agents, agnostique du modèle (Claude, GPT, Ollama). Sur le papier, OpenClaw automatise la couche au-dessus du code, là où Claude Code s’arrête. Cet article tranche : ce qu’il fait que vos outils actuels ne font pas, comment l’installer en 30 minutes, cinq cas d’usage qui changent vraiment le quotidien, comment écrire son propre skill, et un avis lucide sur le statut beta.

Assistant IA open source OpenClaw automatisant des tâches système sur un poste de développeur

OpenClaw, un agent système, pas un coding agent

La promesse Jarvis open source

La première chose à comprendre : OpenClaw n’écrit pas votre code. Il ne refactore pas votre application Next.js et il ne pousse pas une PR sur GitHub avec un fix. Il automatise tout ce qui entoure votre travail de dev : trier des notifications GitHub, capturer une idée dans Obsidian depuis Telegram, vous envoyer le résumé quotidien des PR ouvertes sur Slack, basculer Spotify en mode focus quand vous démarrez un sprint. C’est une couche d’agent système, pas un assistant code. La distinction est cruciale et beaucoup de premiers articles l’ont ratée.

Sur le marché 2026, ça le place dans une niche qu’aucun acteur ne couvrait sérieusement avant : entre Claude Code (qui code pour vous) et n8n (qui orchestre des workflows visuels), OpenClaw est le compagnon conversationnel qui reçoit vos instructions en langage naturel via les canaux que vous utilisez déjà.

Architecture TypeScript, agnostique du modèle

OpenClaw est écrit en TypeScript et tourne sur Node.js 20+. Le projet vit sur github.com/openclaw/openclaw, sous licence MIT. L’architecture repose sur trois couches : les canaux (où l’utilisateur parle), les skills (modules réutilisables qui exécutent des actions, stockés dans ~/.openclaw/workspace/skills/ avec un fichier SKILL.md par skill), et les modèles (Claude, GPT, Mistral via API, ou Ollama en local). Trois types de skills cohabitent : bundled (livrés avec OpenClaw), managed (installés depuis ClawHub) et workspace (vos skills locaux). Vous pouvez basculer de Claude à un Llama 3.3 local en changeant une variable d’environnement, sans modifier vos skills. La doc officielle vit sur docs.openclaw.ai.

Multi-canal : Telegram, Slack, Discord, WhatsApp, Signal, iMessage

Un canal est simplement le moyen par lequel vous parlez à votre OpenClaw : un bot Telegram, un webhook Slack, un compte Discord, sans oublier Matrix, Microsoft Teams, Zalo et Feishu. Vous appairez les canaux via la CLI (openclaw pairing approve), et la même gateway répond où qu’elle soit sollicitée. Cas typique : vous écrivez à votre bot Telegram en mobilité, la gateway reçoit, route vers l’agent, exécute et répond. Côté voix, OpenClaw expose un wake word continu sur Android et un wake word natif sur macOS / iOS. Les companion apps macOS (menu bar) et iOS / Android (mobile nodes) prolongent l’assistant hors de votre poste de travail. La fonctionnalité Live Canvas (A2UI) ouvre en plus un workspace visuel que l’agent peut piloter — éditeur, croquis, plans d’action.

Installation et premier skill

Prérequis et installation

Node.js 20+, 2 Go de RAM disponibles, un token bot Telegram (ou une autre clé canal de votre choix), et soit une clé API Claude/OpenAI, soit une instance Ollama locale. L’onboarding officiel passe par la CLI openclaw qui installe le daemon et la gateway sur votre machine :

# Installer le daemon OpenClaw
openclaw onboard --install-daemon

# Démarrer la gateway sur le port par défaut (18789)
openclaw gateway --port 18789 --verbose

# Vérifier que tout va bien
openclaw gateway status
openclaw doctor

Le dashboard se lance avec openclaw dashboard. La documentation officielle vit sur docs.openclaw.ai et le registre communautaire de skills sur clawhub.ai.

Connecter un modèle

OpenClaw accepte trois types de providers : cloud propriétaire (Anthropic, OpenAI, Mistral via API), cloud OSS (Together, Groq, Fireworks), et local (Ollama). Pour brancher Ollama, l’opération est immédiate : MODEL_PROVIDER=ollama et OLLAMA_HOST=http://host.docker.internal:11434. Plus de détails dans le guide pour faire tourner OpenClaw avec un modèle Ollama local.

Activer son premier skill

Un skill est un module réutilisable qui sait faire une chose : parler à GitHub, écrire dans Obsidian, contrôler Spotify. ClawHub est le registre communautaire qui distribue les skills officiels et tiers (équivalent fonctionnel d’un npm dédié). Côté pairing canal, l’approbation s’effectue depuis la CLI :

# Approuver un appairage canal (Telegram, Slack, etc.)
openclaw pairing approve telegram <code>

# Envoyer un message via la gateway depuis la CLI
openclaw message send --target +33612345678 --message "Test depuis OpenClaw"

# Lancer une instruction directement à un agent
openclaw agent --message "Liste mes PR ouvertes sur webcreatid/api hier" --thinking high

Une fois la gateway en ligne et un canal appairé, vous pouvez écrire à votre bot Telegram : « liste les PR ouvertes sur webcreatid/api hier », et OpenClaw route le message vers l’agent, exécute le skill correspondant, formate la réponse, et la renvoie dans le canal d’origine.

Cinq cas d’usage qui changent le quotidien dev

Cinq tâches quotidiennes de développeur automatisées par un assistant open source en parallèle

Triage automatique des notifications GitHub

OpenClaw lit votre flux de notifications GitHub toutes les heures, classe en trois catégories (action requise, attente d’autrui, lecture optionnelle), et envoie un résumé Telegram. Vous évitez l’inbox GitHub à 200 lignes le matin et vous attaquez la journée avec trois actions claires. Skill : github-triage.

Capture rapide d’idées vers Obsidian depuis Telegram

Cas d’usage typique du dev qui pense à un fix sous la douche : vous dictez ou écrivez un message à votre bot, OpenClaw structure (titre, tags, date), et l’écrit dans votre vault Obsidian sur la machine où il tourne. Plus besoin d’ouvrir l’app et de chercher la bonne note. Skill : obsidian-capture.

Résumé quotidien des PR et issues sur Slack

Tous les matins à 8h45, OpenClaw poste sur le canal Slack #standup un récap automatique : PR ouvertes, mergées, issues critiques, blocages détectés. Le LLM produit un résumé court, hiérarchisé, en français. Vous arrivez en réunion avec le contexte. Skill : github-digest.

Rappels intelligents calendrier et contexte projet

OpenClaw connecte votre calendrier (Google, CalDAV) et envoie un brief contextuel 10 minutes avant chaque réunion : participants, dernier ticket lié, dernière conversation Slack. C’est plus utile qu’un rappel sec : c’est un contexte. Skill : calendar-brief.

Contrôle Spotify et focus mode

« Mode focus, deux heures » : OpenClaw lance votre playlist deep work, coupe les notifications Slack en posant un statut « focus », active Do Not Disturb sur macOS, et relance tout au bout du timer. Pas révolutionnaire pris isolément, mais redoutablement utile une fois en place. Skill : focus-mode.

Écrire son propre skill

Édition d'un skill personnalisé pour OpenClaw dans un éditeur de code avec structure modulaire

Le SDK et la structure d’un skill

Un skill est un dossier qui contient un manifest JSON, un script TypeScript, et éventuellement une config. Voici un skill complet « notify-on-PR-review » qui notifie sur Telegram quand une PR reçoit une review :

// notify-on-pr-review/skill.ts
import { defineSkill } from "@openclaw/sdk";
import { Octokit } from "@octokit/rest";

export default defineSkill({
  name: "notify-on-pr-review",
  description: "Alerte Telegram quand une PR reçoit une review",
  trigger: { type: "cron", schedule: "*/5 * * * *" },
  async run({ config, channels, llm }) {
    const gh = new Octokit({ auth: config.github_token });
    const events = await gh.activity.listReceivedEventsForUser({
      username: config.username
    });
    const reviews = events.data.filter(e =>
      e.type === "PullRequestReviewEvent"
    );
    for (const r of reviews) {
      const msg = await llm.summarize(r.payload, "fr");
      await channels.telegram.send(msg);
    }
  }
});

Trente lignes, un manifest, et le skill est exploitable. Le SDK gère l’authentification canal, le state, les retries, et l’observabilité. Vous écrivez la logique métier, OpenClaw fait le reste.

Partager via ClawHub

Vos skills locaux vivent dans ~/.openclaw/workspace/skills/<skill>/SKILL.md aux côtés des skills bundled et managed. ClawHub joue le rôle de registre communautaire (équivalent fonctionnel d’un npm dédié) où skills et plugins gateway sont publiés et installés. La communauté reste jeune début 2026, donc les premiers skills bien faits gagnent en visibilité — un terrain d’expression idéal si vous cherchez à exister dans l’écosystème agentique.

OpenClaw vs les alternatives

CritèreOpenClawClaude Coden8nZapier / Make
TypeAgent système conversationnelCoding agentOrchestrateur visuelSaaS workflows no-code
InterfaceMulti-canal (chat)CLI / IDEWeb visuelWeb visuel
Open sourceOui (MIT)Non (Anthropic)Oui (Sustainable)Non (SaaS)
Self-hostedOuiNonOuiNon
Modèle local (Ollama)NatifNonNatifNon
Cas idéalAutomatiser le quotidien devÉcrire et refactorer du codePipelines complexes versionnésConnecter SaaS rapidement

vs Claude Code

Pas de concurrence frontale : Claude Code, le coding agent écrit du code dans votre repo, OpenClaw orchestre la couche système autour. Vous utilisez Claude Code pour qu’il écrive votre service Express, OpenClaw pour qu’il vous notifie quand un test échoue en prod et capture la stack trace dans Obsidian. Les deux se complètent.

vs n8n

n8n excelle sur les workflows complexes, multi-étapes, versionnables en JSON, avec des branches conditionnelles. OpenClaw préfère les interactions courtes et conversationnelles. Beaucoup d’équipes utilisent les deux : n8n côté pipeline lourd, OpenClaw côté chat humain. Voir la comparaison avec n8n pour l’orchestration détaillée.

vs Zapier / Make

Zapier et Make brillent côté SaaS no-code : trois clics pour brancher Gmail à HubSpot, mais tout passe par leurs serveurs et tout coûte par tâche. OpenClaw est moins immédiat, mais self-hosted, gratuit, et compatible avec un LLM local. Pour des flux contenant des données sensibles, l’écart est massif.

Le statut beta : ce qu’il faut savoir avant d’adopter

OpenClaw est officiellement en beta en mai 2026. La 1.0 est annoncée pour fin 2026. Concrètement, ça veut dire : le core est stable, les skills officiels marchent, mais certains skills tiers cassent à chaque montée de version, la doc reste partielle sur quelques canaux secondaires (Signal, iMessage), et l’observabilité interne est encore basique. Pour un usage solo de productivité, c’est tout à fait viable. Pour un déploiement en équipe avec engagement de service, attendez la 1.0.

Le projet a un avantage que peu d’OSS atteignent à 4 mois de vie : un cap technique cohérent, une communauté active sur Discord, et des releases fréquentes. Pour un développeur indie ou un freelance, ça vaut le coup d’investir maintenant. Pour le reste, le pilier stack IA dev 100% locale (pilier) donne le contexte de placement, et le panorama 2026 des agents IA situe OpenClaw dans l’écosystème complet.

Questions fréquentes

Qu’est-ce qu’OpenClaw exactement ?

OpenClaw est un agent système open source (licence MIT) lancé en janvier 2026 par la communauté du même nom. Il automatise la couche au-dessus du code (mails, GitHub events, capture Obsidian, contrôle Spotify, calendrier) à partir d’instructions en langage naturel reçues sur Telegram, Slack, Discord, WhatsApp, Signal ou iMessage. Il est agnostique du modèle (Claude, GPT, Mistral, ou Ollama local) et entièrement self-hosted.

OpenClaw est-il vraiment open source et gratuit ?

Oui, sous licence MIT, code source public sur github.com/openclaw/openclaw. L’utilisation est totalement gratuite, sans quota ni télémétrie obligatoire. Les skills officiels sont gratuits sur ClawHub. Certains skills tiers premium pourront être payants à terme, mais la couche cœur reste libre. Vous payez uniquement votre LLM si vous utilisez un provider cloud (et zéro si vous restez sur Ollama).

Quelle différence entre OpenClaw, Claude Code et n8n ?

Trois outils, trois usages. Claude Code écrit et modifie du code dans votre repo. n8n orchestre des pipelines visuels complexes versionnables en JSON. OpenClaw est un compagnon conversationnel multi-canal qui automatise vos tâches dev quotidiennes hors-code. Les trois se complètent ; aucun n’est interchangeable. La règle simple : Claude Code pour coder, n8n pour orchestrer, OpenClaw pour discuter avec votre stack.

Peut-on utiliser OpenClaw avec Ollama en local ?

Oui, c’est même un cas d’usage privilégié. Configurez MODEL_PROVIDER=ollama et OLLAMA_HOST=http://localhost:11434 dans les variables d’environnement, choisissez votre modèle (Llama 3.3, Qwen, Mistral) et OpenClaw fonctionne sans aucun appel cloud. Idéal pour les contextes confidentiels (santé, juridique, finance) ou pour zéro coût marginal après amortissement matériel.

Comment écrire un skill custom OpenClaw ?

Un skill est un dossier contenant un manifest JSON et un script TypeScript qui exporte une fonction defineSkill. Vous y déclarez le nom, la description, le trigger (cron, événement, commande chat), et la fonction run qui reçoit la config, les canaux et le LLM en paramètre. Le SDK @openclaw/sdk documente tout sur docs.openclaw.ai. Un skill simple tient en 30 lignes ; un skill complexe se structure en plusieurs fichiers.

Vous voulez automatiser votre quotidien dev sans tout pousser dans le cloud, en gardant un OpenClaw branché sur votre Ollama local ? On peut cadrer un setup ensemble.

Visualisation d'un agent IA autonome orchestrant plusieurs outils de développement en parallèle

Les agents ia autonomes pour le développement font la une depuis Devin en 2024, et 2026 enterre une bonne partie du fantasme. Ce qui marche en pilote prod, ce qui reste démo de salon, ce qui finira en vaporware : la frontière s’est précisée. Ce panorama n’épargne ni les enthousiastes ni les sceptiques. On définit ce qu’est un agent autonome, on classe les six familles d’outils qui comptent en 2026, on raconte un cas concret de PR menée de bout en bout par un agent et un anti-cas qui a tout cassé en trente minutes, puis on livre un cadre de gouvernance pour expérimenter sans drame.

Visualisation d'un agent IA autonome orchestrant plusieurs outils de développement en parallèle

Agent IA dev : la définition qui tient en 2026

Un agent autonome n’est pas une IA qui écrit du code à votre demande. C’est un système qui, à partir d’un objectif de haut niveau, décide lui-même de la séquence d’actions à mener (lire un fichier, lancer un test, ouvrir une PR, attendre un retour), exécute ces actions via des outils branchés, et boucle jusqu’à atteindre son but ou rencontrer une contrainte. Trois critères distinguent l’agent de l’assistant classique : décision multi-étapes sans validation à chaque pas, capacité à invoquer des tools (commandes shell, API, MCP), et persistance d’état entre les itérations.

Cette définition crée trois niveaux d’autonomie. L’IA-assistance (Cursor, Copilot) suggère, vous validez chaque action. L’agent supervisé (Claude Code en mode plan, Aider) propose un plan que vous approuvez avant exécution. L’agent autonome (Devin, Claude Code en mode YOLO, agents LangGraph custom) exécute librement dans un périmètre défini. C’est ce dernier niveau qui pose les questions intéressantes en 2026.

Le panorama 2026

Six familles d’outils tiennent la route en 2026 pour des agents ia autonomes appliqués au développement. Voici comment elles se positionnent sur les axes qui comptent : autonomie réelle, fiabilité observée, qualité des intégrations, coût, et stade de maturité.

AgentAutonomieFiabilitéIntégrationsCoûtMaturité
Claude Code (mode agent)ÉlevéeBonneMCP natif, hooks, sub-agentsPro/MaxProduction
Cursor agent modeÉlevéeCorrecteIDE-centricProProduction
Devin (Cognition)Très élevéeInégaleSandbox dédié500$/moisPilote
LangGraph / CrewAIVariableSelon promptTrès largeAPI LLMProduction (custom)
OpenClawMoyenneEncore beta50+ skills, multi-canalGratuit (OSS)Beta janv. 2026
n8n agentsMoyenneBonne (visuelle)500+ nodesGratuit (self-hosted)Production

Claude Code en mode agent

Claude Code (Anthropic) est devenu en 2025-2026 la référence des agents dev en production. Le mode plan (annonce les étapes, demande l’aval, exécute), les sub-agents (déléguer une tâche à une instance spécialisée) et l’intégration MCP native permettent d’aller loin sans framework custom. Pour les détails sous le capot, voir créer son propre serveur MCP.

Devin et les « ingénieurs IA »

Cognition a structuré la catégorie « ingénieur IA autonome » avec Devin (cognition.ai). En 2026, les retours terrain restent contrastés : excellent sur des tickets bien isolés et bien décrits, fragile sur des bases de code complexes ou floues. Les chiffres SWE-Bench progressent vite, mais l’écart entre démo et production reste notable.

Agents maison via LangGraph et CrewAI

Pour les équipes qui veulent du sur-mesure, LangGraph (docs.langchain.com/langgraph) propose un graphe d’états explicite où chaque nœud est un appel LLM ou un outil. CrewAI joue la carte des « équipes d’agents » qui se répartissent les rôles. La courbe d’apprentissage existe, mais le résultat se contrôle finement et tient en production quand l’observabilité est sérieuse.

Outillage MCP et orchestration

Le MCP (Model Context Protocol, le standard Anthropic 2024 qui standardise la communication entre LLM et outils externes) a pris de l’épaisseur en 2026. Il sert de plomberie commune : un serveur MCP exposé une fois est consommable par Claude Code, Cursor, n8n, OpenClaw. Pour comprendre les fondamentaux, voir MCP expliqué simplement.

Open source, self-hosted, hors cloud

Trois briques open source méritent une place dans tout panorama 2026. OpenClaw, agent système open source joue la couche au-dessus du code (mails, GitHub events, capture Obsidian, contrôle système) sur 50+ intégrations natives. Agents visuels avec n8n permet de composer des agents dans une interface graphique versionnable en JSON. Enfin, les agents sur LLM local avec Ollama (LangChain ou Smolagents branchés sur un modèle local) ouvrent les cas confidentiels. Pour la stack complète, le pilier agents 100% locaux sert de référence.

Ce qu’on peut leur confier honnêtement

Liste de tâches automatisées exécutées par un agent IA visible dans une interface de log moderne

Tâches bien cadrées

Les agents excellent sur des tâches mécaniques au périmètre clair : refactor d’une signature de fonction sur tout le repo, migration d’un type Promise vers async/await, ajout d’attributs ARIA sur 200 composants, traduction d’un fichier i18n. Ce sont des tâches où la spec tient en deux phrases, où le test de réussite est binaire, et où l’agent peut itérer sans risque catastrophique.

La génération de tests générés par IA sans dette entre dans cette catégorie quand vous donnez un cadre clair (couverture cible, conventions de nommage, types de tests autorisés).

Tâches d’exploration et d’audit

L’analyse de codebase, l’audit sécurité de niveau 1, le mapping de dépendances, la rédaction de docs depuis le code : un agent qui lit, résume et classe gagne sa place. Le risque est faible (lecture seule), le gain réel (deux jours de découverte compressés en deux heures de revue).

Ce qu’il vaut mieux ne pas leur confier encore

Trois zones rouges. La conception d’architecture, parce que l’agent optimise local mais ne capte pas les contraintes business non-écrites. Les changements en prod sans approbation humaine, parce qu’un agent qui s’emballe peut casser cinq services en quelques minutes. Le travail sur des bases legacy denses sans tests, parce que l’agent va casser sans savoir qu’il casse. Sur ces zones, gardez la main au clavier.

Cas concret : une PR menée de bout en bout

Janvier 2026, projet TypeScript, ticket « migrer toutes les mocks Jest vers Vitest ». Cadrage en cinq lignes, repo modeste (~30 000 LOC), suite de tests existante en CI. Claude Code en mode agent, autorisé à modifier package.json, les fichiers de test et la config CI. Plan généré, exécuté, 18 commits en 40 minutes, PR ouverte avec un résumé propre. Tests qui passent. Trois corrections humaines sur des cas tordus de timers, et merge.

Ce qui a permis ça : un périmètre clair, une suite de tests existante (le filet de sécurité), un repo bien structuré, et des permissions limitées (pas de push direct, PR obligatoire). Les conditions de réussite étaient réunies avant qu’un seul prompt ne parte.

Anti-cas : trente minutes pour tout casser

Mars 2026, autre équipe, projet Python legacy de 8 ans, peu de tests, agent autonome lâché avec un objectif vague : « moderniser le code de gestion des paiements ». L’agent a lu, refactor, commit, supprimé du code qu’il jugeait mort. Trente minutes plus tard, deux endpoints critiques renvoient 500. La réversion via Git a pris vingt minutes ; la confiance dans l’outil, six semaines.

Ce qui a manqué : tests, périmètre serré, observabilité, et un humain capable d’arbitrer pendant l’exécution. L’agent n’avait fait aucune erreur logique : il avait simplement opéré dans des conditions où aucun outil ne réussit, IA ou pas.

Gouvernance : faire travailler un agent sans casser la prod

Tableau de gouvernance d'un agent IA avec contrôles de permissions et audit trail visibles à l'écran

Sandbox, permissions, garde-fous CI

Tout agent autonome doit tourner dans un environnement contrôlé : conteneur dédié, branche jetable, pas d’accès direct à main, pas de droits sur les secrets de production. Les hooks pre-commit et la CI restent vos derniers remparts ; ne les désactivez pas pour gagner cinq minutes. Les permissions doivent être listées explicitement (lecture, écriture, push, exécution shell, accès réseau) et révisables.

Coût et observabilité

Un agent qui boucle peut coûter 50 euros en API en quelques minutes. Plafonnez le budget par session (--max-tokens, --timeout), loggez chaque appel d’outil, et gardez un trace ID par tâche. Sans observabilité, vous ne saurez ni pourquoi l’agent a échoué, ni combien il a vraiment coûté.

Notre verdict 2026

Les agents ia autonomes dev sont sortis de la phase démo et entrés dans la phase outils-de-tous-les-jours pour les équipes qui ont fait l’effort de les cadrer. Claude Code domine en confort, LangGraph en finesse, n8n en accessibilité, OpenClaw en couche système. Devin reste un pari intéressant à statut pilote. La règle d’or n’a pas changé : un agent en autonomie totale exige un environnement plus mature que vous, pas moins. Tests, sandbox, permissions, observabilité. C’est aussi banal que vrai.

Questions fréquentes

Qu’est-ce qu’un agent IA autonome dans le développement ?

C’est un système qui, à partir d’un objectif de haut niveau, planifie une séquence d’actions, les exécute via des outils branchés (commandes shell, API, MCP) et boucle jusqu’à atteindre son but. Il se distingue d’un assistant classique par sa capacité à enchaîner plusieurs étapes sans validation humaine à chaque pas. Les exemples concrets en 2026 : Claude Code en mode agent, Devin, Cursor agent mode, ou un graphe LangGraph custom.

Devin remplace-t-il un développeur en 2026 ?

Non, et personne sérieux ne le prétend en 2026. Devin tient sur des tickets bien isolés et bien décrits, dans un sandbox propre, avec une suite de tests qui valide le résultat. Sur des bases legacy floues, des contraintes business implicites ou des décisions d’architecture, il échoue ou produit du code subtilement faux. Il complète, il ne remplace pas. Le vrai gain est de récupérer du temps sur les tâches mécaniques.

Quels agents IA sont fiables en production aujourd’hui ?

En 2026, Claude Code (mode agent) tient en production sur des tâches cadrées chez de nombreuses équipes. Cursor agent mode est solide pour le travail IDE-centric. Les agents LangGraph custom sont fiables si l’équipe a investi en observabilité. n8n est très utilisé pour des workflows agentiques en pipeline. Devin reste en pilote dans la plupart des organisations. OpenClaw est encore officiellement beta.

Peut-on construire son propre agent IA dev ?

Oui, et c’est même la voie privilégiée pour des cas spécialisés. LangGraph et CrewAI offrent les frameworks de référence Python. Pour le no-code visuel, n8n permet de composer un agent en arrangeant des nodes. Pour un agent système multi-canal, OpenClaw fournit un SDK TypeScript. La complexité réelle n’est pas dans le code de l’agent, mais dans l’observabilité, les permissions et le cadrage des prompts.

Comment encadrer un agent IA pour ne pas casser la prod ?

Quatre garde-fous non négociables. Un sandbox isolé (conteneur, branche jetable, pas d’accès main). Des permissions explicites (lecture, écriture, shell, réseau, secrets). Un budget plafonné par session pour éviter la facture surprise. Une observabilité complète (chaque appel d’outil loggé, trace ID par tâche). Avec ces quatre éléments, l’agent peut explorer sans menacer votre production.

Vous voulez expérimenter un agent en interne sans risquer une prod cassée le vendredi soir ? On peut concevoir le sandbox et les garde-fous ensemble.

Station de développement autonome faisant tourner une stack IA complète sur du matériel local en 2026

Une stack IA locale, en 2026, n’est plus un projet de bricoleur du dimanche. Quatre briques open source matures (Ollama, Open WebUI, n8n, OpenClaw) suffisent à composer un environnement IA complet qui ne dépend d’aucun fournisseur cloud. Le pari de cet article n’est pas de vendre l’autonomie comme une religion : Claude Sonnet et GPT gardent des avantages bien réels. Il est de vous donner le mode d’emploi pragmatique pour monter votre propre stack ia locale, savoir quand elle remplace le cloud, quand elle le complète, et combien elle coûte sur douze mois face à un abonnement Pro.

Station de développement autonome faisant tourner une stack IA complète sur du matériel local en 2026

Pourquoi une stack IA dev 100% locale en 2026

Confidentialité : santé, juridique, finance, R&D

Le moteur le plus solide derrière une stack ia locale s’appelle la confidentialité. En 2026, la majorité des acteurs santé, juridique, banque-assurance, défense ou R&D refusent d’envoyer leurs corpus dans un service cloud, même contractuel. Le RGPD, la directive NIS2, le Cyber Resilience Act et les politiques internes finissent par converger : si la donnée ne peut pas sortir, le LLM doit entrer. Ollama, Open WebUI et compagnie répondent exactement à ce besoin.

Coût récurrent vs investissement matériel

Un développeur qui consomme l’IA toute la journée brûle vite 30 à 80 euros par mois en API ou abonnements Pro. Sur trois ans, un Mac M3 Pro 18 Go bien amorti revient moins cher qu’un Claude Code Max et coupe la dépendance fournisseur. La courbe de rentabilité bascule plus tôt qu’on ne l’imagine, surtout pour une équipe de plusieurs développeurs ou un freelance qui mutualise son matériel.

Souveraineté et résilience

Une souveraineté tech, parallèle historique nous rappelle que la dépendance fournisseur a toujours été un point de fragilité. Une stack locale continue de fonctionner pendant les pannes OpenAI, dans un train sans 5G, sur un site industriel isolé, ou en zone à connectivité incertaine. C’est aussi un argument commercial fort en B2B sensible.

Les quatre briques de la stack

Schéma d'architecture local affichant les quatre briques d'une stack IA dev interconnectées

Une stack IA locale efficace tient en quatre composants spécialisés. Ils se parlent en HTTP local, chacun a une responsabilité claire, et tous tournent en un seul docker compose up.

BriqueRôleAlternativesDocker prêtRAM/VRAM
OllamaMoteur d’inference LLMllama.cpp, vLLM, LM StudioOui (image officielle)8-24 Go VRAM
Open WebUIInterface chat à la ChatGPTLibreChat, AnythingLLMOui1 Go RAM
n8nOrchestration agents et workflowsMake, Zapier (cloud), ActivepiecesOui1 Go RAM
OpenClawAssistant système multi-canalHome Assistant, agent maisonOui (beta)500 Mo RAM

Ollama, le moteur d’inference

Ollama charge un modèle quantisé (un modèle compressé en 4 ou 8 bits par paramètre pour tenir en VRAM, Video RAM, la mémoire d’un GPU) et expose une API HTTP locale sur localhost:11434. Il joue le rôle de la centrale d’énergie : tout ce qui parle IA dans la stack passe par là. Le projet est open source sous licence MIT, dépôt principal sur github.com/ollama/ollama. Pour les détails CLI, modèles et Modelfile, voir l’installation et workflow Ollama.

Open WebUI, l’interface chat à la ChatGPT

Open WebUI offre une interface web complète (chat, historique, prompts sauvegardés, RAG sur documents, multi-modèles) qui se branche sur Ollama en deux variables d’environnement. C’est le lieu où vos collègues non-développeurs viennent dialoguer avec le LLM local sans toucher au terminal. Le projet est documenté sur docs.openwebui.com.

n8n, l’orchestrateur d’agents et de workflows

n8n est l’outil qui transforme une bibliothèque de modèles en agents qui font des choses : surveiller GitHub, traiter du mail, scraper, écrire dans Notion, déclencher un build. Il tourne en self-hosted Docker, accepte des nodes pour Ollama, Anthropic, OpenAI et LangChain, et permet de versionner ses workflows en JSON. La référence officielle vit sur docs.n8n.io ; voir aussi le détail dans le guide pour automatiser des workflows IA avec n8n.

OpenClaw, l’assistant système agnostique

OpenClaw est arrivé en janvier 2026 comme le « Jarvis open source » : un agent système TypeScript multi-canal (Telegram, Discord, Slack, WhatsApp, iMessage) agnostique du modèle. Il prend des commandes en langage naturel et exécute des skills (modules réutilisables qui parlent à GitHub, Obsidian, Spotify, votre calendrier). Là où n8n est un orchestrateur, OpenClaw est un compagnon conversationnel. Code source ouvert sur github.com/openclaw/openclaw. Détails projet dans OpenClaw, l’assistant système open source.

Comparaison pragmatique avec la stack cloud

Claude Code, Cursor, Copilot : ce qu’ils gardent

Le cloud garde trois avantages clairs en 2026 : la qualité brute (Claude Sonnet 4.5 et GPT-5 dépassent encore tout modèle local sur le raisonnement complexe et le contexte long), la fluidité d’usage (zéro maintenance, mises à jour gérées) et l’écosystème d’agents prébranchés (Claude Code, Cursor, Devin). Pour un développeur qui code des projets variés sans contrainte de confidentialité, c’est imbattable.

La stack locale : ce qu’elle gagne, ce qu’elle perd

La stack ia locale gagne sur la confidentialité (donnée scellée), le coût marginal (zéro après amortissement), la latence (pas de round-trip réseau) et la résilience (pas de dépendance fournisseur). Elle perd sur la qualité du raisonnement complexe, sur les modèles frontière, et sur la simplicité de mise à jour. Le compromis dépend de votre vrai mix de cas d’usage.

L’hybride raisonnable

La position pragmatique en 2026 est l’hybride : local pour le sensible et le volumineux (RAG sur codebase privée, génération de tests, traduction de docstrings, résumés de tickets), cloud pour le complexe et l’exceptionnel (refactor d’architecture, debug de problème ouvert, design de système). Un router simple dans n8n ou Claude Code décide où envoyer chaque requête. Voir aussi le panorama complet des agents IA autonomes en 2026.

Guide d’installation pas-à-pas

Configuration docker-compose.yml ouverte dans un éditeur pour orchestrer une stack IA locale

Prérequis matériels

Comptez 32 Go de RAM minimum, 100 Go de SSD libre, et soit un Mac M-series (M2 Pro et au-delà), soit un PC avec une RTX 4070 Ti 16 Go ou supérieure. Docker Desktop ou un Docker natif Linux. Pour faire tourner du 14B en parallèle d’Open WebUI et n8n, visez 16 Go de VRAM dédiée ou 24 Go d’unified memory.

Installer Ollama et tirer 2-3 modèles

curl -fsSL https://ollama.com/install.sh | sh
ollama pull qwen2.5-coder:14b
ollama pull llama3.3:8b
ollama pull nomic-embed-text

Trois modèles : un coder, un généraliste, un d’embeddings pour le RAG (Retrieval Augmented Generation, technique qui injecte des extraits documentaires dans le prompt avant la réponse).

Lancer toute la stack avec docker-compose

services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    ports: ["3000:8080"]
    environment:
      - OLLAMA_BASE_URL=http://host.docker.internal:11434
    volumes: [open-webui:/app/backend/data]

  n8n:
    image: n8nio/n8n:latest
    ports: ["5678:5678"]
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=changeme
    volumes: [n8n_data:/home/node/.n8n]

  openclaw:
    image: openclaw/openclaw:beta
    ports: ["7654:7654"]
    environment:
      - MODEL_PROVIDER=ollama
      - OLLAMA_HOST=http://host.docker.internal:11434
    volumes: [openclaw_data:/data]

volumes:
  open-webui:
  n8n_data:
  openclaw_data:

Un docker compose up -d, et vous avez Open WebUI sur :3000, n8n sur :5678, OpenClaw sur :7654, tous branchés sur le Ollama hôte. Les versions testées en mai 2026 : Ollama 0.5.x, Open WebUI 0.6.x, n8n 1.85.x, OpenClaw beta 0.4.x.

Brancher OpenClaw sur Ollama

Dans l’interface OpenClaw (localhost:7654), section Models, sélectionnez ollama, choisissez qwen2.5-coder:14b comme modèle par défaut, ajoutez vos canaux (Telegram bot token, webhook Slack), activez les skills GitHub et Obsidian. Le tout en moins de quinze minutes.

Trois cas d’usage concrets

RAG local sur codebase et documentation

Open WebUI propose nativement un onglet « Documents » : vous y déposez votre codebase et votre documentation, il indexe via nomic-embed-text, et chaque conversation peut s’appuyer sur ces sources. Pour une équipe interne, c’est le ChatGPT-qui-connaît-votre-projet sans rien laisser fuiter. Combinez avec la stratégie de générer des tests sur du code sensible pour fermer la boucle qualité.

Agent n8n qui revoit les PR GitHub avec Ollama

Workflow type : webhook GitHub pull_request.opened, récupération du diff via API, prompt Ollama « voici un diff, donne-moi une revue critique en français orientée bugs, perf et sécurité », commentaire posté automatiquement sur la PR. Vous obtenez une revue first-pass cohérente sur 100% de vos PR sans dépenser un centime cloud. Voici un export n8n minimal du workflow, prêt à importer dans votre instance et à versionner en Git.

{
  "name": "PR review local Ollama",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "github-pr-opened",
        "responseMode": "onReceived"
      },
      "id": "webhook-1",
      "name": "GitHub Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [240, 300]
    },
    {
      "parameters": {
        "url": "=https://api.github.com/repos/{{$json[\"repository\"][\"full_name\"]}}/pulls/{{$json[\"pull_request\"][\"number\"]}}",
        "authentication": "headerAuth",
        "options": { "headers": { "Accept": "application/vnd.github.v3.diff" } }
      },
      "id": "http-1",
      "name": "Fetch PR diff",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [480, 300]
    },
    {
      "parameters": {
        "url": "http://host.docker.internal:11434/api/generate",
        "method": "POST",
        "jsonParameters": true,
        "bodyParametersJson": "={\n  \"model\": \"qwen2.5-coder:14b\",\n  \"stream\": false,\n  \"prompt\": \"Tu es un relecteur senior. Voici un diff de PR. Donne une revue critique en francais, structuree en bugs, perfs, securite, lisibilite. Sois concis.\\n\\n{{$json[\"data\"]}}\"\n}"
      },
      "id": "ollama-1",
      "name": "Ollama generate",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [720, 300]
    },
    {
      "parameters": {
        "url": "=https://api.github.com/repos/{{$node[\"GitHub Webhook\"].json[\"repository\"][\"full_name\"]}}/issues/{{$node[\"GitHub Webhook\"].json[\"pull_request\"][\"number\"]}}/comments",
        "method": "POST",
        "authentication": "headerAuth",
        "jsonParameters": true,
        "bodyParametersJson": "={\n  \"body\": \"Revue automatique (Ollama qwen2.5-coder local) :\\n\\n{{$json[\"response\"]}}\"\n}"
      },
      "id": "comment-1",
      "name": "Post PR comment",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [960, 300]
    }
  ],
  "connections": {
    "GitHub Webhook": { "main": [[{ "node": "Fetch PR diff", "type": "main", "index": 0 }]] },
    "Fetch PR diff": { "main": [[{ "node": "Ollama generate", "type": "main", "index": 0 }]] },
    "Ollama generate": { "main": [[{ "node": "Post PR comment", "type": "main", "index": 0 }]] }
  },
  "active": false,
  "settings": { "executionOrder": "v1" },
  "versionId": "1.0.0"
}

Quatre nodes : un webhook GitHub, un fetch du diff via l’API, un appel HTTP vers localhost:11434 qui interroge Qwen2.5-Coder, un POST de commentaire sur l’issue/PR. Auth GitHub par token PAT en header, modèle Ollama tournant sur l’hôte, zéro appel cloud sortant.

OpenClaw + Ollama sur Telegram, assistant système offline

Vous écrivez à votre bot Telegram : « résume les issues critiques ouvertes hier sur mon repo », « capture cette idée dans Obsidian », « lance le mode focus, coupe Slack une heure ». OpenClaw exécute via ses skills, sans qu’aucun message ne quitte votre infrastructure (l’API Telegram étant la seule sortie réseau, et chiffrée). Pour aller plus loin, il est possible de brancher MCP sur Ollama et n8n et exposer vos services internes comme outils à l’agent.

Limites et pièges

Latence et qualité vs Claude Sonnet

Sur un Mac M3 Pro avec Qwen2.5-Coder 14B, comptez 25 à 35 tokens par seconde. C’est rapide, mais pas instantané. La qualité tient sur du code direct, descend sur le raisonnement multi-étapes long. Soyez lucide : pour un debug ouvert dans un legacy, Claude Sonnet 4.5 reste plus efficace en temps total, même avec sa latence cloud.

Maintenance : versions, modèles, drivers

Une stack locale demande 2 à 4 heures de maintenance par mois : montée de version Ollama, drivers GPU, nouveaux modèles à tester, mises à jour Open WebUI et n8n. Sur un poste de dev, c’est tenable. Sur un serveur partagé d’équipe, cadrez un responsable et un cycle de mise à jour clair.

Quand l’hybride reste plus malin

Si 80% de votre IA quotidienne consiste en raisonnements complexes, design de système, ou exploration de bases de code énormes, le 100% local va frustrer. Restez en hybride : local pour le confidentiel et le volume, cloud pour l’exceptionnel. Le pilier brancher MCP sur Ollama et n8n détaille comment maintenir un seul protocole de communication des deux côtés.

Coût total sur 12 mois : local vs cloud

Graphique comparant le coût annuel d'une stack IA locale et d'une stack cloud sur 12 mois

Voici trois scénarios concrets, en euros TTC, sur douze mois pour un usage IA dev intensif (équivalent 50 millions de tokens / mois en cloud).

ScénarioInvestissement initialCoût récurrent / moisTotal 12 mois
Mac M3 Pro 18 Go (achat)2 599 €0 € (électricité ~5 €)2 659 €
PC Ryzen + RTX 4070 Ti Super 16 Go1 800 €0 € (électricité ~8 €)1 896 €
Mini-serveur Hetzner GPU GEX440 €~250 €3 000 €
Claude Code Pro × 12 mois0 €~100 €1 200 €
Claude Code Max × 12 mois0 €~200 €2 400 €

Lecture rapide : sur un an, Claude Code Pro reste moins cher en cash que l’achat matériel. Sur deux ans, l’achat passe devant. À partir de la troisième année, l’écart se creuse en faveur du local. Mais le calcul change radicalement dès qu’il y a une équipe (un serveur GPU partagé entre 5 développeurs amortit en 6 mois) ou des données qui ne peuvent pas sortir.

Questions fréquentes

Quelles sont les briques d’une stack IA dev 100% locale en 2026 ?

Quatre briques suffisent : Ollama pour faire tourner les modèles (moteur d’inference), Open WebUI pour l’interface chat à la ChatGPT, n8n pour orchestrer des agents et des workflows, OpenClaw pour l’assistant système multi-canal (Telegram, Slack, Discord). Chacune est open source, dispose d’une image Docker officielle, et se branche sur les autres en HTTP local. Un seul docker-compose monte l’ensemble.

Combien coûte une stack IA locale comparée à Claude Code Pro ?

Une stack ia locale demande 1 800 à 2 600 euros d’investissement matériel one-shot (Mac M3 Pro ou PC RTX 4070 Ti) pour zéro coût récurrent ensuite. Claude Code Pro coûte environ 1 200 euros sur douze mois et Max environ 2 400 euros. Le break-even se situe autour de 18 à 24 mois pour un usage solo. Pour une équipe ou des données sensibles, le local devient rapidement plus rentable.

Quel matériel minimum pour faire tourner une stack IA dev en local ?

Le seuil utile en 2026 est 32 Go de RAM, 16 Go de VRAM dédiée (ou 24 Go d’unified memory sur Mac M-series), 100 Go de SSD libre. Un MacBook Pro M3 Pro 18 Go, un PC Ryzen 7 + RTX 4070 Ti Super 16 Go, ou un mini-PC Framework avec GPU externe font le job. En dessous, vous serez limité aux modèles 7B et perdrez en qualité.

Une stack IA locale remplace-t-elle Claude ou GPT ?

Pas pour tout. Les modèles frontière (Claude Sonnet 4.5, GPT-5) gardent en 2026 un avantage net sur le raisonnement complexe, le contexte ultra-long et les tâches exploratoires ouvertes. La stack locale excelle sur les volumes répétitifs (génération de tests, résumés, traduction, RAG), les contraintes de confidentialité et les contextes offline. La position raisonnable est l’hybride.

Peut-on faire du RAG sur sa codebase en local ?

Oui, et c’est même l’un des cas d’usage les plus convaincants. Open WebUI gère un RAG natif via le modèle d’embeddings nomic-embed-text servi par Ollama. Vous déposez votre repo, vous posez des questions en langage naturel, et le système retrouve les bons fichiers avant de répondre. Aucune ligne de code ne quitte votre machine. Pour des cas plus avancés, n8n permet de construire un pipeline RAG custom avec un vector store dédié type Qdrant.

Vous avez des données sensibles que vous ne pouvez pas envoyer dans le cloud, ou un volume IA qui pèse sur votre stack ia locale à venir ? On peut concevoir l’architecture ensemble.

Station de développement isolée faisant tourner un LLM Ollama en local sur un ordinateur portable

Ollama remet le LLM (Large Language Model) sur votre disque dur, et le cloud n’est plus la seule porte d’entrée vers les modèles génératifs en 2026. Pour un développeur qui jongle entre Claude, GPT et des bouts de code confidentiels, l’idée d’un modèle qui tourne sans jamais sortir de la machine a quitté le rayon « gadget » pour rejoindre celui des outils sérieux. Cet article vous donne le mode d’emploi opérationnel : ce qu’Ollama fait précisément, comment l’installer en dix minutes sur Mac, Linux ou Windows, quels modèles tirer en 2026, et comment brancher tout ça sur VS Code, Claude Code ou n8n.

Station de développement isolée faisant tourner un LLM Ollama en local sur un ordinateur portable

Ollama, c’est quoi exactement

Une couche au-dessus de llama.cpp pensée pour l’usage

Ollama est un runner de modèles open source qui empaquette llama.cpp (le moteur d’inference C++ qui sait charger des modèles quantisés sur CPU et GPU) avec une API HTTP locale, un registre de modèles préemballés, et une CLI qui se lit comme Docker. Là où llama.cpp demande de connaître les flags de compilation, le format gguf et la gymnastique de la quantization (compression d’un modèle pour le faire tenir en mémoire avec une perte de qualité contrôlée), Ollama vous laisse taper ollama run llama3.3 et vous obtenez un prompt fonctionnel.

Cette ergonomie change tout. La majorité des développeurs francophones que vous croisez en 2026 sur des sujets de LLM local utilisent Ollama, pas llama.cpp nu. LM Studio joue dans le même registre côté grand public, mais avec un parti pris GUI qui colle moins bien aux workflows de dev scriptables.

L’API HTTP locale et le concept de Modelfile

Une fois Ollama lancé, il expose une API HTTP sur localhost:11434. Elle parle JSON, suit en partie la convention OpenAI /v1/chat/completions, et accepte aussi sa propre route /api/generate. C’est cette API qui rend Ollama vraiment utile : tout client capable de pointer vers une URL custom (Continue, Cursor, n8n, vos scripts Python) peut consommer un modèle local comme s’il s’agissait d’OpenAI.

Le second concept clé, c’est le Modelfile : un fichier descripteur à la Dockerfile qui empile un modèle de base, un system prompt, des paramètres d’inférence et un template de chat. Vous pouvez créer un modèle « assistant code Python » prêt à l’emploi en quelques lignes :

FROM qwen2.5-coder:14b
SYSTEM "Vous êtes un assistant Python senior. Réponses courtes, du code testable, pas de blabla."
PARAMETER temperature 0.2
PARAMETER num_ctx 16384

Un ollama create py-senior -f Modelfile, et vous avez un modèle utilitaire réutilisable, scriptable, et versionnable en Git.

Ce que ça résout : confidentialité, coût zéro, dev offline

Trois bénéfices justifient la bascule. Vos données de prompt ne quittent jamais la machine, ce qui ouvre des cas d’usage que le cloud ne peut pas couvrir : code sous accord de confidentialité, données de santé, dossiers juridiques. Le coût marginal d’un appel tombe à zéro une fois le matériel amorti ; un dev qui consomme 200 millions de tokens par mois passe d’une facture API mensuelle à une facture électrique négligeable. Enfin, vous codez dans le train, en avion, sur un site isolé, ou pendant la prochaine panne d’OpenAI sans interruption.

Installation et premier modèle

Téléchargement et exécution d'un modèle Llama via la commande ollama pull dans un terminal

Installer Ollama sur Mac, Linux et Windows

Sur macOS, le plus rapide reste brew install ollama ou le .dmg officiel. Sur Linux, une seule ligne suffit :

curl -fsSL https://ollama.com/install.sh | sh

Sur Windows, l’installeur natif (depuis ollama.com) gère le service en arrière-plan. WSL2 reste une option si vous travaillez déjà sous Linux dans Windows. Une fois installé, vérifiez avec ollama --version ; les versions stables 2026 dépassent désormais la 0.5.x avec un support officiel des modèles long-contexte et de la sortie structurée JSON.

Choisir son premier modèle

Pour un premier essai sans drame, ollama pull llama3.3:8b reste un bon repère : 8 milliards de paramètres, environ 5 Go sur le disque, tient sur 8 Go de VRAM (Video RAM, la mémoire embarquée d’un GPU) ou un Mac M1/M2 16 Go. Lancez ensuite ollama run llama3.3 pour discuter en CLI.

Premiers tests via CLI puis via API

Une fois le modèle chargé, vous pouvez sortir du REPL et frapper l’API HTTP directement :

curl http://localhost:11434/api/generate -d '{
  "model": "llama3.3",
  "prompt": "Écris une fonction Python qui valide un email RFC 5322.",
  "stream": false
}'

Réponse JSON, latence locale, aucun token sortant. Le mode "stream": true renvoie les chunks SSE pour brancher une UI fluide.

Les modèles 2026 qui valent le coup pour un dev

Tous les modèles ne se valent pas pour le code. Voici une grille d’orientation issue de tests menés début 2026 sur du Python, du TypeScript et du Go.

ModèleTailleVRAM utileScore code (subjectif)Vitesse (M3 Pro)
Qwen2.5-Coder 14B9 Go12 GoTrès bon~35 t/s
DeepSeek-Coder-V2 16B10 Go16 GoExcellent~25 t/s
Llama 3.3 8B5 Go8 GoCorrect~50 t/s
Mistral Small 22B13 Go16 GoBon généraliste~20 t/s
Phi-3.5 mini 3.8B2,3 Go4 GoLéger~80 t/s

Modèles généralistes

Llama 3.3 reste la valeur sûre pour le chat général. Mistral Small 22B fait mieux en raisonnement mais demande plus de mémoire. Qwen 2.5 32B, si vous avez la VRAM, encaisse des prompts complexes en français nettement mieux que Llama.

Modèles spécialisés code

DeepSeek-Coder-V2 16B est, en pratique, le meilleur compromis qualité-taille pour générer du code en local en 2026. Qwen2.5-Coder 14B suit de très près et tourne plus vite. Codestral 22B (Mistral) reste solide pour qui dispose d’une RTX 4090 ou d’un M3 Max.

Modèles légers pour CPU et laptop

Sur un laptop sans GPU dédié, Phi-3.5 mini 3.8B et Gemma 2 2B restent utilisables en CPU pur. Vous n’aurez pas la qualité d’un modèle 14B, mais la latence reste correcte pour de l’autocomplétion ou des résumés courts.

Trois cas d’usage concrets

VS Code branché sur Ollama affichant une suggestion d'autocomplétion offline sur un projet Node

Autocomplétion offline dans VS Code via Continue

L’extension Continue (docs.continue.dev) accepte n’importe quel endpoint compatible OpenAI. Pointez-la sur http://localhost:11434/v1 avec qwen2.5-coder:14b comme modèle de complétion et nomic-embed-text comme modèle d’embeddings, et vous avez Copilot sans Copilot. La latence reste sous les 200 ms par suggestion sur un Mac M3 Pro.

Génération de tests sur du code sensible

Un script Node de quinze lignes qui pipe un fichier source vers /api/generate avec un system prompt « génère les tests Jest manquants » suffit pour traiter un repo entier sans rien envoyer en dehors. Combinez avec le pilier sur la génération de tests sans dette pour cadrer la stratégie globale.

RAG local sur documentation interne ou base de code

Le RAG (Retrieval Augmented Generation, technique qui injecte des extraits de votre base documentaire dans le prompt avant que le modèle ne réponde) tient en local avec Ollama, un modèle d’embeddings comme nomic-embed-text, et un vector store léger type chroma ou qdrant. Vous gagnez un assistant qui connaît votre codebase ou votre documentation interne sans qu’aucun fichier ne fuite.

Intégrer Ollama dans son écosystème

Avec Claude Code en mode hybride

Claude Code reste cloud par défaut, mais rien n’empêche de coupler les deux. On utilise Claude pour les raisonnements complexes (refactor d’architecture, debug profond) et Ollama pour les tâches répétitives qui n’ont pas besoin d’un modèle frontière (génération de tests boilerplate, reformulation de commits, traduction de docstrings). Le pilier stack IA dev 100% locale (Ollama + Open WebUI + n8n) détaille cette logique hybride.

Avec n8n pour orchestrer des agents

n8n dispose depuis 2024 d’un node Ollama natif qui consomme l’API locale. Vous pouvez monter un agent qui scrape une veille tech, fait résumer chaque article par Llama 3.3, et pousse une fiche dans Notion — sans aucun appel cloud. Le détail dans le guide pour orchestrer Ollama avec n8n.

Avec Open WebUI et OpenClaw

Open WebUI offre une interface chat à la ChatGPT branchée sur Ollama. Pour un usage agent système (notifications GitHub, capture Obsidian depuis Telegram), OpenClaw, l’assistant IA open source accepte Ollama comme provider de modèle. Pour un setup MCP, voyez comment brancher un serveur MCP sur Ollama.

Limites honnêtes en 2026

Performance vs Claude Sonnet ou GPT

Soyons clairs : un Llama 3.3 70B quantisé reste loin derrière Claude Sonnet 4.5 ou GPT-5 sur des tâches de raisonnement complexe et de planification long terme. Pour du code clé en main sur un projet propre et bien décrit, l’écart se resserre. Pour du debug exploratoire dans un legacy mal documenté, le cloud garde l’avantage.

Coût matériel

Pour faire tourner du 14B confortablement, comptez 16 Go de VRAM minimum. Un Mac M3 Pro 18 Go d’unified memory s’en sort très bien et reste portable. Côté PC, une RTX 4070 Ti 16 Go ou une 4090 24 Go ouvrent les portes des modèles 30B+. Au-delà, on parle workstations sérieuses ou cloud GPU à la demande.

Quand le cloud reste plus pertinent

Pour un développeur isolé qui code des projets variés sans contrainte de confidentialité, l’abonnement Claude Pro ou ChatGPT Plus reste imbattable en rapport qualité/effort. Ollama brille quand vous avez un volume soutenu, des contraintes RGPD strictes, ou l’envie d’avoir une stack qui survit à la prochaine panne fournisseur. Pour les fondamentaux d’un projet web, choisissez en fonction de l’enjeu, pas de la mode.

Questions fréquentes

Qu’est-ce qu’Ollama et à quoi ça sert ?

Ollama est un runner de modèles open source qui fait tourner des LLM en local sur votre machine. Il empaquette le moteur d’inference llama.cpp, expose une API HTTP compatible OpenAI sur localhost:11434, et fournit une CLI à la Docker pour télécharger et lancer des modèles d’une seule commande. Il sert quand vous avez besoin de confidentialité, de coût marginal nul, ou de travailler offline.

Quel modèle Ollama choisir pour un développeur en 2026 ?

Pour du code en local en 2026, le meilleur compromis est DeepSeek-Coder-V2 16B si vous avez 16 Go de VRAM, sinon Qwen2.5-Coder 14B qui tourne plus vite avec une qualité très proche. Pour un usage généraliste mêlant chat et code, Llama 3.3 8B reste un excellent point d’entrée. Sur laptop sans GPU, Phi-3.5 mini 3.8B fait le job pour des tâches simples.

Combien de VRAM faut-il pour faire tourner Ollama ?

Pour un modèle 7B à 8B en quantisation Q4, comptez 6 à 8 Go de VRAM. Pour un 13B à 14B, 12 à 16 Go. Pour un 30B+, 24 Go minimum. Sur Mac avec unified memory, ces chiffres s’appliquent à la RAM totale puisque CPU et GPU partagent la même mémoire. Sans GPU dédié, des petits modèles comme Phi-3.5 mini ou Gemma 2 tournent en CPU sur 8 à 16 Go de RAM.

Peut-on utiliser Ollama avec Claude Code ou Cursor ?

Cursor accepte de pointer vers un endpoint OpenAI-compatible custom, donc oui via http://localhost:11434/v1. Claude Code reste branché sur l’API Anthropic, mais vous pouvez le coupler à Ollama via des hooks, des scripts externes, ou un workflow n8n qui aiguille selon la tâche. La logique hybride local/cloud est détaillée dans le pilier ai-local de WebCreatid.

Ollama est-il gratuit et open source ?

Oui. Ollama est publié sous licence MIT et le code source vit sur github.com/ollama/ollama. Les modèles téléchargés ont leurs propres licences (Llama, Apache 2.0, MIT selon le modèle), et beaucoup permettent un usage commercial sans restriction. Aucun compte, aucun abonnement, aucune télémétrie obligatoire.

Vous voulez intégrer un LLM local dans votre stack sans vous noyer dans la config GPU et les arbitrages de modèle ? On peut cadrer la stack ensemble.