The backbone your
agents are missing.
Prevents agents from reading the wrong things
and breaking the unseen things.
Supports macOS, Linux, and WSL2.
$ keel compile
error[E004]: Function `getUserById` was removed but has 3 caller(s)
--> src/models/user.ts:7
= fix: Remove or update callers of `getUserById` before deleting it
= callers: src/api/handlers.ts:4, src/api/middleware.ts:12, tests/api/user.test.ts:8
error[E001]: Signature of `createUser` changed; 2 caller(s) need updating
--> src/models/user.ts:15
= fix: Update callers of `createUser` to match new signature
= callers: src/api/handlers.ts:9, src/services/onboarding.ts:22
error[E005]: `handleGetUser` expects 2 args but callers pass 1
--> src/api/handlers.ts:3
= fix: Update call sites or restore previous arity
= callers: src/routes/users.ts:14
3 error(s), 0 warning(s) in 3 file(s) (38ms)
$ node src/server.ts
Server listening on port 3000...
$ curl localhost:3000/api/users/42
TypeError: getUserById is not a function
at handleGetUser (src/api/handlers.ts:4:16)
at Layer.handle [as handle_request] (node_modules/express/lib/router/layer.js:95:5)
at next (node_modules/express/lib/router/route.js:144:13)
at Route.dispatch (node_modules/express/lib/router/route.js:114:3)
at Layer.handle [as handle_request] (node_modules/express/lib/router/layer.js:95:5)
at /src/node_modules/express/lib/router/index.js:284:15
[ERROR] Unhandled exception in request handler
Request: GET /api/users/42
Status: 500 Internal Server Error
Time: 2026-02-19T02:47:31.204Z
AI agents don't understand
your architecture.
They read stale context. They break callers they never see. Every removed function, every changed signature — invisible until production.
Broken Callers
Agents change function signatures without updating the 50 other places that call them.
Type Drift
Subtle type mismatches that compile fine but crash at runtime. Agents don't trace downstream.
Structure Rot
Files in wrong modules, duplicated logic, code that violates your core domain boundaries.
Three commands. Complete structural coverage.
01. Map
Builds a graph of your codebase — functions, dependencies, type boundaries, all of it.
02. Compile
Checks every import, boundary, and contract against your architecture map. Fails fast when something's wrong.
03. Fix
Generates a fix plan with exact diffs — or let your agent apply them automatically.
One command. Every tool configured.
Builds the graph DB
Scans every function, class, and call edge into .keel/graph.db.
Installs hooks
Git pre-commit hook and .keel/hooks/post-edit.sh — enforcement runs automatically.
Configures your tools
Auto-detects AI coding tools in your repo and generates their hook/instruction files.
Works with 11 tools you already use.
keel init auto-detects which tools you use and generates the right configs. No manual setup.




Output designed for agents and humans.
Built with obsessive rigor.
Free is complete. Pro is multiplied.
Every CLI command, every language, every integration — free forever. Pro adds team visibility, naming governance, and analytics.
Team Dashboard
See what your agents build — module health, error trends, naming drift.
Naming Conventions
Define once, enforce everywhere. Your agents follow the same rules.
Multi-Repo Linking
Connect frontend and backend schemas. One graph across repositories.
Get early access when Pro launches.
Start enforcing structure today.
Supports macOS, Linux, and WSL2.