Fast, AST-based code-navigation: shape, public API, deps & call graphs, hybrid semantic search, structural rewrite. MCP server included.
Project description
ast-bro
PyPI installer for ast-bro — a fast, AST-based code-navigation toolkit for source files (shape, public API, dep & call graphs, hybrid semantic search, structural rewrite, MCP server). Downloads the pre-built Rust binary on first run.
Formerly
ast-outline-cli. Same project under a new name (theast-outlinename became overloaded after the tool grew beyond outlining). Theast-outlinecommand is still installed as a thin proxy that forwards toast-bro, so existing scripts keep working.
Install
pip install ast-bro
This installs three commands, all forwarding to the same binary:
ast-bro— canonical namesb— short alias (same tool, fewer keystrokes)ast-outline— backward-compat shim
Usage
# Map the structure of a file (signatures + line ranges, no bodies)
ast-bro map src/player.rs
# Show the exact source of a specific method
ast-bro show Player.cs TakeDamage
# Compact digest of a whole module
ast-bro digest src/services/
# True public API (resolves pub use / __all__ re-exports)
ast-bro surface .
# Find all implementations of a type
ast-bro implements IDamageable src/
# Dependency graph
ast-bro deps src/auth.rs --depth 2
ast-bro reverse-deps src/auth.rs
ast-bro cycles
# Call graph (AST-accurate)
ast-bro callers TakeDamage
ast-bro callees Player.TakeDamage
# Hybrid BM25 + dense semantic search
ast-bro search "how does login work"
# Find semantically similar code
ast-bro find-related src/auth/login.rs:42
# AST-aware structural search and rewrite (with metavariables)
ast-bro run -p '$FUNC($$$)' -l rust
ast-bro run -p 'foo($A)' -r 'bar($A)' --write # apply to disk
On first run, the CLI downloads the pre-built binary for your platform from GitHub releases and caches it locally.
| Platform | Cache directory |
|---|---|
| macOS | ~/Library/Caches/ast-bro/ |
| Linux | ~/.cache/ast-bro/ |
Supported Platforms
| Platform | Status |
|---|---|
| macOS ARM64 | Pre-built binary available |
| Other platforms | Build from source (see below) |
For unsupported platforms, build from source:
cargo install ast-bro
What is ast-bro?
ast-bro is a fast, AST-based code-navigation toolkit built for LLM coding agents and humans. It uses tree-sitter via ast-grep to parse source files and provide:
- File shape —
map/digest/showfor signatures with line ranges (95% token savings vs reading full files) - True public API —
surfaceresolves re-export graphs across Rust, Python, TypeScript, and more - Dependency graph —
deps/reverse-deps/cycles/graphfor import analysis - Call graph —
callers/calleeswith AST accuracy across 14 languages - Semantic search — hybrid BM25 + dense embeddings via
searchandfind-related - Structural rewrite —
runfor AST-aware pattern matching with metavariables (find + replace) - MCP server — every command exposed as an MCP tool for LLM agents
Supports Rust, Python, TypeScript, JavaScript, Java, C#, C++, Kotlin, Scala, Go, PHP, Ruby, SQL, and Markdown.
Links
- ast-bro source code
- npm package (Node.js installer)
- crates.io (Rust library)
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ast_bro-2.2.0.tar.gz.
File metadata
- Download URL: ast_bro-2.2.0.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d4379738e3dbc433de65e6ec94d915e48eb3030a8a1361bd5bac805dc22f7a7
|
|
| MD5 |
b2fa3293aaced43e12c879b0316ca07f
|
|
| BLAKE2b-256 |
f74ac7890d86c58bcb2e9a67977dd2d24fee3634cae9bf8aa9d40d02a7f03407
|
File details
Details for the file ast_bro-2.2.0-py3-none-any.whl.
File metadata
- Download URL: ast_bro-2.2.0-py3-none-any.whl
- Upload date:
- Size: 4.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8bc3bf9510e191f6985d251b544da89f3dcb678b54be8d155ae16baf87547887
|
|
| MD5 |
a2cf4ebe484336122892b55813be4caa
|
|
| BLAKE2b-256 |
f5b1544879d38d450aaca41cf390c0fee7d60fc6970cc1c282b7f7b233589101
|