Skip to content

Releases: ArthurDEV44/distill

v0.8.1

05 Jan 12:59

Choose a tag to compare

🚀 What's New in v0.8.1

CLI Setup Improvements

  • Interactive setup no longer pre-selects IDEs - Users now explicitly choose which IDEs to configure instead of having detected ones pre-selected
  • CLAUDE.md auto-update - When configuring Claude Code, the setup now automatically adds Distill MCP directives to your existing CLAUDE.md file
    • Requires CLAUDE.md to exist (run /init in Claude Code first)
    • Includes comprehensive SDK documentation in French

IDE Configuration Updates

  • Cursor: Now uses npx -y distill-mcp serve (recommended by Cursor docs)
  • Windsurf: Now uses npx -y distill-mcp serve (recommended by Windsurf docs)
  • Antigravity: Now uses npx -y distill-mcp serve for consistency
  • Claude Code: Keeps direct distill-mcp serve command

The npx -y format ensures the package is always available even without global installation.

Documentation

  • Updated installation guides for all IDEs (FR/EN)
  • Updated CLAUDE.md setup guide with new CLI workflow
  • Clarified that /init must be run before setup can update CLAUDE.md

📦 Installation

npm install -g distill-mcp
distill-mcp setup

🔗 Links

Distill v0.8.0

02 Jan 22:37

Choose a tag to compare

Distill v0.8.0 - Release Notes

Vue d'ensemble

Cette version majeure apporte des améliorations significatives sur trois axes principaux : l'analyse de code AST, la sécurité et robustesse du SDK sandbox, et l'intelligence du résumé de logs. Plus de 6 700 lignes de code ajoutées pour une expérience plus fiable et performante.


Parsing AST enrichi pour 6 langages

Nouvelles capacités d'extraction

Le parsing de code est maintenant considérablement plus détaillé. Pour tous les langages supportés (TypeScript, Python, Go, Rust, PHP, Swift), l'extraction inclut désormais :

  • Visibilité et modificateurs : public/private/protected, static, abstract, final
  • Génériques et paramètres de type : support complet des types génériques avec contraintes
  • Paramètres détaillés : types, valeurs par défaut, paramètres optionnels, rest parameters
  • Décorateurs et attributs : extraction des annotations et métadonnées du code
  • Enums : nouveau type d'élément extrait (auparavant manquant)

Améliorations par langage

Rust : Support des lifetimes, clauses where, fonctions async/unsafe/const, attributs #[derive(...)], et ABI extern.

Swift : Support de Swift 6+ avec actors distribués, async/await, Sendable, typed throws, @MainActor, et le nouveau niveau d'accès package.

Python : Extraction améliorée des décorateurs, annotations de type, et classes avec héritage multiple.

Go : Meilleure gestion des interfaces, méthodes de receiver, et types embarqués.

PHP : Support des traits, interfaces, et namespaces amélioré.


SDK Sandbox renforcé

Gestion d'erreurs type-safe avec neverthrow

Toutes les API du SDK retournent maintenant des types Result<T, Error> au lieu de lever des exceptions. Cela permet :

  • Prévisibilité : Impossible d'oublier de gérer une erreur - le compilateur vous rappelle à l'ordre
  • Composition : Chaînage d'opérations avec gestion d'erreurs intégrée
  • Rétrocompatibilité : Les anciennes API "legacy" qui lèvent des exceptions restent disponibles

Types marqués (Branded Types)

Introduction de types marqués pour la sécurité à la compilation :

  • ValidatedPath : Chemin de fichier validé contre les traversées de répertoire
  • SafePattern : Pattern glob vérifié comme sûr
  • SanitizedGitArg : Argument git nettoyé contre l'injection de commandes
  • SanitizedCode : Code utilisateur ayant passé l'analyse de sécurité

Ces types garantissent au niveau du compilateur TypeScript qu'une valeur a été validée avant utilisation.

Ressources avec nettoyage automatique (Disposables)

Utilisation du nouveau pattern using de TypeScript 5.2+ pour la gestion automatique des ressources :

  • Les timers d'exécution sont automatiquement nettoyés
  • Les sandboxes libèrent leurs ressources même en cas d'erreur
  • Code plus propre et moins de fuites de ressources

Mode QuickJS (expérimental)

Nouveau mode d'exécution optionnel utilisant WebAssembly pour une isolation complète :

  • Sandbox véritablement isolée du processus Node.js
  • Activable via DISTILL_USE_QUICKJS=true
  • Plus sécurisé pour les cas d'usage sensibles

Résumé de logs intelligent

Scoring multi-facteurs

Nouveau système de scoring inspiré de BM25/TF-IDF qui prend en compte :

  • Niveau de log : Erreurs pondérées plus fortement que les warnings et infos
  • Unicité du contenu : Logs uniques valorisés par rapport aux répétitions
  • Position : Début et fin de session considérés plus importants
  • Rareté : Patterns inhabituels mis en avant

Clustering sémantique

Regroupement automatique des logs similaires :

  • Détection de patterns récurrents (ex: "Connection failed to X")
  • Sélection du représentant le plus pertinent par cluster
  • Réduction significative de la redondance dans les résumés

Extraction de patterns

Identification automatique des templates de logs avec variables :

  • Conversion de messages en patterns génériques (ex: Error connecting to <IP>:<PORT>)
  • Statistiques sur la fréquence de chaque pattern
  • Aide à identifier les problèmes récurrents

Résumé hiérarchique

Nouveau mode de résumé pour les fichiers volumineux :

  • Découpage temporel ou par taille en sections
  • Résumé de chaque section puis agrégation
  • Vision multi-niveaux : vue d'ensemble, sections, entrées critiques

