Tell your AI agent what it's about to break, before it breaks it Developer Ionut released impact, an MIT-licensed Rust CLI that builds a Tree-sitter symbol graph in local SQLite to answer what depends on a file or symbol before an AI coding agent edits it. The tool reports direct and indirect callers, API routes, events, database tables and affected tests, and can be wired into agents via MCP (impact mcp) or Claude Code PreToolUse hooks so blast-radius checks run on the first edit, commit or pull request. It supports Rust, TypeScript/JSX, Python, Go, Kotlin, Swift and C++, with confidence tiers (Exact/Probable/Heuristic) and cross-repo workspace.toml detection. AI coding agents are great at editing files. They are worse at knowing what those edits touch. You rename a field. The agent updates the obvious call sites. A controller three packages away still compiles locally, then fails in CI. Or worse: it ships, and a route that depended on the old shape starts 500ing. The usual fix is "read more of the codebase" or "grep harder." That turns a structural question into an open-ended reasoning problem. Different runs, different guesses. impact https://github.com/AncientiCe/impact-rs flips that. Before you change a file or a symbol, you ask one fast, repeatable question: what depends on this? bash $ impact query src/payment/service.rs DIRECT payment::controller::PaymentController::handle INDIRECT order::OrderService::checkout API POST /payments EVENTS PaymentCreated DATABASE payments TESTS 3 affected tests Agents get a checklist, not vibes. Wire it as MCP impact mcp and the agent can call impact file / impact change / impact diff the same way every time. Same input, same graph answer. No "I think this is only used here." Humans get the same report. You do not need an agent. impact query , impact change "rename Foo::bar" , or git diff | impact diff works in a terminal for review and refactors. PR descriptions can carry the blast radius. Reviewers cannot see your mental graph. Putting callers, routes, events, tables, and tests in the PR body is something the whole team benefits from, agent or not. Hooks beat hope. Claude Code can run a PreToolUse hook so blast-radius checks fire on the first edit, on git commit , and when opening a PR, whether or not the model remembered the rule. Over-report beats silent miss. When resolution is ambiguous, impact prefers listing candidates over picking one and staying quiet. False positives you can dismiss. False negatives you do not see until production. It is structural, not a full type-checker. Tree-sitter parses the project into a symbol graph in local SQLite. Calls resolve from imports, same-file declarations, and declared binding types, with confidence tiers Exact / Probable / Heuristic . You can filter with --min-confidence when you only want the sure edges. Languages today: Rust, TypeScript/JSX, Python, Go, Kotlin, Swift, C++. Full API / events / database contract detection is deepest on Rust; others get strong DIRECT/INDIRECT/TESTS where conventions are clear. The core is language-agnostic; adapters plug in without rewriting the engine. Cross-repo workspace.toml can flag shared route / event / table identities across sibling projects, labeled Declared / Strong / Weak so coincidences stay honest. brew install ancientice/impact/impact or: curl -fsSL https://raw.githubusercontent.com/AncientiCe/impact-rs/master/scripts/install.sh | sh impact index . impact query path/to/file.rs impact install MCP + rules for Cursor / Codex / Claude Code Windows has a PowerShell install script; cargo install --git https://github.com/AncientiCe/impact-rs --locked impact-cli works anywhere with Rust. Every team using AI editors is paying the same tax: agents that edit locally and miss the neighborhood. A small deterministic tool that answers "who calls this?" turns that tax into a checklist. If you build agents, wire MCP. If you review PRs, ask for impact diff in the description. If you maintain a polyglot monorepo, try indexing once and querying before a scary rename. Repo MIT : github.com/AncientiCe/impact-rs https://github.com/AncientiCe/impact-rs Found a blind spot? impact report-blindspot drafts an issue so the graph can get better for the next person. Built by Ionut https://github.com/AncientiCe . If shared agent memory is your other headache, that is a separate project: Palace https://palacememory.com . This post is about blast radius.