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.3.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.3-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ast_bro-2.4.3.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.3.tar.gz
Algorithm Hash digest
SHA256 1ff9476dd51e3f9b21505e9e840947e5d32fc7d4e3bcd5a8e4b7d4634e5c9a7e
MD5 d0dc06adeb8d0e4ee2bdca8539748943
BLAKE2b-256 75e71c8fa3f2bcfe58cf676d53bf7a273c06049681351b6ced457d8ee9b2f96a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ast_bro-2.4.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 05153a5df0f624b20e0f288f0006ae379aa25fc21025b95ba5b91ed7742aa88d
MD5 5e021fa2629f6deaf55d8582b15c2526
BLAKE2b-256 09b9bc0d9e99e7d48cba6cc1786814a118292244f94c888374f8ccea82c06cff

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