crespo
Turn a codebase into a compact XML blueprint for LLMs
TLDR
SYNOPSIS
crespo PATH [--mode structure|summary|concat] [--git URL] [--groq KEY] [--output FILENAME]
DESCRIPTION
crespo converts a source tree into a compact XML "blueprint" intended to be fed to large language models. Instead of concatenating raw files, it uses Tree-sitter AST parsing to extract only the structural parts of each file, imports, classes, functions, and the connections between modules, which the project reports cuts token usage substantially compared to pasting the whole codebase.It works in three modes. The default structure mode emits an AST skeleton of imports, classes, and functions. The summary mode adds a one-line, AI-generated description per file and requires a Groq API key. The concat mode embeds the full source of each file inside the structured XML while redacting detected secrets.crespo is installed from PyPI with pip install crespo and supports Python, JavaScript, TypeScript, JSX, TSX, Rust, Go, Java, C, and C++. It can analyze a local directory or clone and analyze a GitHub repository in place with --git.
PARAMETERS
--mode structure|summary|concat
Output mode. structure (default) emits the AST skeleton, summary adds per-file AI summaries, concat includes redacted full source.--git URL
Clone and analyze a GitHub repository directly instead of a local path.--groq KEY
Groq API key used by summary mode. The key is saved for future runs.--output FILENAME
Write the blueprint to a custom filename.
CAVEAT
summary mode is not local-only: it sends file information to the Groq API and requires a valid API key, so avoid it on private or sensitive code unless that is acceptable. Although concat mode attempts to redact secrets, automated redaction is best-effort and should not be relied on as a guarantee before sharing output.
