Runtime safety
for AI agents.

344 verified agent incidents. 65 data deletions. 28.6M leaked secrets.
Savants stops the next one.

Guard

Block dangerous actions.

Deterministic rules enforced outside the LLM. IDE + SDK.

Intelligence

3.6x fewer tokens per task, on average.

Semantic search. Call graphs. Blast radius. Benchmarked on 40 agents.

Knowledge

Remembers. Enforces. Grows.

Personal knowledge graph across every session, every tool. MCP-native.

curl -fsSL savants.sh | sh | pip install savants-guard | npm install @savants.dev/guard
30-second install. No API keys. No cloud required.
Scroll
Savants Guard

This already happened. To real companies.

Prompt instructions are suggestions. CLAUDE.md is a suggestion. .cursorrules is a suggestion. Savants is deterministic enforcement. The LLM cannot see it, reason about it, or bypass it.

April 2026

Cursor agent wiped a production database

PocketOS lost 3 months of customer data in 9 seconds. The agent deleted the database AND every backup. Savants Guard would have blocked it.

April 2026

28.6M secrets leaked via AI agents

AI coding tools doubled the rate of credential exposure. Anthropic rated the prompt injection attack CVSS 9.4 Critical. Savants blocks secret exfiltration.

2026

Regulators are catching up to MCP risks

NIST, NSA, and CISA have flagged AI agent tooling as a supply chain risk. Enterprises need audit trails before compliance frameworks harden. Savants provides audit-ready evidence.

~/.savants/guard-rules.json syncs from cloud every 30s
[
  "when command contains 'rm -rf /' then block",
  "when command contains 'git push --force' then rewrite 'git push --force-with-lease'",
  "when command contains 'npm publish' then ask 'Publishing is permanent'",
  "when command contains 'chmod 777' then suggest 'Use chmod 755 instead'",
  "when file_path contains '.env' then block"
]
Without Savants (real incident)
Agent> DELETE FROM reservations; DROP TABLE backups;
3 months of customer data gone. 9 seconds.
With Savants
Agent> DELETE FROM reservations; DROP TABLE backups;
BLOCKED. Database safe. Audit logged.

Works with Claude Code, Cursor, Windsurf, and any MCP-compatible tool. Rules sync from cloud across your whole team.

Install Savants Add to your SDK

curl -fsSL savants.sh | sh | pip install savants-guard | npm install @savants.dev/guard

Savants Intelligence

Your AI agent burns 3.6x more tokens than it should.

We tested 40 zero-context agents on 10 real code tasks. Without savants, investigations average $3.53 on Opus. With savants, $1.21. Same or better accuracy. Fewer tokens. Lower bill.

without savants
You: "What calls handleTokenExpiry and what breaks if I change it?"
Your AI agent:
→ grep -rn "handleTokenExpiry" src/ (47 matches)
→ reads auth/tokenRefresh.ts (3,200 tokens)
→ reads middleware/session.ts (2,800 tokens)
→ grep -rn "tokenRefresh" src/ (28 matches)
→ reads 6 more files...
→ grep -rn "import.*token" src/ (93 matches)
✗ 21 tool calls. 968K tokens. $3.53.
✗ Missed 2 indirect callers.
968K tokens vs 266K.
Same answer. 3.6x fewer tokens.
with savants
You: "What calls handleTokenExpiry and what breaks if I change it?"
Your AI agent:
→ savants callers handleTokenExpiry
→ savants blast handleTokenExpiry
7 callers across 4 services, blast radius = 12 files
Including indirect callers via SessionManager.refresh()
✓ 7.6 tool calls. 266K tokens. $1.21.
✓ Complete caller chain. Every indirect caller found.

Savants traces callers, callees, and blast radius across your entire codebase.

Benchmarked on 40 zero-context agents. 10 real tasks.

