Your agents remember.
KnowIt is a shared memory layer for AI coding agents. Store rules, architecture decisions, and patterns once. Every agent on your team finds them on the next session.
npm install -g knowit
Stop re-explaining your codebase.
Without KnowIt
- Your agent asks how Stripe webhooks should be handled. You explain. Next session, same question.
- A new teammate's agent introduces a naming pattern you deprecated six months ago.
- Three agents working on the same codebase hold three inconsistent models of the architecture.
With KnowIt
-
Agent calls
resolve_contextbefore planning. It finds the idempotency rule. It starts informed. - Every convention is immediately searchable by every agent on the team.
- At session end, the agent persists everything it discovered.
"The problem is not your agents. It is that their memory resets every session."
Set up in three steps.
Create the knowledge base.
Run knowit init. A local SQLite database is created. No server, no account, no API key.
knowit init
Register with your agent.
Works with Claude Code, Codex, Cursor, Windsurf, and any MCP-compatible client. Pick yours:
claude mcp add -s user \
-e KNOWIT_DB_PATH="$HOME/.knowit/knowit.db" \
knowit -- knowit serve
codex mcp add knowit \
--env KNOWIT_DB_PATH="$HOME/.knowit/knowit.db" \
-- knowit serve
// ~/.cursor/mcp.json · windsurf · zed · any MCP client
{
"mcpServers": {
"knowit": {
"command": "knowit",
"args": ["serve"],
"env": {
"KNOWIT_DB_PATH": "/Users/you/.knowit/knowit.db"
}
}
}
}
Agents read context. They remember what they find.
Two lines in your CLAUDE.md is all it takes. From here, every session starts informed.
# CLAUDE.md
Before planning, call resolve_context.
After completing, call capture_session_learnings.
You don't change how you work.
No special syntax. No commands to memorize. Just tell your agent what you need.
"Resolve context from KnowIt before you start on the payments retry feature."
"Save what you learned to KnowIt: the auth token edge case and the retry pattern we landed on."
"Search KnowIt for how we handle Stripe webhook failures."
"Store this in KnowIt: we use JWT for auth, not session cookies. Scope it to the auth-service repo."
Built for teams, not just individuals.
Structured knowledge model
Types (rule, architecture, pattern, decision, convention, note), scopes (global, team, repo, domain), and confidence scores. Not flat markdown.
Shared team memory
One database, every agent on the team. Knowledge stored by one developer's agent is available to every other agent immediately.
MCP-native
Works with Claude Code, Codex, Cursor, and any MCP-compatible agent. A first-class MCP server, not a wrapper.
Semantic search
Provide your OpenAI API key for embedding-based semantic search. Without it, text and tag matching works out of the box.
Source orchestration
Connect Notion, Obsidian, or any MCP source. KnowIt's routing layer directs your agent to the right place for every read and write. After an external read, a distilled copy flows back into KnowIt automatically.
Local-first
SQLite. Your team's knowledge lives on your infrastructure. No account, no cloud dependency, no data leaving your machines.
Every entry is structured.
Not a flat file. Not a markdown blob. Typed, scoped, and scored.
| Type | Title | Scope | Confidence |
|---|---|---|---|
| rule | Stripe webhook idempotency | repo:payments-api |
0.95 |
| architecture | Repository layer pattern | repo:api-gateway |
0.90 |
| decision | JWT over session cookies | repo:auth-service |
0.85 |
| pattern | Payment retry with server state | repo:payments-api |
0.90 |
| convention | kebab-case for all route files | team |
1.00 |
| decision | Postgres for transactional data | team |
0.90 |
| rule | No direct DB access from controllers | repo:api-gateway |
1.00 |
| note | Auth token expiry edge case (open question) | repo:auth-service |
0.60 |
repo:payments-apirepo:api-gatewayrepo:auth-servicerepo:payments-apiteamteamrepo:api-gatewayrepo:auth-serviceConnect to where your knowledge lives.
Point KnowIt at Notion or any MCP-compatible source. Your agent queries once and KnowIt routes reads and writes to the right place.
Agent queries KnowIt
KnowIt routes the request
SQLite or Notion responds
See routing response schema
Agent calls the same tool every time
resolve_source_action({
action: "read",
artifactType: "decision",
query: "authentication strategy for the API",
repo: "auth-service"
})
{
mode: "local",
shouldUseKnowitDirectly: true,
mcpServerName: null,
nextStep: "Read the decision
directly from Knowit.",
storeDistilledMemory: false,
relevantKnowledge: [/* 3 matches */]
}
- Agent reads directly from KnowIt
- Relevant local context returned
{
mode: "route",
shouldUseKnowitDirectly: false,
mcpServerName: "notion",
nextStep: "Use the notion MCP next
to read the canonical
decision.",
storeDistilledMemory: true,
relevantKnowledge: [/* bonus ctx */]
}
- Agent is told to call Notion MCP next
- storeDistilledMemory: true flows a distilled copy back to KnowIt
Connect Notion in one command:
knowit source connect notion
One memory. The whole team.
Point every developer's agent at the same database. What one agent stores, every other agent finds instantly. No sync step, no duplication.
repo:payments-api
just now
repo:payments-api
1m ago
repo:payments-api
3m ago
team
5m ago
repo:payments-api
8m ago
repo:auth-service
12m ago
Ready in 30 seconds.
One command to install. One to register your agent. Done.
npm install -g knowit && knowit init
Then register your agent in step 2 above ↑