ast-outline (final release — 2.1.1)
This project has been renamed to ast-bro
ast-outlinestarted as a shape extractor. It grew into a multi-subsystem toolkit covering dep & call graphs, hybrid semantic search, and AST-aware structural rewrite. "Outline" no longer fit, and the name collided with an unrelated VS Code extension and an npm package. The project lives at github.com/aeroxy/ast-bro going forward.This 2.1.1 release is the final version under the
ast-outlinename. It ships the same code asast-bro2.2.0, and bundles the newast-broandsbbinaries alongsideast-outlineso existing users can start using the new names before switching packages. Everyast-outline --helpinvocation prints the discontinuation notice with the upgrade path.
Switching to ast-bro
Pick the installer for your ecosystem:
After install, run ast-bro --help, sb --help, or any of the subcommands documented in the ast-bro README. All scripts you have today that call ast-outline will keep working as long as the ast-outline package or formula stays installed; once you uninstall it, your ast-outline shim disappears and your scripts should call ast-bro (or sb) instead.
What this 2.1.1 release ships
Every install method (crate, brew, npm, pip) installs three commands. They're the same binary:
ast-outline— the original CLI (still works, no further updates)ast-bro— the new canonical namesb— a shorter alias
Capabilities (unchanged from ast-bro 2.2.0):
- File shape —
map/digest/show/implements— signatures with line ranges instead of method bodies; AST-accurate subclass lookup. - True public API —
surfaceresolves re-export graphs across Rust, Python, TypeScript, Scala. - Dependency graph —
deps/reverse-deps/cycles/graph— file-level imports for nine languages. - Call graph —
callers/callees— AST-accurate, with confidence tags from a three-pass resolver. - Hybrid semantic search —
search/find-related— BM25 + dense embeddings viapotion-code-16M. - Structural rewrite —
run -p '<pattern>' -r '<replacement>'— AST-aware find/replace with metavariables. - MCP server —
mcp— every subcommand exposed as an MCP tool.
Supported languages: Rust, Python, TypeScript, JavaScript, Java, C#, C++, Kotlin, Scala, Go, PHP, Ruby, SQL, Markdown.
For full feature documentation, design rationale, and architecture, see the ast-bro README and wiki.
Install (for now, if you really want this final ast-outline release)
# Homebrew (macOS)
# npm
# pip
# Cargo