5 points par GN⁺ 2025-08-01 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • 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.

Aucun commentaire pour le moment.