Skip to main content

Fast, AST-based code-navigation: shape, public API, deps & call graphs, hybrid semantic search, structural rewrite, and log squeezing. MCP server included.

Project description

ast-bro

PyPI License: MIT

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 (the ast-outline name became overloaded after the tool grew beyond outlining). The ast-outline command is still installed as a thin proxy that forwards to ast-bro, so existing scripts keep working.

Install

pip install ast-bro

This installs three commands, all forwarding to the same binary:

  • ast-bro — canonical name
  • sb — 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 shapemap / digest / show for signatures with line ranges (95% token savings vs reading full files)
  • True public APIsurface resolves re-export graphs across Rust, Python, TypeScript, and more
  • Dependency graphdeps / reverse-deps / cycles / graph for import analysis
  • Call graphcallers / callees with AST accuracy across 14 languages
  • Semantic search — hybrid BM25 + dense embeddings via search and find-related
  • Structural rewriterun for 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

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ast_bro-2.4.0.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ast_bro-2.4.0-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file ast_bro-2.4.0.tar.gz.

File metadata

  • Download URL: ast_bro-2.4.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

Hashes for ast_bro-2.4.0.tar.gz
Algorithm Hash digest
SHA256 ca387e3667f73e26fa1a60eea29d75005c711a14092dd026961192caaee151f5
MD5 ccc08ecbb38abe4a918feba032470457
BLAKE2b-256 e477819bfb93279a26248fdb269860614f017c023ce4cf27a15032861b281347

See more details on using hashes here.

File details

Details for the file ast_bro-2.4.0-py3-none-any.whl.

File metadata

  • Download URL: ast_bro-2.4.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

Hashes for ast_bro-2.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 eedd3c7cc66322d5426292b9c2ec76ee13f923065e0b94c307c6619d034d8b9d
MD5 05c7b2055fbf5abf6cc3f8fdeecea23f
BLAKE2b-256 5556dec781486533b7e4c31da302d9a13e7acb8f8dea79d23d7293bb74f4c4a8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page