AgentOps
NewRegression-gated local consolidation

A map of your codebase that agents query instead of guessing.

Turn your codebase into a knowledge graph AI coding agents can actually query — scanning, hybrid search, curated gotchas/decisions, and 35 MCP tools, all self-hosted.

Try it on your repo →
$npx agentops-cli install

Then npx agentops-cli connect. The server is a separate one-time self-host that needs one value, a master key. See both steps.

Fewer tokens · lookups, not bulk readsFewer hallucinations · real source + known gotchasKnowledge that stays · tied to the code
agentops / Knowledge Graph · illustrative subset of its own repo
scanning… 0/55 nodes · 78 edges
filesymbolgotchadecision
Depth
What the agent gets
symbolhybrid_searchagentops-retrieval/src/lib.rs
#1centrality of 47
11direct edges
Attached notesNone on this node. Try hybrid_search or read_only_filter.
drag nodes · click to inspect
Works withClaude CodeCursorCodex CLIGemini CLI+ Copilot, Windsurf, Aider, Zed via Ruler
35MCP tools
3MCP servers
~90REST routes, OpenAPI-documented
6languages parsed by AST
1required env var to self-host
02 · The problem

Every session starts from zero. You pay for it three ways.

Agents re-read files to work out what a codebase does, guess at what they can’t see, and forget what was already tried and fixed.

A

Money

The same code, re-read and re-paid-for every session. Context that existed five sessions ago gets derived again from scratch.

B

Trust

Confident answers built from a function’s name and some hope, with nothing real to check them against.

C

Institutional knowledge

The same bug gets rediscovered, or reintroduced, because nothing tied the lesson to the code it was about.

03 · Same task, two agents

“Change how database migrations run.”

Plain agent
Agent + AgentOps
Finding the code
Greps, opens files, reads them in full. Then reads some of them again.
Asks the graph for the symbol. Gets the exact source and what depends on it.
Known bugs
Has no idea the last two people hit the same lock-ordering problem.
Gets the gotcha attached to that symbol in the same response.
Library docs
Works from whatever version of the docs it remembers.
Reads docs for the version actually installed.
Next session
Starts over. Re-reads. Re-pays.
Graph and notes persist. Nothing is re-derived.
Read-only mode
Is asked, politely, not to write anything.
Is never told write tools exist.
04 · Index of surfaces

Seven screens, one graph underneath.

Agents reach all of it over MCP. Humans get these. Each one has its own sheet.

01Explore →
SearchAnswers grounded in your real code.
Semantic + full-text query UI over a repo’s graph — ask things like “how does authentication work here” or “what gotchas exist around database migrations” and get grounded answers.
02Explore →
Knowledge GraphSee what’s load-bearing, not just what’s big.
Interactive node/edge graph of the whole repo, filterable by node kind and traversal depth, with a hotspot overlay that colors nodes by graph centrality — see what’s structurally load-bearing, not just what’s big.
03Explore →
Documentation ViewerOnboarding that ranks what matters first.
Auto-generated, navigable onboarding document per repo, built to stay usable even on repos with 1000+ symbols — ranked by what actually matters, not an arbitrary file tree.
04Explore →
GotchasLessons that stay attached to the code.
A curation workspace for the bugs and lessons that never make it into code comments — tabs for needs-curation / pinned / kept / reduced, tied directly to the code they’re about.
05Explore →
LibrariesDocs for the version you actually installed.
Tracks the docs of every third-party dependency your code actually uses, at the version you actually have installed — register, scrape, and search them from one screen.
06Explore →
Repository ConnectionIndex once. Everyone connects.
Connect a repo three ways: plain local install (no remote needed), SSH deploy key, or GitHub App (OAuth, no SSH key needed) — for teams sharing one indexed instance.
07Explore →
Team & SettingsKnow who, and which agent, did what.
Roles, invites, and an audit log — because more than one person (or agent) usually needs access.
The loop

Scan once. Get sharper every week.

Every note your team curates feeds a small model trained on your repo. A new version only ships if it beats the current one on a held-out eval.

