About Astria
Astria builds a local SQLite knowledge graph from code using deterministic Rust and tree-sitter extraction. It is for developers and coding agents that need to locate implementations, inspect relationships, and assess changes with source-linked evidence; structural analysis requires no API key.
Key features
- 01Local SQLite code graph
- 02Deterministic Rust and tree-sitter extraction
- 03Queries for symbols and relationships
- 04Change impact analysis
- 05Evidence classes and source locations
- 06Optional local embeddings and semantic enrichment
Use cases
- 01Find where a behavior is implemented
- 02Trace relationships between code symbols
- 03Review graph-reachable impact before editing
MCP support
Astria provides MCP queries through the same retrieval engine used by its CLI. The README mentions agent integration but does not specify the MCP tools or transport.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEastria
Knowledge graph builder for codebases
Docs | Getting started | CLI Reference | Architecture | Worked examples | Changelog | Release notes | Security
Built by Nodesify
Find an implementation, inspect its relationships, and assess a change before editing. Astria builds a local SQLite knowledge graph with deterministic Rust/tree-sitter extraction. CLI and MCP queries use the same retrieval engine; source locations and evidence classes make results inspectable. Structural analysis needs no API key. Local embeddings and remote semantic enrichment are optional.
Install
npm install -g @nodesify/astria
Node.js >= 22 is required. Prebuilt native binaries ship with the package; installation needs no Rust toolchain. macOS/Linux can also use brew install nodesify/tap/astria (tap).
Intel Mac (darwin-x64), musl Linux and windows-arm64 builds omit local embeddings because ONNX Runtime has no prebuilt runtime there. Structural analysis works; run --embed reports that embeddings are unsupported. Check astria stats --json for embeddingsSupported.
Use the graph
astria run . # build .astria/
astria map # orient by source modules
astria query "where is request authentication implemented"
astria explain <node-id> # inspect a returned symbol
astria path <caller-id> <callee-id> # follow relationships
astria affected <node-id> # assess a proposed change
astria update . # refresh after editing
Use node IDs returned by the graph. Confirm important results against the linked source: name-derived call/import bindings are RESOLVED, and ambiguous targets remain INFERRED. --detail high restricts traversal to EXTRACTED/DECLARED facts. affected reports graph reachability; it cannot prove runtime behavior.
Exclude files with .astriaignore (gitignore syntax). Graphs and reports live under .astria/; read graph_report.md for orientation. Unchanged source reuses extraction caches, while updates reconcile references across the current corpus. After upgrading, run astria update . to refresh cached extraction for qualified call targets.
Guides and evidence
- Install and first graph
- Agent integration, MCP, skills and hooks
- Wiki and exports, semantic enrichment, memory and learning
- CLI reference, graph model, troubleshooting
- Worked examples and retrieval validation, including known limitations
The evaluation harness separates file and declaration retrieval, delivered tokens, search/read cost and graph build time. Historical comparisons used tiny, exercised external sets and a single-pass search floor. New Requests and Commander questions are source-grounded, agent-authored, reserved and unexercised until their first explicit evaluation. No result establishes broad superiority or savings over a complete agent task.
Architecture and languages
Rust workspace with 20 crates plus a Node.js CLI. Uses 42 registered language configurations; exact parser coverage and optional lang-* build features are described in language support. See ARCHITECTURE.md for pipeline, caching and evidence contracts.
Astria is an independent implementation inspired by Graphify, and is not affiliated with or endorsed by that project.
Build from source
# Build Rust core
cargo build --release
# Copy the native library for the source CLI (Linux)
mkdir -p packages/astria-cli/dist
cp target/release/libastria_napi.so packages/astria-cli/dist/astria.node
# Build Node.js CLI
cd packages/astria-cli && npm ci && npm run build
See Contributing for macOS and Windows native artifact paths.
Requires Rust 1.88+ (declared as rust-version in the workspace) and Node.js >= 22.
License
MIT — see LICENSE.
Contributions are welcome and accepted under the Contributor License Agreement — see CONTRIBUTING.md to get started.
Installation defaults to project scope: astria install --platform codex --scope project. Use --scope user explicitly for user-wide integrations. Run astria doctor after setup or upgrades. See the installation lifecycle guide for supported platforms, upgrade, backup/restore and complete removal.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.