- Un agent de codage IA qui fonctionne dans le terminal, capable de s'intégrer à divers LLM (modèles de langage de grande taille) pour faciliter la rédaction de code, l'automatisation des workflows et la conservation du contexte, afin d'améliorer la productivité du code.
- Il est possible de choisir plusieurs modèles ou de changer de modèle librement en cours de session, et de conserver les sessions/contexts par projet.
- Il propose des fonctionnalités orientées développeur : intégration LSP (Language Server Protocol), support MCP (Model Context Protocol) extensible, exclusion via
.gitignore ou d'autres fichiers dédiés, etc.
- Il s'exécute sur macOS, Linux, Windows, FreeBSD et autres environnements de terminal principaux, et peut être installé via un gestionnaire de paquets, Go ou des binaires, entre autres.
- Il prend à la fois en charge une configuration intuitive et une personnalisation avancée, avec variables d'environnement, configuration JSON, liste blanche d'outils, et est pensé jusqu'aux utilisateurs avancés.
Crush
- Un agent de codage IA qui s'exécute dans l'environnement terminal, prenant en charge la rédaction, l'édition et l'automatisation du code en s'intégrant librement au LLM préféré du développeur
- Il permet de choisir et de basculer librement entre plusieurs modèles (Anthropic, OpenAI, Groq, OpenRouter, etc.) et de gérer indépendamment le contexte session par session
- Grâce à LSP (Language Server Protocol), il récupère du contexte additionnel adapté à chaque langage pour assister plus intelligemment l'écriture de code
- Via MCP (Model Context Protocol), il peut collecter et exploiter des informations complémentaires provenant de systèmes externes, HTTP, CLI, SSE, etc.
Principales fonctionnalités
- Prise en charge multimodèle : intégration de différents LLM comme OpenAI, Anthropic, Groq, OpenRouter, avec possibilité d'en ajouter d'autres
- Travail basé sur les sessions : séparation et gestion des contextes pour plusieurs sessions de travail par projet
- Changement de modèle flexible : modification libre du modèle même en cours de session, tout en conservant le contexte existant
- Intégration LSP : connexion aux LSP de Go, TypeScript, Nix, etc., pour renforcer le contexte de code
- Extensibilité : extension aisée de fonctionnalités supplémentaires sur la base du protocole MCP à partir de sources externes HTTP/CLI/SSE
- Large prise en charge des plateformes : fonctionnement dans les terminaux des principaux OS : macOS, Linux, Windows (WSL, PowerShell), FreeBSD, OpenBSD, NetBSD
- Configuration intuitive : utilisable immédiatement sans configuration initiale, avec prise en charge d'une configuration JSON globale ou par projet si nécessaire
- Fonction d'exclusion puissante : gestion des fichiers/répertoires à exclure via les fichiers
.gitignore et .crushignore
- Liste blanche d'outils : approbation préalable de l'exécution d'outils et options d'exécution automatique, avec l'option
--yolo pour sauter l'invite complète (avec prudence)
- Fournisseurs personnalisés : possibilité d'ajouter librement des API compatibles OpenAI et Anthropic et de définir des options détaillées
Installation et démarrage
- Installation possible via de nombreux gestionnaires de paquets et méthodes de déploiement : Homebrew, NPM, Arch, Nix, Debian/Ubuntu, Fedora/RHEL, ainsi que via des binaires ou Go
- Lors de la première exécution, il faut renseigner la clé API LLM préférée (OpenAI, Anthropic, Groq, etc.), mais celle-ci peut aussi être définie via des variables d'environnement
- Les LLM pouvant être connectés via variables d'environnement incluent notamment :
OPENAI_API_KEY, ANTHROPIC_API_KEY, GROQ_API_KEY, OPENROUTER_API_KEY, GEMINI_API_KEY, VERTEXAI_PROJECT, etc.
Exemples de configuration
- Application d'options avancées via un fichier JSON global ou au niveau du projet (
./.crush.json, ./crush.json, $HOME/.config/crush/crush.json)
- Configuration LSP : possibilité de spécifier une commande par langage
{
"lsp": {
"go": { "command": "gopls" },
"typescript": { "command": "typescript-language-server", "args": ["--stdio"] }
}
}
- Configuration MCP : exemple d'extension externe basée sur HTTP/CLI/SSE
{
"mcp": {
"filesystem": {
"type": "stdio",
"command": "node",
"args": ["/path/to/mcp-server.js"]
}
}
}
- Exclusion de fichiers et approbation d'outils
- Exclusion de fichiers/répertoires spécifiques via
.crushignore
- Validation via liste blanche d'outils ou saut de l'invite globale avec
--yolo
Fonctionnalités avancées
- Enregistrement de fournisseurs personnalisés : ajout d'API compatibles OpenAI/Anthropic, définition d'options détaillées telles que le prix et le contexte
- Journalisation : fichiers de logs par projet, consultation en temps réel via les commandes CLI
crush logs, crush logs --follow
- Options de débogage : activation de logs détaillés via le drapeau
--debug ou par la configuration
Aucun commentaire pour le moment.