01→
ScanFiles, symbols and dependencies become a graph. The scanning engine never touches the network.agentops install
02→
CurateGotchas and decisions are attached to the exact symbol they’re about. Import an existing vault in one pass.agentops ingest-notes
03→
ConsolidateA small model fine-tunes locally on your curated notes. Nothing leaves the machine.local, on your hardware
04→
GateThe candidate is scored against a held-out eval. It ships only if retrieval doesn’t regress.≥ current → ship
↻ repeats as your team adds notes
05 · Architecture

One Rust server process. One Next.js frontend. That’s the whole deployment.

01 · Sources→
Your repo, and what surrounds it
source code
existing notes vault
third-party library docs
02 · Scan→
AST-aware scanner
Python · JS/TS · Go
Rust · C++ · C#
zero network access
03 · Store→
Knowledge graph
files · symbols · deps
gotchas · decisions
SQLite or Postgres
04 · Retrieve→
Hybrid search
dense + BM25
exact name + PPR
gist → detail
05 · Serve
MCP, REST, web UI
3 MCP servers · 35 tools
REST API · ~90 routes
web UI for humans
Boundary · core engineThe scanning engine has a zero-network-access guarantee, verified at build time. It can’t phone home because it wasn’t built with anything that could.
Boundary · hosted tierSemantic search, AI interpretation and multi-team support live in a separately-bounded tier. Enable it or don’t; the core doesn’t change.
06 · Claims you can check

Six things we say, and how to catch us if we’re wrong.

Claim 01

It gets better at your repo, and only ships when it does.

CLS-inspired local consolidation fine-tunes a small model on your repo’s own curated notes, entirely locally. A new version is gated against a held-out eval. If retrieval quality regresses, it doesn’t replace the current one.

inputcurated gotchas + decisions
traincandidate model, local
gateheld-out eval vs current
≥ current → ship
< current → discard
Claim 02

35 MCP tools across three servers.

Repo scanning, notes and search; semantic search and consolidation; library docs and changelogs.

check → connect an agent, then list its tools
Claim 03

Read-only is structural, not a prompt.

Write-capable tools are filtered out of what the agent is told is available.

check → compare tools/list with read-only on and off
Claim 04

The scanner can’t reach the network.

The core engine’s zero-network guarantee is verified when it’s built, not promised in a policy.

check → build the core engine yourself
Claim 05

It documents itself with itself.

On first boot AgentOps registers its own docs as a docbrain library.

check → scrape_library slug: agentops, then search_docs
Claim 06

Self-hosted, no price gate.

One Rust server, one Next.js frontend, one required env var. MIT or Apache-2.0.

check → AGENTOPS_SECRETS_MASTER_KEY is the only required value
07 · Integrations

Only the ones that exist.

MCP is the protocol, not a vendor deal. If your agent speaks it, it can use AgentOps.

Interactive pickerClaude Code · Cursor · Codex CLI · Gemini CLI
Via Ruler, --agents <id>Copilot · Windsurf · Aider · Zed · and more
Repo connectionSSH deploy key · GitHub App (OAuth)
TasksLinear — native tasks can push to Linear
ProtocolAny agent that speaks MCP
08 · Setup, precisely stated

Two commands per developer. One server, once.

Step A · one time · the serverEvery method needs one value: AGENTOPS_SECRETS_MASTER_KEY. Generate it with openssl rand -hex 32.
$ cp .env.example .env # fill in AGENTOPS_SECRETS_MASTER_KEY
$ docker compose up
Single image: API on :8420, web UI on :3000. SQLite by default; add --profile postgres for a bundled Postgres.
Step B · each developer · in the repoNo separate install. npx fetches the right binary on first run.
$ npx agentops-cli install
# scan into the graph, generate AGENTS.md
$ npx agentops-cli connect
# register MCP server, distribute AGENTS.md/skills
Or · on a teamThe repo is already indexed server-side, so nobody re-scans locally. Authenticate with a personal API key from Settings → API Keys.
$ npx agentops-cli connect --remote <server-url>
09 · Questions

Reasonable skepticism, answered.

Point it at your own repo. Then decide.

Login / Register→AgentOps for companies→