3.6x
fewer tokens on Claude Opus (Anthropic's top model). 968K → 266K average per investigation. Up to 9.4x on complex caller tracing.
2.9x
lower cost. $3.53 → $1.21 per task on Opus. $0.80 → $0.31 on Claude Sonnet. Same or better accuracy.
Equalizer
Claude Sonnet scores 55.5% accuracy without savants. With savants, it jumps to 65.5% — closing the gap with Opus at 89%.

Measured with fresh agents, no codebase context, no prior knowledge. Read the full methodology →

The model equalizer

Cheaper models score 55%.
With savants, they score 65%.

Claude Sonnet (Anthropic's mid-tier model) explores less efficiently and hits dead ends on complex tasks. Savants gives it the same structured code analysis as expensive models. Result: 2.6x cost reduction ($0.80 → $0.31/task) while accuracy jumps 10 percentage points. Opus (the top model) sees even larger savings: 2.9x ($3.53 → $1.21/task).

Sonnet without savants
55.5%
accuracy · 1.03M tokens · $0.80/task
Sonnet with savants
65.5%
accuracy · 365K tokens · $0.31/task

Real problems. Measured results.

Three scenarios from our 40-agent benchmark.

semantic_search "Find the function that retries failed payments"
✗ Without savants ~1M tokens
grep "retry" → 23 matches across config files, test mocks, comments. Reads them all.
✓ With savants ~265K tokens
handleTransactionWithBackoff() in payment-service.ts:142 — 3.8x fewer tokens
callers "What calls this function? Will my change break anything?"
✗ Without savants 1.17M tokens
grep the function name — miss indirect callers, dynamic imports. 9.4x more tokens on complex traces.
✓ With savants 125K tokens
7 confirmed callers across 4 services, blast radius = 12 files — 9.4x reduction
file_skeleton "Show me this file's structure without reading 2,000 lines"
✗ Without savants ~630K tokens
Read entire file, burn thousands of tokens on boilerplate. 4.2x more tokens on large function xrays.
✓ With savants ~151K tokens
34 functions with signatures. Just the structure you need — 4.2x reduction.

Every API doc. Already indexed.
Zero setup.

Your AI doesn't need to hallucinate Stripe's API or guess Kubernetes syntax. Savants indexes official documentation so your agent gets the right answer.

without docs
You: "How do I verify a Stripe webhook signature?"

AI: "I think you use crypto.createHmac('sha256', secret)...
actually let me check... maybe it's hmac.update()..."

Hallucinated. Partially wrong. You debug for 20 minutes.
vs
with savants docs
You: "How do I verify a Stripe webhook signature?"

AI → savants docs search stripe "webhook signature"

Resolve webhook signature verification errors
docs.stripe.com/webhooks/signatures
"Use stripe.webhooks.constructEvent(body, sig, secret)"

Correct. From official Stripe docs. Zero hallucination.
Stripe
Kubernetes
React
Next.js
Fastify
PostgreSQL
Redis
Docker
AWS
Cloudflare

Pre-indexed and free. Plus upload your private docs: 1 credit per 10K tokens.

60 seconds. 3.6x fewer tokens on average.

Step 01

Install

Single binary, zero dependencies. No bash, no Python, no runtime needed. macOS, Linux (including NixOS), and Windows.

curl -fsSL savants.sh | sh
Windows: irm releases.savants.dev/latest/install.ps1 | iex
Step 02

Index

Savants builds a map of every function, every caller, every import. Locally.

savants reindex
Step 03

Done

Your AI agent automatically uses savants instead of grep. Nothing else to configure.

savants search "auth middleware"
We found a real bug in Fastify.

Root cause identified, call chain traced, PR submitted - in 141 seconds. Without savants, the same task took 17 minutes of manual grep and file reading.

Read the case study
Knowledge Graph

The longer you use it, the smarter it gets.

Savants builds a personal knowledge graph from every session. It remembers across tools, enforces across teams, and follows you from Claude Code to Cursor to Windsurf.

Day 1

Install. Guard blocks. Intelligence saves tokens.

Savants Guard stops dangerous actions deterministically. The code graph gives your agent 3.6x fewer tokens per task. Zero configuration — just install and go.

Day 30

Knows your codebase, preferences, and team.

The knowledge graph learns which services you own, how you prefer to debug, and who your teammates are. Context injection happens automatically via MCP — every AI tool you use gets smarter.

Day 90

Enforces team decisions. Recalls incident history.

Guard rules attach to knowledge nodes: "staging before prod for payments-service" becomes an enforced policy, not a suggestion. Your agent remembers last quarter's auth outage when you touch the same code.

Day 360

Organizational intelligence. Switching costs a year of context.

A year of decisions, patterns, ownership maps, and incident history — structured as a graph, not flat memory. Nodes are code entities, people, events, and policies. Edges are real relationships: owns, changed, caused, depends-on.

Not flat memory

Mem0 and Zep store facts per user. Savants stores a graph — code entities, people, events, and policies connected by real relationships. That's why it can enforce, not just recall.

Not per-tool

Because Savants is MCP-native, the knowledge graph follows you across Claude Code, Cursor, Windsurf, and any MCP-compatible tool. One graph, every session, every IDE.

Sub-50ms recall

Graph traversal + vector search on Cloudflare's edge. D1 reads in 5ms, Vectorize queries in 15ms. Context selected and injected before the LLM sees your message.

Local tools are free.

Cloud tools add production intelligence. Pay per call, no commitments.

Error diagnosis

diagnose-error 50 credits

Root cause file + line in 0.7s. Upstream trace, git blame, Slack context.

Example
Input: "PrismaClientKnownRequestError: Foreign key constraint violated on ProcessingJob_userId"
Root cause: sendFailureNotification() at resume-review.activities.ts:838
Upstream trace:
← triggered by generateAIReview() (LLM validation failed)
← triggered by Temporal worker activity
Fix: Verify userId exists before prisma.create()
Confidence: 85% (enriched with Sentry breadcrumbs)
PR risk analysis

pr-risk 20 credits

8-check risk analysis per PR. Blast radius, affected consumers, test gaps.

Example
Input: PR #847 - "Refactor payment retry logic"
Risk: Medium (6/10)
Blast radius: 12 files, 3 services affected
Warnings:
⚠ Removed error retry - was this intentional?
⚠ paymentService.ts has no test coverage for this path
✓ No breaking API changes detected
Impact analysis

diff-impact 10 credits

Full downstream impact analysis across services and modules.

Example
Input: "What breaks if I rename processOrder()?"
Affected: 18 files across 4 services
api-gateway: 3 routes call processOrder()
billing-service: 2 event handlers
notification-service: 1 webhook
12 test files reference this function
Rename safely with these 18 changes.

radar 10 credits

What-did-I-miss digest. Surfaces drift between your code and production.

Example
Input: "What changed in the last 24 hours?"
3 items need attention:
● Sentry: 12 new errors in auth-service (started 3h ago)
● PR #892 merged without review (config change)
● Deployment v2.4.2 healthy (all checks passed)

10 free cloud calls/month. No card required. Start free → | View pricing →

$ savants connect

Works with your tools

Claude Code
Cursor
Windsurf

Indexes TypeScript, JavaScript, Python, Rust, Go, Java, C, C++, C#, Ruby, PHP, Swift, Kotlin, and Scala.