Conformité MCP 2025-06-18

Output Schemas

Tous les outils principaux incluent maintenant des schémas de sortie conformes à la spécification MCP 2025-06-18 :

  • Validation structurée : Les résultats sont validés contre un schéma défini
  • Documentation automatique : Chaque champ de sortie est documenté avec sa description et son type
  • Interopérabilité : Meilleure intégration avec les clients MCP conformes

Outils mis à jour : auto_optimize, smart_file_read, discover_tools, code_execute, session_stats, summarize_logs.

Annotations d'outils

Nouveau système d'annotations pour guider les LLMs dans l'utilisation des outils :

  • readOnlyHint : Indique que l'outil ne modifie pas l'état du système
  • destructiveHint : Avertit des opérations potentiellement destructives
  • idempotentHint : Signale que le même input produit toujours le même résultat
  • longRunningHint : Prévient que l'exécution peut être longue
  • title : Titre lisible pour l'affichage dans les interfaces

Descriptions sémantiques

Les schémas d'entrée incluent maintenant des descriptions détaillées pour chaque propriété :

  • Amélioration de la sélection automatique d'outils par les LLMs
  • Documentation inline des paramètres avec valeurs par défaut
  • Contraintes de validation (minLength, minimum, maximum)

Registre d'outils étendu

Le ToolRegistry supporte maintenant :

  • outputSchema optionnel pour chaque outil
  • annotations pour les métadonnées comportementales
  • Sérialisation complète dans la réponse ListTools

Pipeline Builder fluide

Nouvelle API chaînable pour les opérations multi-étapes :

  • Interface immutable et type-safe
  • Méthodes fluides : glob(), read(), parse(), filter(), map(), compress()
  • Présets pour cas courants : analyse de code mort, extraction de signatures

Nouvelles dépendances

  • neverthrow : Gestion d'erreurs fonctionnelle type-safe
  • @jitl/quickjs-ng-wasmfile-release-sync : Sandbox QuickJS WebAssembly
  • @sebastianwessel/quickjs : Bridge hôte pour QuickJS

Changements notables

  • L'option detailed du parsing est maintenant dépréciée - l'extraction détaillée est toujours activée pour une meilleure qualité d'AST
  • Les API retournant des Result sont la nouvelle norme ; les versions "legacy" qui lèvent des exceptions restent disponibles pour la rétrocompatibilité

Note : Cette release est un travail en cours. D'autres améliorations sont prévues avant la version finale 0.8.0.

v0.7.0-beta - Interactive Setup Wizard & Antigravity Support

29 Dec 10:16

Choose a tag to compare

What's New

Interactive Setup Wizard

distill-mcp setup now launches a beautiful interactive wizard powered by @clack/prompts:

  • Select multiple IDEs with arrow keys and spacebar
  • Auto-detects installed IDEs and pre-selects them
  • Optional Claude Code hooks installation
  • Spinner feedback during configuration

Antigravity (Google) Support

Added support for Google's Antigravity IDE alongside Claude Code, Cursor, and Windsurf.

distill-mcp setup --antigravity  # Non-interactive mode

Backward Compatibility

All existing flags continue to work for non-interactive/scripted setups:

  • --claude, --cursor, --windsurf, --antigravity
  • --hooks, --force

Installation

npm install -g distill-mcp
distill-mcp setup

Full Changelog

v0.6.0-beta...v0.7.0-beta

v0.6.0-beta - All Phases Complete

28 Dec 21:30

Choose a tag to compare

Pre-release

Distill v0.6.0-beta

Extract the essence. Compress the context. Save tokens.

Distill is an open-source MCP server for LLM token optimization. Works with Claude Code, Cursor, and Windsurf.

Installation

# Run directly
npx distill-mcp

# Or install globally
npm install -g distill-mcp

# Add to Claude Code
claude mcp add distill -- npx distill-mcp

What's New

This beta release marks the completion of all 6 development phases.

Phase 1: Core Stability

  • auto_optimize - Auto-detect and compress (40-95% savings)
  • smart_file_read - AST-based file reading (50-70% savings)
  • code_execute - TypeScript SDK execution (98% savings)
  • Support for 7 languages: TypeScript, JavaScript, Python, Go, Rust, PHP, Swift

Phase 2: Smart Search

  • BM25 keyword search for tool discovery
  • Semantic search with local embeddings (all-MiniLM-L6-v2)
  • Hybrid search combining both approaches

Phase 3: SDK Enhancement

  • ctx.git.* - Git operations (diff, log, blame, status)
  • ctx.search.* - Code search (grep, symbols, files)
  • ctx.analyze.* - Static analysis (dependencies, callGraph)
  • ctx.pipeline - Composable data pipelines

Phase 4: Intelligence Layer

  • context_budget - Pre-flight token estimation
  • detect_retry_loop - Failure pattern detection
  • session_stats - Usage analytics and cost tracking

Phase 5: Ecosystem Integration

  • One-click setup for Claude Code, Cursor, Windsurf
  • GitHub Action for CI/CD token analysis
  • Pre-commit hooks for large file warnings
  • CLI analyze command

Phase 6: Advanced Compression

  • multifile_compress - Cross-file deduplication
  • conversation_memory - Long conversation summarization
  • TOON format output optimization
  • Configurable verbosity levels

Test Results

  • 437 tests passing
  • TypeScript type checking clean
  • Build successful

Known Limitations

  • Test coverage at ~21% (expanding in next releases)
  • Some ESLint warnings in web app (Three.js properties)

Links