Le syndrome de la documentation obsolète est le fléau de tout projet de développement. Dès qu'un commit est poussé, les wikis rédigés à la main commencent leur lente descente vers l'incohérence. OpenWiki, un outil en ligne de commande développé par LangChain, s'attaque directement à ce problème en confiant la rédaction et la synchronisation de la documentation à un agent LLM connecté à votre dépôt et à votre historique Git.
Qu'est-ce qu'OpenWiki ?
Plutôt que de vous obliger à mettre à jour manuellement vos pages de documentation, OpenWiki analyse votre code source, examine l'historique de vos commits et génère une structure de pages Markdown propre au sein d'un répertoire openwiki/.
L'outil va plus loin en injectant des pointeurs dans des fichiers racines comme AGENTS.md ou CLAUDE.md. Vos assistants de codage autonomes (tels que Claude Code ou Cursor) peuvent ainsi consulter directement et automatiquement la documentation technique à jour de votre projet.
Prérequis et installation
Pour exploiter pleinement OpenWiki, assurez-vous de disposer de l'environnement suivant :
- Node.js : Version 20 ou supérieure (v22 recommandée pour l'intégration continue).
- Git : Indispensable, car OpenWiki s'appuie sur l'historique des commits comme source de vérité.
- Clé API LLM : Compatible par défaut avec OpenRouter, mais supporte également Anthropic, OpenAI, Baseten, Fireworks ou tout autre endpoint compatible OpenAI.
Vérifiez rapidement votre environnement dans votre terminal :
node --version # Doit être >= v20 git --version npm --version
Installation globale
Installez l'outil en une seule commande via npm :
npm install -g openwiki
Confirmez que l'installation s'est déroulée correctement en affichant l'aide :
openwiki --help
Vous devriez voir s'afficher les options principales (--init, --update, -p/--print, --modelId) ainsi que des exemples d'utilisation.
Premiers pas sur un dépôt
Placez-vous dans le répertoire de travail de votre projet Git (qu'il soit public ou privé, OpenWiki n'ayant besoin que d'un accès au système de fichiers local) :
cd votre-projet
Configuration initiale
Lors de votre première exécution, un assistant interactif vous guidera pour configurer vos identifiants (enregistrés de manière sécurisée dans ~/.openwiki/.env) :
openwiki
L'assistant vous demandera de choisir votre fournisseur LLM, de renseigner votre clé API, de sélectionner un identifiant de modèle (comme z-ai/glm-5.2 ou anthropic/claude-3-5-sonnet) et éventuellement une clé de traçage LangSmith.
Astuce pour les environnements sans interface graphique : Vous pouvez contourner l'assistant interactif en pré-remplissant directement vos variables d'environnement :
export OPENWIKI_PROVIDER=openrouter export OPENROUTER_API_KEY="sk-or-v1-xxxxxxxx" export OPENWIKI_MODEL_ID="z-ai/glm-5.2"
Générer et maintenir la documentation
1. Génération de la documentation initiale (--init)
Pour une création de wiki à partir d'une feuille blanche, lancez la commande de démarrage à froid :
openwiki --init --print
(L'option --print permet une exécution non interactive idéale pour les scripts).
Cette commande structure votre projet de la manière suivante :
votre-repo/
├── AGENTS.md # Pointeur vers openwiki/quickstart.md
├── CLAUDE.md # Pointeur pour les utilisateurs de Claude Code
└── openwiki/
├── quickstart.md # Point d'entrée et orientation haut niveau
├── architecture/
│ └── overview.md
├── agent/
│ └── workflow.md
└── .last-update.json # Métadonnées de suivi (timestamp, dernier commit)
2. Mises à jour ciblées par logique delta (--update)
C'est ici qu'OpenWiki brille. Après avoir validé de nouvelles modifications de code, mettez à jour uniquement les pages qui ont dérivé :
openwiki --update --print
L'outil analyse les nouveaux commits depuis le dernier commit documenté enregistré dans .last-update.json et applique des modifications chirurgicales. Si aucun changement pertinent n'est détecté, aucune opération n'est effectuée, évitant ainsi le bruit inutile.
Mode interactif et questions ponctuelles
Sans paramètre, OpenWiki ouvre une interface de chat TUI (basée sur React/Ink) pour dialoguer directement avec un agent connaissant tout le contexte de votre dépôt :
openwiki
Vous pouvez aussi poser des questions ponctuelles directement depuis votre terminal :
openwiki -p "List every external service this codebase depends on"
Automatisation quotidienne avec GitHub Actions
Pour garantir que votre documentation ne prenne jamais de retard, automatisez les mises à jour via une tâche planifiée (cron) qui ouvrira une Pull Request dès que des changements sont détectés.
Créez le fichier .github/workflows/openwiki-update.yml dans votre dépôt :
name: OpenWiki Update
on:
workflow_dispatch:
schedule:
- cron: "0 8 * * *"
permissions:
contents: write
pull-requests: write
jobs:
update:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
- name: Install OpenWiki
run: npm install --global openwiki
- name: Run OpenWiki
run: openwiki --update --print
env:
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
OPENWIKI_MODEL_ID: z-ai/glm-5.2
- name: Create OpenWiki update pull request
uses: peter-evans/create-pull-request@v7
with:
add-paths: openwiki
branch: openwiki/update
commit-message: "docs: update OpenWiki"
title: "docs: update OpenWiki"
body: |
Automated OpenWiki documentation update generated by the scheduled workflow.
N'oubliez pas d'ajouter votre clé API (par exemple OPENROUTER_API_KEY) dans les Secrets de votre dépôt GitHub (Paramètres > Secrets et variables > Actions).
Bilan : Points forts et points faibles
| Points forts 🟢 | Points faibles 🔴 |
|---|---|
| Automatisation totale : Fini la corvée de mise à jour manuelle des wikis. | Dépendance au LLM : La qualité de la documentation générée dépend directement des capacités du modèle choisi. |
Intégration transparente : Les fichiers AGENTS.md aident directement vos outils IA (Cursor, Claude Code). | Coût des tokens : L'analyse régulière de gros dépôts peut consommer un volume non négligeable d'appels API. |
| Approche delta intelligente : Ne modifie que ce qui a réellement changé, évitant le spam de PR. | Contexte local requis : Nécessite un accès complet à l'historique Git local pour fonctionner de manière optimale. |
OpenWiki s'impose ainsi comme un compagnon de choix pour les équipes cherchant à concilier vélocité de développement et rigueur documentaire.
Par Aghilas AZZOUG
