π MCP Server Available: Install the Model Context Protocol server for AI Distiller from NPM: @janreges/ai-distiller-mcp - seamlessly integrate with Claude, Cursor, and other MCP-compatible AI tools! /.aid/ regardless of where you run aid - Cache management: MCP cache stored in .aid/cache/ for better organization - Easy cleanup: Add .aid/ to .gitignore to keep outputs out of version control Detect
Add this skill
npx mdskills install janreges/ai-distillerComprehensive tool for extracting public APIs from codebases to improve AI context understanding
1# AI Distiller (`aid`)23> **Note:** This is the very first version of this tool. We would be very grateful for any feedback in the form of a discussion or by creating an issue on [GitHub](https://github.com/janreges/ai-distiller/issues). Thank you\!45π **MCP Server Available**: Install the Model Context Protocol server for AI Distiller from NPM: [`@janreges/ai-distiller-mcp`](https://www.npmjs.com/package/@janreges/ai-distiller-mcp) - seamlessly integrate with Claude, Cursor, and other MCP-compatible AI tools!67<p align="center">8 <img src="docs/assets/aid-mascot-300.png" alt="AI Distiller (aid) Mascot" width="200">9</p>1011<p align="center">12 <img src="https://img.shields.io/badge/Languages-12+-blue" alt="12+ Languages">13 <img src="https://img.shields.io/badge/Performance-5k+_files/sec-green" alt="Performance">14 <img src="https://img.shields.io/badge/Compression-90%25+-orange" alt="Compression">15 <img src="https://img.shields.io/badge/Tests-1211_passed-purple" alt="Tests">16</p171819## **π€ Why AI Distiller?**2021Do you work with large-scale projects that have thousands of files and functions? Do you struggle with AI tools like Claude Code, Gemini, Copilot, or Cursor frequently "hallucinating" and generating code that looks correct at first glance but is actually incompatible with your project?2223**The problem is context.** AI models have a limited context window and cannot comprehend your entire codebase. Instead, AI agents search files, "grep" for keywords, look at a few lines before and after the found term, and try (often, but not always) to guess the interface of your classes and functions. The result? Code full of errors that guesses parameters, returns incorrect data types, and ignores the existing architecture. If you are a sophisticated user of AI agents (vibe coder), you know that you can help yourself by instructing the AI ββagent to consistently write and run tests, using static code analysis, pre-commit hooks, etc. - the AI ββagent will usually fix the code itself, but in the meantime it will take 20 steps and 5 minutes. On the other hand, it must be admitted that if you pay for each AI request (and large context is an expensive factor) and are not "playing for time", you may not mind this limited context approach.2425**AI Distiller (or `aid` for short) helps solve this problem.** Its main function is code "distillation" β a process where it extracts only the most essential information from the entire project (ideally from the main source folder, or a specific module subdirectory for extremely large projects) that the AI needs to write code correctly on the first try. This distillation usually generates a context that is only 5-20% of the original source code volume, allowing AI tools to include it in their context. As a result, the AI uses the existing code exactly as it was designed, not by trial and error.2627Very simply, it can be said that `aid`, within the distillation process, will leave only the public parts of the interface, input and output data types, but in the default state it will discard method implementations and non-public structures. But everything is configurable via [CLI Options](#-complete-cli-reference).2829## Table of Contents3031- [π€ Why AI Distiller?](#-why-ai-distiller)32- [β¨ Key Features](#-key-features)33- [π― How It Works](#-how-it-works)34- [π Dependency-Aware Distillation](#-dependency-aware-distillation)35- [π Quick Start](#-quick-start)36 - [One-Line Installation](#one-line-installation)37 - [Basic Usage](#basic-usage)38- [π Example Output](#-example-output)39- [π Guides & Examples](#-guides--examples)40 - [Deep Code Analysis Prompt Generation](#deep-code-analysis-prompt-generation)41 - [π€ Use with Claude Desktop (MCP)](#-use-with-claude-desktop-mcp)42- [π Complete CLI Reference](#-complete-cli-reference)43- [π οΈ Advanced Usage](#-advanced-usage)44 - [π« Ignoring Files with .aidignore](#-ignoring-files-with-aidignore)45 - [π― Git History Analysis Mode](#-git-history-analysis-mode)46- [β οΈ Limitations](#-limitations)47- [π Security Considerations](#-security-considerations)48- [β FAQ](#-faq)49- [π€ Contributing](#-contributing)50- [π License](#-license)51- [π Acknowledgments](#-acknowledgments)5253## **β¨ Key Features**5455| Feature | Description |56| ------- | ----------- |57| π Extreme Speed | Processes tens of megabytes of code in hundreds of milliseconds. By default, it uses 80% of available CPU cores, but can be configured, e.g., with `--workers=1` to use only a single CPU core. |58| π§ Intelligent Distillation | Understands 12+ programming languages and extracts only public APIs (methods, properties, types). |59| βοΈ High Configurability | Allows including private, protected, and internal members, implementation, or comments. |60| π€ AI Prompt Generation | Generates ready-to-use prompts with distilled code for AI analysis. The tool creates files with prompts that AI agents can then execute for security audits, refactoring, etc. See `--ai-action` switch. |61| π Analysis Automation | Creates a complete checklist and directory structure for AI agents, who can then systematically analyze the entire project. See the flow-for-\* actions for the `--ai-action` switch. |62| π Git Analysis | Processes commit history and prepares data for in-depth analysis of development quality and team dynamics. |63| π» Multi-platform | A single binary file with no dependencies for Windows, Linux, and macOS (x64 & ARM). |64| π Integration via MCP | Can be integrated into tools like Claude Code, VS Code, Cursor, Windsurf and others thanks to the included MCP server. |6566### π― Intelligent Filtering6768Control exactly what to include with our new granular flag system:6970**Visibility Control**:71- `--public=1` (default) - Include public members72- `--protected=0` (default) - Exclude protected members73- `--internal=0` (default) - Exclude internal/package-private74- `--private=0` (default) - Exclude private members7576**Content Control**:77- `--comments=0` (default) - Exclude comments78- `--docstrings=1` (default) - Include documentation79- `--implementation=0` (default) - Exclude function/methods bodies80- `--imports=1` (default) - Include import/use statements8182**Default behavior**: Shows only public API signatures with basic documentation - perfect for AI understanding while maintaining maximum compression.8384### π€ AI-Powered Analysis Prompt Generation8586AI Distiller generates specialized prompts combined with distilled code for AI-driven analysis:8788- **`--ai-action=flow-for-deep-file-to-file-analysis`** - Generates task lists and prompts for systematic file-by-file analysis89- **`--ai-action=flow-for-multi-file-docs`** - Creates documentation workflow prompts with code structure90- **Output to files** - Prompts are saved to `.aid/` directory (or use `--stdout` for small codebases)91- **Ready for AI execution** - Generated files contain both the analysis prompt and distilled code92- **AI agent instructions** - Output includes guidance for AI agents to read and process the generated files93- **Gemini advantage** - 1M token context window perfect for larger codebase analysis9495**Note**: AI Distiller doesn't perform the analysis itself - it prepares optimized prompts that AI agents (Claude, Gemini, ChatGPT) then execute. Users often need to explicitly ask their AI agent to process the generated file or copy its contents to web-based AI tools.9697### π Multiple Output Formats98- **Text** (`--format text`) - Ultra-compact for AI consumption (default)99- **Markdown** (`--format md`) - Clean, structured Markdown100- **JSON Structured** (`--format json-structured`) - Rich semantic data for tools101- **JSONL** (`--format jsonl`) - Streaming format102- **XML** (`--format xml`) - Legacy system compatible103104### π Smart Summary Output105106After each distillation, AI Distiller displays a summary showing compression efficiency and processing speed:107108```bash109# Default: Visual progress bar for interactive terminals (green dots = saved, red dots = remaining)110β¨ Distilled 970 files [βββββββββββββββ] 98% (10M β 256K) in 231ms π° ~2.4M tokens saved (~64k remaining)111112# Choose your preferred format with --summary-type113aid ./src --summary-type=stock-ticker114π AID 97.6% β² β SIZE: 10Mβ256K β TIME: 231ms β EST: ~2.4M tokens saved115116# JSON output117aid ./src --summary-type=json118119{120 "original_bytes": 70020,121 "distilled_bytes": 8244,122 "savings_pct": 88.22622107969151,123 "duration_ms": 6,124 "tokens_before": 17505,125 "tokens_after": 2061,126 "tokens_saved": 15444,127 "token_savings_pct": 88.22622107969151,128 "file_count": 9,129 "output_path": "/home/user/project/.aid/aid.processor.txt",130 "tokenizer": "cl100k_base"131}132```133134**Available formats:**135- `visual-progress-bar` (default) - Shows compression as a progress bar136- `stock-ticker` - Compact stock market style display137- `speedometer-dashboard` - Multi-line dashboard with metrics138- `minimalist-sparkline` - Single line with all essential info139- `ci-friendly` - Clean format for CI/CD pipelines140- `json` - Machine-readable JSON output141- `off` - Disable summary output142143Use `--no-emoji` to remove emojis from any format.144145### π Smart Project Root Detection146147AI Distiller automatically detects your project root and centralizes all outputs in a `.aid/` directory:148149- **Automatic detection**: Searches upward for `.aidrc`, `go.mod`, `package.json`, `.git`, etc.150- **Consistent location**: All outputs go to `<project-root>/.aid/` regardless of where you run `aid`151- **Cache management**: MCP cache stored in `.aid/cache/` for better organization152- **Easy cleanup**: Add `.aid/` to `.gitignore` to keep outputs out of version control153154**Detection priority:**1551. **`.aidrc` file** - Create this empty file to explicitly mark your project root1562. **Language markers** - `go.mod`, `package.json`, `pyproject.toml`, etc.1573. **Version control** - `.git` directory1584. **Environment variable** - `AID_PROJECT_ROOT` (fallback if no markers found)1595. **Current directory** - Final fallback with warning160161```bash162# Mark a specific directory as project root (recommended)163touch /my/project/.aidrc164165# Run from anywhere in your project - outputs always go to project root166cd deep/nested/directory167aid ../../../src # Output: <project-root>/.aid/aid.src.txt168169# Use environment variable as fallback (useful for CI/CD)170AID_PROJECT_ROOT=/build/workspace aid src/171```172173### π Language Support174Currently supports 12 languages via tree-sitter:175- **Full Support**: Python, Go, JavaScript, PHP, Ruby176- **Beta**: TypeScript, Java, C#, Rust, Kotlin, Swift, C++177- **Coming Soon**: Zig, Scala, Clojure178179#### Language-Specific Documentation:180- [C++](docs/lang/cpp.md) - C++11/14/17/20 support with templates, namespaces, modern features181- [C#](docs/lang/csharp.md) - Complete C# 12 support with records, nullable reference types, pattern matching182- [Go](docs/lang/go.md) - Full Go support with interfaces, goroutines, generics (1.18+)183- [Java](docs/lang/java.md) - Java 8-21 support with records, sealed classes, pattern matching184- [JavaScript](docs/lang/javascript.md) - ES6+ support with classes, modules, async/await185- [Kotlin](docs/lang/kotlin.md) - Kotlin 1.x support with coroutines, data classes, sealed classes186- [PHP](docs/lang/php.md) - PHP 7.4+ with PHP 8.x features (attributes, union types, enums)187- [Python](docs/lang/python.md) - Full Python 3.x support with type hints, async/await, decorators188- [Ruby](docs/lang/ruby.md) - Ruby 2.x/3.x support with blocks, modules, metaprogramming189- [Rust](docs/lang/rust.md) - Rust 2018/2021 editions with traits, lifetimes, async190- [Swift](docs/lang/swift.md) - Swift 5.x support with protocols, extensions, property wrappers191- [TypeScript](docs/lang/typescript.md) - TypeScript 4.x/5.x with generics, decorators, type system192193## π― How It Works1941951. **Scans** your codebase recursively for supported file types (10+ languages)1962. **Parses** each file using language-specific tree-sitter parsers (all bundled, no dependencies)1973. **Extracts** only what you need: public APIs, type signatures, class hierarchies1984. **Outputs** in your preferred format: compact text, markdown, or structured JSON199200All tree-sitter grammars are compiled into the `aid` binary - zero external dependencies!201202## π Dependency-Aware Distillation203204**Advanced Feature**: AI Distiller includes dependency-aware distillation that analyzes call graphs across files and includes only the code that is actually used from your codebase. This creates focused distillations for deep code analysis by following function/method calls across multiple files.205206> π‘ **New to dependency analysis?** This feature traces which functions actually call each other in your code, creating a minimal context that includes only the relevant parts. Perfect for AI tools that need to understand code relationships without processing entire files.207208### π― How Dependency-Aware Analysis Works209210Instead of including entire files, dependency-aware distillation:2111. **Identifies entry points** (main functions, exported APIs)2122. **Traces function calls** across file boundaries2133. **Builds call graphs** to understand dependencies2144. **Includes only used code** - functions that are actually called2155. **Filters out unused code** - dead code elimination for AI context216217```bash218# Basic dependency analysis219aid main.py --dependency-aware220221# Control analysis depth222aid main.py --dependency-aware --max-depth=2223224# Include implementations for deeper analysis225aid main.py --dependency-aware --implementation=1 --max-depth=3226```227228### π Language Support Quality229230We've worked extensively to make dependency-aware distillation as reliable as possible across different programming languages. However, the complexity varies significantly between languages, and we want to be transparent about the current state:231232| Language | Support Level | Cross-File Analysis | Intra-File Calls | Performance | Notes |233|----------|---------------|--------------------|--------------------|-------------|-------|234| **Python** | π’ **Very Good** | β Full | β Complete | ~37ms | Package imports, all call patterns |235| **JavaScript** | π’ **Very Good** | β Full | β Complete | ~38ms | CommonJS & ES6 modules |236| **Go** | π’ **Very Good** | β Full | β Complete | ~37ms | Package system integration |237| **Rust** | π’ **Very Good** | β Full | β Complete | ~36ms | Crate system, proper filtering |238| **Java** | π’ **Very Good** | β Full | β Complete | ~41ms | Package imports, static methods |239| **Swift** | π’ **Very Good** | β Full | β Complete | ~37ms | Class and static method detection |240| **PHP** | π’ **Very Good** | β Full | β Complete | ~37ms | Include/require resolution |241| **Ruby** | π’ **Very Good** | β Full | β Complete | ~40ms | Module system, all call patterns |242| **TypeScript** | π‘ **Limited** | β Issues | β Issues | N/A | Language processor limitations |243| **C#** | π‘ **Limited** | β Issues | β Issues | N/A | Language processor limitations |244| **C++** | π‘ **Limited** | β Issues | β Issues | N/A | Language processor limitations |245| **Kotlin** | π **Good** | β Partial | β οΈ Basic | ~45ms | Companion objects, some edge cases |246247**Legend:**248- π’ **Very Good**: Production-ready, handles complex scenarios reliably249- π **Good**: Solid functionality with minor limitations250- π‘ **Limited**: Basic functionality, parsing capabilities may be limited251- β **Full**: Complete cross-file dependency tracing252- β οΈ **Basic**: Simple scenarios work well, complex patterns may be limited253- β **Issues**: Functionality is significantly limited254255### π Performance Characteristics256257**Very Good Performance** (8 languages):258- **Processing Time**: 36-41ms consistently259- **Compression**: 65-72% size reduction260- **Scalability**: Handles projects up to 10 files efficiently261- **Memory Usage**: Minimal, no hanging or timeout issues262263**Areas for Enhancement**:264- **Large Projects**: Performance may be limited with 50+ files265- **Language Processors**: C#, C++, TypeScript have fundamental limitations266- **Complex Call Patterns**: Advanced metaprogramming patterns may be limited267268### π‘ When to Use Dependency-Aware Analysis269270**Perfect for:**271- π― **Impact Analysis** - Understand what code is affected by changes272- π **Code Navigation** - Follow execution flows across multiple files273- πͺ **Focused Context** - Get only relevant code for AI assistants274- π **Legacy Understanding** - Trace through complex codebases systematically275- π§ **API Analysis** - See which methods are actually called vs. just defined276277**Best Practices:**278```bash279# Start with small depth for quick overview280aid main.py --dependency-aware --max-depth=1281282# Increase depth for comprehensive analysis283aid main.py --dependency-aware --max-depth=2 --implementation=1284285# Use with specific languages known to work well286aid src/ --dependency-aware --include="*.py,*.js,*.go"287```288289### π Transform Massive Codebases Into AI-Friendly Context290291> **The Problem**: Modern codebases contain thousands of files with millions of lines. But for AI to understand your code architecture, suggest improvements, or help with development, it doesn't need to see every implementation detail - it needs the **structure and public interfaces**.292293> **The Solution**: AI Distiller extracts only what matters - public APIs, types, and signatures - reducing codebase size by 90-98% while preserving all essential information for AI comprehension.294295<table>296<tr>297<th align="left">Project</th>298<th align="center">Files</th>299<th align="right">Original Tokens</th>300<th align="right">Distilled Tokens</th>301<th align="center">Fits in Context<sup>1</sup></th>302<th align="center">Speed<sup>2</sup></th>303</tr>304<tr>305<td>βοΈ <code>react</code></td>306<td align="center">1,781</td>307<td align="right">~5.5M</td>308<td align="right"><strong>250K</strong> (-95%)</td>309<td align="center">β Gemini<sup>3</sup></td>310<td align="center">2,875 files/s</td>311</tr>312<tr>313<td>π¨ <code>vscode</code></td>314<td align="center">4,768</td>315<td align="right">~22.5M</td>316<td align="right"><strong>2M</strong> (-91%)</td>317<td align="center">β οΈ Needs chunking</td>318<td align="center">5,072 files/s</td>319</tr>320<tr>321<td>π <code>django</code></td>322<td align="center">970</td>323<td align="right">~10M</td>324<td align="right"><strong>256K</strong> (-97%)</td>325<td align="center">β Gemini<sup>3</sup></td>326<td align="center">4,199 files/s</td>327</tr>328<tr>329<td>π¦ <code>prometheus</code></td>330<td align="center">685</td>331<td align="right">~8.5M</td>332<td align="right"><strong>154K</strong> (-98%)</td>333<td align="center">β Claude/Gemini</td>334<td align="center">3,071 files/s</td>335</tr>336<tr>337<td>π¦ <code>rust-analyzer</code></td>338<td align="center">1,275</td>339<td align="right">~5.5M</td>340<td align="right"><strong>172K</strong> (-97%)</td>341<td align="center">β Claude/Gemini</td>342<td align="center">10,451 files/s</td>343</tr>344<tr>345<td>π <code>astro</code></td>346<td align="center">1,058</td>347<td align="right">~10.5M</td>348<td align="right"><strong>149K</strong> (-99%)</td>349<td align="center">β Claude/Gemini</td>350<td align="center">5,212 files/s</td>351</tr>352<tr>353<td>π <code>rails</code></td>354<td align="center">394</td>355<td align="right">~1M</td>356<td align="right"><strong>104K</strong> (-90%)</td>357<td align="center">β ChatGPT-4o</td>358<td align="center">4,864 files/s</td>359</tr>360<tr>361<td>π <code>laravel</code></td>362<td align="center">1,443</td>363<td align="right">~3M</td>364<td align="right"><strong>238K</strong> (-92%)</td>365<td align="center">β Gemini<sup>3</sup></td>366<td align="center">4,613 files/s</td>367</tr>368<tr>369<td>β‘ <code>nestjs</code></td>370<td align="center">802</td>371<td align="right">~1.5M</td>372<td align="right"><strong>107K</strong> (-93%)</td>373<td align="center">β ChatGPT-4o</td>374<td align="center">8,813 files/s</td>375</tr>376<tr>377<td>π» <code>ghost</code></td>378<td align="center">2,184</td>379<td align="right">~8M</td>380<td align="right"><strong>235K</strong> (-97%)</td>381<td align="center">β Gemini<sup>3</sup></td>382<td align="center">4,719 files/s</td>383</tr>384</table>385386<sub><sup>1</sup> Context windows: ChatGPT-4o (128K), Claude (200K), Gemini (1M). β = fits completely, β οΈ = needs splitting</sub><br>387<sub><sup>2</sup> Processing speed with 12 parallel workers on AMD Ryzen 7945HX. Use `-w 1` for serial mode or `-w N` for custom workers.</sub><br>388<sub><sup>3</sup> These frameworks exceed 200K tokens and work only with Gemini due to its larger 1M token context window.</sub>389390### π― Why This Matters for AI-Assisted Development391392**Large codebases are overwhelming for AI models.** A typical web framework like Django has ~10 million tokens of source code. Even with Claude's 200K context window, you'd need to split it into 50+ chunks, losing coherence and relationships between components.393394**But here's the good news**: Most real-world projects that teams have invested hundreds to thousands of hours developing are much smaller. Thanks to AI Distiller, the vast majority of typical business applications, SaaS products, and internal tools can fit entirely within AI context windows, enabling unprecedented AI assistance quality.395396### β οΈ The Hidden Problem with AI Coding Tools397398**Most AI agents and IDEs are "context misers"** - they try to save tokens at the expense of actual codebase knowledge. They rely on:399- π **Grep/search** to find relevant code snippets400- π **Limited context** showing only 10-50 lines around matches401- π² **Guessing interfaces** based on partial information402403**This is why AI-generated code often fails on first attempts** - the AI is literally guessing method signatures, parameter types, and return values because it can't see the full picture.404405**AI Distiller changes the game** by giving AI complete knowledge of:406- β **Exact interfaces** of all classes, methods, and functions407- β **All parameter types** and their expected values408- β **Return types** and data structures409- β **Full inheritance hierarchies** and relationships410411Instead of playing "code roulette", AI can now write correct code from the start.412413**Result**: Django's 10M tokens compress to just 256K tokens - suddenly the **entire framework fits in a single AI conversation**, leading to:414- π― **More accurate suggestions** - AI sees all available APIs at once415- π **Less hallucination** - No more inventing methods that don't exist416- π‘ **Better architecture advice** - AI understands the full system design417- β‘ **Faster development** - Especially for "vibe coding" with AI assistance418- π° **40x cost reduction** - Pay for 256K tokens instead of 10M on API calls419420### π§ Flexible for Different Use Cases421422```bash423# Process entire codebase (default: public APIs only)424aid ./my-project425426# Process specific directory or module427aid ./my-project/src/auth428aid ./my-project/src/api429430# Process a directory431aid ./my-project/core/432433# Process individual file434aid src/main.py435436# Include protected/private for deeper analysis437aid ./my-project --private=1 --protected=1438439# Include implementations for small projects440aid ./my-small-lib --implementation=1441442# Everything for complete understanding443aid ./micro-service --private=1 --protected=1 --implementation=1444```445446**Granular Control**: Process your entire codebase, specific modules, directories, or even individual files. Perfect for focusing AI on the exact context it needs - whether that's understanding the whole system architecture or diving deep into a specific authentication module.447448π **[Full benchmark details](benchmark/BENCHMARK_RESULTS.md)** | π§ͺ **[Reproduce these results](benchmark/test_benchmark.sh)**449450## π Quick Start451452### One-Line Installation453454**macOS / Linux / WSL:**455```bash456# Install to ~/.aid/bin (recommended, no sudo required)457curl -sSL https://raw.githubusercontent.com/janreges/ai-distiller/main/install.sh | bash458459# Install to /usr/local/bin (requires sudo)460curl -sSL https://raw.githubusercontent.com/janreges/ai-distiller/main/install.sh | bash -s -- --sudo461```462463**Windows PowerShell:**464```powershell465iwr https://raw.githubusercontent.com/janreges/ai-distiller/main/install.ps1 -useb | iex466```467468The installer will:469- Detect your OS and architecture automatically470- Download the appropriate pre-built binary471- Install to `~/.aid/bin/aid` by default (no sudo required)472- Or to `/usr/local/bin/aid` with `--sudo` flag473- Guide you through PATH configuration if needed474475### Basic Usage476477```bash478# Basic usage479aid . # Current directory, output is saved to file in ./aid480aid . --stdout # Current directory, output is printed to STDOUT481aid src/ # Specific directory482aid main.py # Specific file483484```485486## π Example Output487488<details>489<summary>Python Class Example</summary>490491**Input** (`car.py`):492```python493class Car:494 """A car with basic attributes and methods."""495496 def __init__(self, make: str, model: str):497 self.make = make498 self.model = model499 self._mileage = 0 # Private500501 def drive(self, distance: int) -> None:502 """Drive the car."""503 if distance > 0:504 self._mileage += distance505```506507**Output** (`aid car.py --format text --implementation=0`):508```509<file path="car.py">510class Car:511 +def __init__(self, make: str, model: str)512 +def drive(self, distance: int) -> None513</file>514```515516</details>517518<details>519<summary>TypeScript Interface Example</summary>520521**Input** (`api.ts`):522```typescript523export interface User {524 id: number;525 name: string;526 email?: string;527}528529export class UserService {530 private cache = new Map<number, User>();531532 async getUser(id: number): Promise<User | null> {533 return this.cache.get(id) || null;534 }535}536```537538**Output** (`aid api.ts --format text --implementation=0`):539```540<file path="api.ts">541export interface User {542 id: number;543 name: string;544 email?: string;545}546547export class UserService {548 +async getUser(id: number): Promise<User | null>549}550</file>551```552553</details>554555## π Guides & Examples556557### Deep Code Analysis Prompt Generation558559AI Distiller generates sophisticated analysis prompts that AI assistants can execute for comprehensive codebase understanding:560561```bash562aid internal \563 --private=1 --protected=1 --implementation=1 \564 --ai-action=flow-for-deep-file-to-file-analysis565566β AI Analysis Task List generated successfully!567π Task List: .aid/ANALYSIS-TASK-LIST.internal.2025-06-20.md568π Summary File: .aid/ANALYSIS-SUMMARY.internal.2025-06-20.md569π Analysis Reports Directory: .aid/analysis.internal/2025-06-20570π€ Ready for AI-driven analysis workflow!571π Files to analyze: 158572573π‘ If you are an AI agent, please read the Task List above and carefully follow all instructions to systematically analyze each file.574```575576**What AI Distiller generates**:577- π **Task list prompt** - A structured checklist for AI to follow (`.aid/ANALYSIS-TASK-LIST.PROJECT.DATE.md`)578- π― **Analysis instructions** - Detailed prompts guiding AI through security, performance, and quality checks579- π **Code structure** - Distilled code included in the prompt files for AI to analyze580- π **Directory structure** - Pre-created folders where AI agents can save their analysis results581582**How to use the generated prompts**:5831. **For AI agents**: Direct the agent to read the generated task list file and follow instructions5842. **For web AI tools**: Copy the content of generated files and paste into Gemini (best for large codebases due to 1M context)5853. **For small codebases**: Use `--stdout` to get prompt directly without saving to file586587**Note**: The analysis dimensions (Security, Performance, Maintainability, Readability) are part of the prompts that guide the AI - AI Distiller itself doesn't perform any analysis.588589### π€ Use with Claude Code/Desktop (MCP)590591AI Distiller now integrates seamlessly with Claude Code/Desktop through the Model Context Protocol (MCP), enabling AI agents to analyze and understand codebases directly within conversations.592593```bash594# One-line installation595claude mcp add aid -- npx -y @janreges/ai-distiller-mcp596```597598π¦ **NPM Package**: [`@janreges/ai-distiller-mcp`](https://www.npmjs.com/package/@janreges/ai-distiller-mcp) - Full documentation and examples available599600#### Available MCP Tools601602**π Code Structure Tools:**603- `distill_file` - Extract structure from a single file604- `distill_directory` - Extract structure from entire directories605- `list_files` - Browse directories with file statistics606- `get_capabilities` - Get info about AI Distiller capabilities607608**π― Specialized AI Analysis Tools:**609- `aid_hunt_bugs` - Generate bug-hunting prompts with distilled code610- `aid_suggest_refactoring` - Create refactoring analysis prompts611- `aid_generate_diagram` - Produce diagram generation prompts (Mermaid)612- `aid_analyze_security` - Generate security audit prompts (OWASP Top 10)613- `aid_generate_docs` - Create documentation generation prompts614- `aid_deep_file_analysis` - Systematic file-by-file analysis workflow615- `aid_multi_file_docs` - Multi-file documentation workflow616- `aid_complex_analysis` - Enterprise-grade analysis prompts617- `aid_performance_analysis` - Performance optimization prompts618- `aid_best_practices` - Code quality and best practices prompts619620**π§ Core Analysis Engine:**621- `aid_analyze` - Direct access to all AI actions for custom workflows622623**Important**: AI Distiller **generates analysis prompts** with distilled code - it does NOT perform the actual analysis! The output is a specialized prompt + distilled code that AI agents (like Claude) then execute. For large codebases, you can copy the output to tools like Gemini 2.0 with 1M context window.624625**Smart Context Management**: AI agents can analyze your entire project for understanding the big picture, then zoom into specific modules (auth, API, database) for detailed work. No more overwhelming AI with irrelevant code!626627## π Complete CLI Reference628629### Command Synopsis630```bash631aid <path> [OPTIONS]632```633634### Core Arguments and Options635636#### π― Primary Arguments637638| Argument | Type | Default | Description |639|----------|------|---------|-------------|640| `<path>` | String | *(required)* | Path to source file or directory to analyze. Use `.git` for git history mode, `-` (or empty) for stdin input |641642#### π Output Options643644| Option | Type | Default | Description |645|--------|------|---------|-------------|646| `-o, --output` | String | `.aid/<dirname>.[options].txt` | Output file path. Auto-generated based on input directory basename and options if not specified |647| `--stdout` | Flag | `false` | Print output to stdout in addition to file. When used alone, no file is created |648| `--format` | String | `text` | Output format: `text` (ultra-compact), `md` (clean Markdown), `jsonl` (one JSON per file), `json-structured` (rich semantic data), `xml` (structured XML) |649650#### π€ AI Actions651652| Option | Type | Default | Description |653|--------|------|---------|-------------|654| `--ai-action` | String | *(none)* | Generate pre-configured prompts with distilled code for AI analysis. See [AI Actions](#ai-actions-detailed) section below |655| `--ai-output` | String | `./.aid/<action>.<timestamp>.<dirname>.md` | Custom output path for generated AI prompt files |656657#### ποΈ Visibility Filtering658659| Option | Type | Default | Description |660|--------|------|---------|-------------|661| `--public` | 0\|1 | `1` | Include public members (methods, functions, classes) |662| `--protected` | 0\|1 | `0` | Include protected members |663| `--internal` | 0\|1 | `0` | Include internal/package-private members |664| `--private` | 0\|1 | `0` | Include private members |665666#### π Content Filtering667668| Option | Type | Default | Description |669|--------|------|---------|-------------|670| `--comments` | 0\|1 | `0` | Include inline and block comments |671| `--docstrings` | 0\|1 | `1` | Include documentation comments (docstrings, JSDoc, etc.) |672| `--implementation` | 0\|1 | `0` | Include function/method bodies (implementation details) |673| `--imports` | 0\|1 | `1` | Include import/require statements |674| `--annotations` | 0\|1 | `1` | Include decorators and annotations |675| `--fields` | 0\|1 | `1` | Include class fields and properties |676| `--methods` | 0\|1 | `1` | Include methods and functions |677678#### ποΈ Alternative Filtering Syntax679680| Option | Type | Default | Description |681|--------|------|---------|-------------|682| `--include-only` | String | *(none)* | Include ONLY these categories (comma-separated: `public,protected,imports`) |683| `--exclude-items` | String | *(none)* | Exclude these categories (comma-separated: `private,comments,implementation`) |684685#### π File Selection686687| Option | Type | Default | Description |688|--------|------|---------|-------------|689| `--include` | String | *(all files)* | Include file patterns (comma-separated: `*.go,*.py` or multiple: `--include "*.go" --include "*.py"`) |690| `--exclude` | String | *(none)* | Exclude file patterns (comma-separated: `*test*,*.json` or multiple: `--exclude "*test*" --exclude "vendor/**"`) |691| `-r, --recursive` | 0\|1 | `1` | Process directories recursively. Set to 0 to process only immediate directory contents |692693#### π§ Processing Options694695| Option | Type | Default | Description |696|--------|------|---------|-------------|697| `--raw` | Flag | `false` | Process all text files without language parsing. Overrides all content filters |698| `--lang` | String | `auto` | Force language detection: `auto`, `python`, `typescript`, `javascript`, `go`, `rust`, `java`, `csharp`, `kotlin`, `cpp`, `php`, `ruby`, `swift` |699700#### π Path Control701702| Option | Type | Default | Description |703|--------|------|---------|-------------|704| `--file-path-type` | String | `relative` | Path format in output: `relative` or `absolute` |705| `--relative-path-prefix` | String | *(empty)* | Custom prefix for relative paths (e.g., `module/` β `module/src/file.go`) |706707#### β‘ Performance Options708709| Option | Type | Default | Description |710|--------|------|---------|-------------|711| `-w, --workers` | Integer | `0` | Number of parallel workers. `0` = auto (80% of CPU cores), `1` = serial processing, `2+` = specific worker count |712713#### π Summary Output Options714715| Option | Type | Default | Description |716|--------|------|---------|-------------|717| `--summary-type` | String | `visual-progress-bar` | Summary format after processing. See [Summary Types](#summary-types) below |718| `--no-emoji` | Flag | `false` | Disable emojis in summary output for plain text terminals |719720#### π Git Mode Options (when path is `.git`)721722| Option | Type | Default | Description |723|--------|------|---------|-------------|724| `--git-limit` | Integer | `200` | Number of commits to analyze. Use `0` for all commits |725| `--with-analysis-prompt` | Flag | `false` | Add comprehensive AI analysis prompt for commit quality, patterns, and insights |726727#### π Diagnostic Options728729| Option | Type | Default | Description |730|--------|------|---------|-------------|731| `-v, --verbose` | Count | `0` | Verbose output. Use `-vv` for detailed info, `-vvv` for full trace with data dumps |732| `--version` | Flag | `false` | Show version information and exit |733| `--help` | Flag | `false` | Show help message |734| `--help-extended` | Flag | `false` | Show complete documentation (man page style) |735| `--cheat` | Flag | `false` | Show quick reference card |736737### AI Actions Detailed738739AI actions generate pre-configured prompts combined with distilled code that AI agents can then execute for specific analysis tasks:740741| Action | Generated Prompt Type | AI Agent Will |742|--------|-------------|----------|743| `prompt-for-refactoring-suggestion` | Refactoring analysis prompt with distilled code | Analyze code for improvements, technical debt, effort sizing |744| `prompt-for-complex-codebase-analysis` | Enterprise-grade analysis prompt with full codebase | Generate architecture diagrams, compliance checks, findings |745| `prompt-for-security-analysis` | Security audit prompt with OWASP Top 10 guidelines | Detect vulnerabilities, suggest remediation steps |746| `prompt-for-performance-analysis` | Performance optimization prompt with complexity focus | Identify bottlenecks, analyze scalability issues |747| `prompt-for-best-practices-analysis` | Code quality prompt with industry standards | Assess code quality, suggest improvements |748| `prompt-for-bug-hunting` | Bug detection prompt with pattern analysis | Find bugs, analyze quality metrics |749| `prompt-for-single-file-docs` | Documentation generation prompt for single file | Create comprehensive API documentation |750| `prompt-for-diagrams` | Diagram generation prompt with Mermaid syntax | Generate 10+ architecture and process diagrams |751| `flow-for-deep-file-to-file-analysis` | Systematic analysis task list with directory structure | Perform file-by-file deep analysis |752| `flow-for-multi-file-docs` | Documentation workflow with file relationships | Create interconnected documentation |753754### Summary Types755756| Type | Description | Example Output |757|------|-------------|----------------|758| `visual-progress-bar` | Default. Shows compression progress bar with colors | `β Distilled 150 files [ββββββββββ] 85% (5MB β 750KB)` |759| `stock-ticker` | Compact stock market style | `π AID 97.5% β² \| 5MBβ128KB \| ~1.2M tokens saved` |760| `speedometer-dashboard` | Multi-line dashboard with detailed metrics | Shows files, size, tokens, processing time in box format |761| `minimalist-sparkline` | Single line with sparkline visualization | `βββ ββ 150 files β 97.5% reduction (750KB) β` |762| `ci-friendly` | Clean format for CI/CD pipelines | `[aid] β 85.9% saved \| 21 kB β 2.9 kB \| 4ms` |763| `json` | Machine-readable JSON output | `{"original_bytes":5242880,"distilled_bytes":131072,...}` |764| `off` | Disable summary output | No summary displayed |765766### Exit Codes767768| Code | Meaning |769|------|---------|770| `0` | Success |771| `1` | General error (file not found, parse error, etc.) |772| `2` | Invalid arguments or conflicting options |773774### Examples775776```bash777# Basic usage - distill with default settings (public APIs only)778aid ./src779780# Include all visibility levels and implementation781aid ./src --private=1 --protected=1 --internal=1 --implementation=1782783# Generate security analysis prompt (AI agent will execute the analysis)784aid --ai-action prompt-for-security-analysis ./api --private=1785786# Process only Python and Go files, exclude tests787aid --include "*.py,*.go" --exclude "*test*,*spec*" ./788789# Git history analysis with AI insights790aid .git --with-analysis-prompt --git-limit=500791792# Raw text processing for documentation793aid ./docs --raw794795# Force single-threaded processing for debugging (-v, -vv, -vvv)796aid ./complex-code -w 1 -vv797798# Custom output with absolute paths799aid ./lib --output=/tmp/analysis.txt --file-path-type=absolute800801# CI/CD integration with clean output802aid ./internal --summary-type=ci-friendly --no-emoji803```804805## β οΈ Limitations806807- **Syntax Errors**: Files with syntax errors may be skipped or partially processed808- **Dynamic Features**: Runtime-determined types/interfaces in dynamic languages are not resolved809- **Macro Expansion**: Complex macros (Rust, C++) show pre-expansion source810- **Generated Code**: Consider using `.aidignore` to skip generated files811812## π Security Considerations813814**β οΈ Important**: AI Distiller extracts code structure which may include:815- Function and variable names that could reveal business logic (e.g., `processPayment`, `calculateTaxEvasion`)816- API endpoints and internal routes (e.g., `/api/v1/internal/user-data`)817- Type information and data structures818- Comments and docstrings (unless stripped)819- File paths revealing project structure or codenames820821**Recommendations**:8221. Always review output before sending to external services8232. Use `--comments=0` to remove potentially sensitive documentation8243. Consider running a secrets scanner on your codebase first8254. For maximum security, run AI Distiller in an isolated environment8265. Future: We're exploring an `--obfuscate` flag to anonymize sensitive identifiers827828829## π οΈ Advanced Usage830831### β‘ Parallel Processing832833AI Distiller now supports parallel processing for significantly faster analysis of large codebases:834835```bash836# Use default parallel processing (80% of CPU cores)837aid ./src838839# Force serial processing (original behavior)840aid ./src -w 1841842# Use specific number of workers843aid ./src -w 16844845# Check performance with verbose output846aid ./src -v # Shows: "Using 25 parallel workers (32 CPU cores available)"847```848849**Performance Benefits**:850- React packages: 3.5s β 0.5s (7x faster)851- Large codebases: Near-linear speedup with CPU cores852- Maintains identical output order as serial processing853854### Processing from stdin855856AI Distiller can process code directly from stdin, perfect for:857- Quick code snippet analysis858- Pipeline integration859- Testing without creating files860- Dynamic code generation workflows861862```bash863# Auto-detect language from stdin864echo 'class User { getName() { return this.name; } }' | aid --format text865866# Explicit language specification867cat mycode.php | aid --lang php --private=0 --protected=0868869# Use "-" to explicitly read from stdin870aid - --lang python < snippet.py871872# Pipeline example: extract structure from generated code873generate-code.sh | aid --lang typescript --format json874```875876**Language Detection**: When using stdin without `--lang`, AI Distiller automatically detects the language based on syntax patterns. Supported languages for auto-detection: python, typescript, javascript, go, ruby, swift, rust, java, c#, kotlin, c++, php.877878### Integration with AI Tools879880```bash881# Create a context file for Claude or GPT882aid ./src --format text --implementation=0 > context.txt883884# Generate a codebase summary for RAG systems885aid . --format json-structured | jq -r '.files[].symbols[].name' > symbols.txt886887# Extract API surface for documentation888aid ./api --comments=0 --implementation=0 --format md > api-ref.md889890# Extract only method signatures (no fields/properties) - great for large codebases891aid ./src --fields=0 --implementation=0 > methods-only.txt892893# Extract only data structures (no method noise)894aid ./models --methods=0 > data-structures.txt895896# Focus on public API methods only897aid ./services --fields=0 --private=0 --protected=0 --internal=0898```899900### π« Ignoring Files with .aidignore901902AI Distiller respects `.aidignore` files for excluding files and directories from processing. The syntax is similar to `.gitignore`.903904#### Important: What AI Distiller Processes905906AI Distiller only processes source code files with these extensions:907- **Python**: `.py`, `.pyw`, `.pyi`908- **JavaScript**: `.js`, `.mjs`, `.cjs`, `.jsx`909- **TypeScript**: `.ts`, `.tsx`, `.d.ts`910- **Go**: `.go`911- **Rust**: `.rs`912- **Ruby**: `.rb`, `.rake`, `.gemspec`913- **Java**: `.java`914- **C#**: `.cs`915- **Kotlin**: `.kt`, `.kts`916- **C++**: `.cpp`, `.cc`, `.cxx`, `.c++`, `.h`, `.hpp`, `.hh`, `.hxx`, `.h++`917- **PHP**: `.php`, `.phtml`, `.php3`, `.php4`, `.php5`, `.php7`, `.phps`, `.inc`918- **Swift**: `.swift`919920**Note**: Files like `.log`, `.txt`, `.md`, images, PDFs, and other non-source files are automatically ignored by AI Distiller, so you don't need to add them to `.aidignore`.921922#### Default Ignored Directories923924AI Distiller automatically ignores these common dependency and build directories:925- `node_modules/` - npm packages926- `vendor/` - Go and PHP dependencies927- `target/` - Rust build output928- `build/`, `dist/` - Common build directories929- `__pycache__/`, `.pytest_cache/`, `venv/`, `.venv/`, `env/`, `.env/` - Python930- `.gradle/`, `gradle/` - Java/Kotlin931- `Pods/` - Swift/iOS dependencies932- `.bundle/` - Ruby bundler933- `bin/`, `obj/` - Compiled binaries934- `.vs/`, `.idea/`, `.vscode/` - IDE directories935- `coverage/`, `.nyc_output/` - Test coverage936- `bower_components/` - Legacy JavaScript937- `.terraform/` - Terraform938- `.git/`, `.svn/`, `.hg/` - Version control939940You can override these defaults using `!` patterns in `.aidignore` (see Advanced Usage below).941942#### Basic Syntax943944Create a `.aidignore` file in your project root or any subdirectory:945946```bash947# Comments start with hash948*.test.js # Ignore test files949*.spec.ts # Ignore spec files950temp/ # Ignore temp directory951build/ # Ignore build directory952/secrets.py # Ignore secrets.py only in root953node_modules/ # Ignore node_modules everywhere954**/*.bak # Ignore .bak files in any directory955src/test_* # Ignore test_* files in src/956!important.test.js # Don't ignore important.test.js (negation)957```958959#### How It Works960961- `.aidignore` files work recursively - place them in any directory962- Patterns are relative to the directory containing the `.aidignore` file963- Use `/` prefix for patterns relative to the `.aidignore` location964- Use `**` for recursive matching965- Directory patterns should end with `/`966- Use `!` prefix to negate a pattern (re-include previously ignored files)967968#### Examples969970```bash971# .aidignore in project root972node_modules/ # Excludes all node_modules directories973*.test.js # Excludes all test files974*.spec.ts # Excludes all spec files975dist/ # Excludes dist directory976.env.py # Excludes environment config files977vendor/ # Excludes vendor directory978979# More specific patterns980src/**/test_*.py # Test files in src subdirectories981!src/test_utils.py # But include this specific test file982/config/*.local.py # Local config files in root config dir983**/*_generated.go # Generated Go files anywhere984```985986#### Advanced Usage: Including Normally Ignored Content987988##### Include Default-Ignored Directories989990Use `!` patterns to include directories that are ignored by default:991992```bash993# Include vendor directory for analysis994!vendor/995996# Include specific node_modules package997!node_modules/my-local-package/998999# Include Python virtual environment1000!venv/1001```10021003##### Include Non-Source Files10041005You can also include files that AI Distiller normally doesn't process:10061007```bash1008# Include all markdown files1009!*.md1010!**/*.md10111012# Include configuration files1013!*.yaml1014!*.json1015!.env10161017# Include specific documentation1018!docs/**/*.txt1019!README.md1020!CHANGELOG.md1021```10221023When you include non-source files with `!` patterns, AI Distiller will include their raw content in the output.10241025#### Nested .aidignore Files10261027You can place `.aidignore` files in subdirectories for more specific control:10281029```bash1030# project/.aidignore1031*.test.py1032!vendor/ # Include vendor in this project10331034# project/src/.aidignore1035test_*.go1036*.mock.ts1037!test_helpers.ts # Exception: include test_helpers.ts1038```10391040### π― Git History Analysis Mode10411042AI Distiller includes a special mode for analyzing git repositories. When you pass a `.git` directory, it switches to git log mode:10431044```bash1045# View formatted git history1046aid .git10471048# Limit to recent commits (default is 200)1049aid .git --git-limit=50010501051# Include AI analysis prompt for comprehensive insights1052aid .git --git-limit=1000 --with-analysis-prompt1053```10541055The `--with-analysis-prompt` flag adds a sophisticated prompt combined with git history that AI agents can use to generate:1056- **Contributor statistics** with expertise areas and collaboration patterns1057- **Timeline analysis** with development phases and activity visualization1058- **Functional categorization** of commits (features, fixes, refactoring)1059- **Codebase evolution insights** including technology shifts1060- **Actionable recommendations** based on discovered patterns10611062The output file contains both the analysis prompt and formatted git history, ready for AI agents to process. Perfect for understanding project history, identifying knowledge silos, or generating impressive development reports.10631064## β FAQ10651066<details>1067<summary><strong>How accurate are the token counts?</strong></summary>10681069Token counts are estimated using OpenAI's cl100k_base tokenizer (1 token β 4 characters). Actual token usage varies by model - Claude and GPT-4 use similar tokenizers, while others may differ by Β±10%.1070</details>10711072<details>1073<summary><strong>Can AI Distiller handle very large repositories?</strong></summary>10741075Yes! We've tested on repositories with 50,000+ files. The parallel processing mode (`-w` flag) scales linearly with CPU cores. Memory usage is bounded - large files are processed in streaming chunks.1076</details>10771078<details>1079<summary><strong>What about generated code and vendor directories?</strong></summary>10801081Create a `.aidignore` file (same syntax as `.gitignore`) to exclude generated files, vendor directories, or any paths you don't want processed.1082</details>10831084<details>1085<summary><strong>What happens with unsupported file types?</strong></summary>10861087Files with unknown or unsupported extensions are automatically skipped - no errors, no interruption. AI Distiller only processes files it has parsers for, ensuring clean and relevant output. This means you can safely run it on mixed repositories containing documentation, images, configs, etc.1088</details>10891090<details>1091<summary><strong>Is my code sent anywhere?</strong></summary>10921093No! AI Distiller runs 100% locally. It only extracts and formats your code structure - you decide what to do with the output. The tool itself makes no network connections.1094</details>10951096<details>1097<summary><strong>Which programming languages are supported?</strong></summary>10981099Currently 12+ languages via tree-sitter: Python, TypeScript, JavaScript, Go, Java, C#, Rust, Ruby, Swift, Kotlin, PHP, C++. All parsers are bundled in the binary - no external dependencies needed.1100</details>11011102## π€ Contributing11031104We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.11051106### Development Setup11071108```bash1109# Clone and setup1110git clone https://github.com/janreges/ai-distiller1111cd ai-distiller1112make dev-init # Initialize development environment11131114# Run tests1115make test # Unit tests1116make test-integration # Integration tests11171118# Build binary1119make build # Build for current platform1120```11211122### Building Release Binaries11231124AI Distiller requires CGO for full language support via tree-sitter parsers. To build release binaries for all supported platforms:11251126#### Prerequisites11271128**Ubuntu/Debian:**1129```bash1130# Install cross-compilation toolchains1131sudo apt-get update1132sudo apt-get install -y gcc-aarch64-linux-gnu gcc-mingw-w64-x86-6411331134# For macOS cross-compilation, you need osxcross:1135# 1. Clone osxcross: git clone https://github.com/tpoechtrager/osxcross tools/osxcross1136# 2. Obtain macOS SDK (see https://github.com/tpoechtrager/osxcross#packaging-the-sdk)1137# 3. Place SDK in tools/osxcross/tarballs/1138# 4. Build osxcross: cd tools/osxcross && ./build.sh1139```11401141#### Build All Platforms11421143```bash1144# Build release archives for all platforms1145./scripts/build-releases.sh11461147# This creates:1148# - aid-linux-amd64.tar.gz (Linux 64-bit)1149# - aid-linux-arm64.tar.gz (Linux ARM64)1150# - aid-darwin-amd64.tar.gz (macOS Intel)1151# - aid-darwin-arm64.tar.gz (macOS Apple Silicon)1152# - aid-windows-amd64.zip (Windows 64-bit)1153```11541155The script automatically detects available toolchains and builds for all possible platforms. Each archive contains the `aid` binary (or `aid.exe` for Windows) with full language support.11561157**Note**: Without proper toolchains, only the native platform will be built.11581159## π License11601161MIT License - see [LICENSE](LICENSE) for details.11621163## π Acknowledgments11641165- Built on [tree-sitter](https://tree-sitter.github.io/) for accurate parsing1166- Inspired by the need for better AI-code interaction1167- Created with β€οΈ by Claude Code & JΓ‘n RegeΕ‘ from [SiteOne](https://www.siteone.io/) (Czech Republic).1168
Full transparency β inspect the skill content before installing.