Project Map CLI (Rust)
A high-performance, idiomatic Rust reimplementation of project-map-cli. This tool provides AI agents and developers with a contextually efficient architectural map of a codebase, enabling deep navigation and dependency analysis without massive token overhead.
🚀 Features
- Agent-Native TOON Output: Standardized "Token-Oriented Object Notation" presentation layer designed specifically for LLM context efficiency and readability.
- Multi-Language AST Parsing: Powered by Tree-sitter for high-fidelity symbol extraction.
- Supported: Rust, Python, TypeScript/TSX, Kotlin, SQL, Vue 3.
- Modern TypeScript: Robust support for Arrow Functions, Enums, Interfaces, and Re-exports.
- Semantic Docstring Search: Comments and JSDoc/KDoc are indexed and associated with their respective symbols, allowing you to search by architectural intent.
- Architectural Discovery:
find: Fast substring search for symbols across the monorepo.context: Dense architectural overview of any source file.blast: Inbound dependency analysis (who depends on this?).impact: Outbound dependency analysis (what does this depend on?).fetch: Precise extraction of raw source code using byte-range hydration.
- Smart Versioning & Reliability:
- Automatic
.gitignorerespect for clean indexing. - Explicit self-exclusion of the
.project-mapdirectory to avoid metadata noise. - Custom Index Paths: Use
--outand--indexto manage maps for external projects without cluttering source directories. - Rotating backups: Automatically maintains the 5 most recent builds to save space.
- Consistent
latest/symlink for stable integration.
- Automatic
- MCP Server: Built-in Model Context Protocol server exposing
pm_status,pm_query,pm_check_blast_radius, andpm_plantools. Powered byrust-mcp-sdkfor fully type-safe compliance with the2024-11-05protocol.
🛠 Installation
📖 Usage
1. Build the Map
Index your project and create a versioned snapshot.
# Standard usage
# Build for an external project into a specific directory
2. Find a Symbol
# Search using default .project-map index
# Search using a specific index directory
3. Analyze Blast Radius
See everything that might break if you change a specific symbol.
4. Fetch Raw Logic
Extract just the code you need.
5. Start MCP Server
Connect to Claude, Gemini, or other agents.
📂 Storage Structure
The tool maintains state in the .project-map/ directory (or your custom --out directory):
latest/: Symlink to the most recent successful build.backups/: Historical snapshots (limited to 5) of the project's architecture.
License
MIT