@qtv/anchorkit
v2.1.0-beta.3.1
Published
AnchorKit — AI-native coding CLI with persistent knowledge vault
Readme
AnchorKit
Homepage: https://anchorkit.dev
AI-native coding CLI with a persistent, project-scoped knowledge vault.
AnchorKit wraps the AI agents you already use (Claude Code, Cursor, or direct API access to Anthropic / OpenAI / Gemini) and adds:
- a Markdown vault under
.anchorkit/vault/that survives across sessions — decisions, incidents, module maps, runbooks - slash commands for spec-driven work, code review, security review, vault search, and more
- an MCP server you can plug into Claude Code so the same vault is visible to both tools
Install
npm install -g @qtv/anchorkitRequires Node ≥ 20. The native SQLite binding ships as a prebuilt
binary for Linux x64/arm64, macOS x64/arm64, and Windows x64; on other
platforms npm install will compile it (Python + a C++ toolchain
required).
You also need at least one AI backend on your PATH or configured via
an API key:
| Backend | How |
|---|---|
| Claude Code CLI | claude login |
| Cursor CLI | install + sign in |
| Anthropic API | export ANTHROPIC_API_KEY=... |
| OpenAI API | export OPENAI_API_KEY=... |
| Gemini API | export GEMINI_API_KEY=... |
Pick one inside the REPL with /connect.
Quick start
cd your-project
anchorkit onboard # first time: scaffolds .anchorkit/vault/
anchorkit # opens the REPLInside the REPL:
/help— list every command/connect— choose the AI backend/vault-map— index the codebase into.anchorkit/vault//vault-query <query>— semantic search across the vault/commit— generate a conventional-commit message from the staged diff/review//security-review— code review and OWASP review of the diff/exit— quit
Resume a session
anchorkit --resume # resume the most recent session
anchorkit --resume <session-id> # resume a specific saved sessionSessions live under .anchorkit/state.json per project.
Use AnchorKit as an MCP server inside Claude Code
anchorkit internal-mcp-server boots a stdio-based MCP server that
exposes the vault tools (VaultQuery, VaultMap, VaultWrite,
TodoWrite, plan-mode helpers) to any MCP client. The typical wiring
is via Claude Code's .claude/mcp.json:
{
"mcpServers": {
"anchorkit": {
"command": "anchorkit",
"args": ["internal-mcp-server"]
}
}
}After that, Claude Code can read/write your vault and reuse the same context AnchorKit's REPL builds up.
What's in the vault
anchorkit onboard lays out an Obsidian-compatible Zettelkasten under
.anchorkit/vault/:
.anchorkit/vault/
├── CLAUDE.md ← project rules and conventions (auto-injected)
├── PROJECT.md ← project vision
├── STATE.md ← persistent state across sessions
├── knowledge/ ← concepts, patterns, module docs
├── decisions/ ← ADRs
├── incidents/ ← debugging sagas, root causes
├── flows/ ← workflows, pipelines, runbooks
├── maps/ ← Maps of Content (index notes)
├── archive/ ← superseded knowledge
└── _sessions/ ← session lifecycle notesEverything is plain Markdown, so the vault is portable and reviewable in git.
Beta status
This is a 1.0.0-beta release. The API surface (slash commands, vault
schema, MCP tools) is stable; cloud sync features are wired but
disabled by default. Set ANCHORKIT_SYNC_DISABLE=1 to silence sync
errors when you have no credentials.
Privacy & telemetry
When you are logged in to an AnchorKit account, the REPL sends a
minimal heartbeat to the backend so we can count active beta users
(Prometheus gauge anchorkit_users_online). The payload is exactly:
machineId— a random UUID stored at~/.anchorkit/machine-id(file mode0600), generated once per machine and never tied to your hardwareclientKind— the literal string"cli"platform—process.platform(e.g.linux,darwin,win32)cliVersion— the version printed byanchorkit --version
Nothing else is collected. No prompts, commands, file contents, file paths, vault notes, repo names, git remotes, environment values, hostnames, or usernames leave the machine through this channel.
The heartbeat:
- only fires when you are logged in and the REPL is running — never
in
anchorkit onboard,--version, or any one-shot subcommand; - pings on a backend-advised cadence (default 60 s, clamp ≥ 30 s);
- fails silently — network errors back off exponentially and never block or degrade any feature.
Opt-out
Set the environment variable before launching the REPL:
export ANCHORKIT_DISABLE_HEARTBEAT=1When opt-out is on at boot:
- no heartbeat is sent under any circumstance;
- the
~/.anchorkit/machine-idfile is not created if it does not already exist (LGPD minimisation — no identifier is provisioned for a user who declined telemetry); - a pre-existing
machine-idis preserved untouched so re-enabling telemetry later does not inflate the install count; - everything else in the CLI continues to work exactly the same.
The env var is read once at boot. Restart the REPL to flip the flag.
Legal basis: legítimo interesse (LGPD art. 7, IX + art. 10) for technical usage metrics. Details: https://github.com/QTVentures/anchorkit-ai/blob/main/backend/PRIVACY.md.
Architecture
Contributing code? Read ARCHITECTURE.md first: it
describes the layers under src/, the import rules, and the rules every
change must respect (for example, the vault is written only through the
harness).
License
Apache-2.0. See LICENSE.
