The memory layer Claude Code doesn't have.
Kindex does one thing. It knows what you know. A persistent knowledge graph so your AI assistant never starts a session blind.
pip install kindex[mcp]
claude mcp add -s user -t stdio kindex -- kin-mcp
Most memory tools are session archives with search. Kindex is a weighted knowledge graph that grows intelligence over time — understanding relationships, surfacing constraints, and managing exactly how much context to inject based on your available token budget.
Five context tiers auto-select based on available tokens. When other plugins dump everything into context, Kindex gives you 200 tokens of executive summary or 4000 tokens of deep context — whatever fits. Your plugin doesn't eat the context window.
Nodes have types, weights, domains, and audiences. Edges carry provenance and decay over time. The graph understands what matters — not just what was said.
Constraints block deploys. Directives encode preferences. Watches flag attention items. Checkpoints run pre-flight. No other memory plugin has this.
Three-tier prompt architecture with Anthropic prompt caching. Stable knowledge cached at 10% cost. Query-relevant context predicted via graph expansion. Only the question pays full price. Transparent — kin ask just works better and cheaper.
.kin inheritance chains let a service repo inherit from a platform context, which inherits from an org voice. Private/team/org/public scoping with PII stripping on export.
Named work context handles that replace manual resume files. Start a tag, track focus and remaining items, segment by topic, and resume seamlessly in new sessions. kin tag start / kin tag resume.
Natural language scheduling with recurring support. Reminders can carry shell commands and Claude instructions — the daemon executes them automatically when due. A Stop hook guard blocks session exit when actionable reminders are pending. kin remind create "deploy" --at "in 1h" --action "...".
The cron daemon dynamically adjusts its check interval based on the nearest pending reminder. Reminder in 3 days? Check daily. Day of? Hourly. Within the hour? Every 5 minutes. No reminders? Daemon sleeps. Zero wasted cycles.
Kindex ships with a recommended CLAUDE.md block that turns passive tools into active habits. The difference between "Claude has a knowledge graph" and "Claude actively maintains a knowledge graph" is one command.
The directives add:
Start/segment/end rules so Claude tags every session and tracks context across conversations.
Explicit rules for what to add: discoveries, decisions, key files, notable outputs, new terms, open questions.
Always search before add. Always check existing knowledge before starting work. No duplicates.
Use learn after reading long files or completing complex tasks to auto-extract and index concepts.
The SessionStart hook reinforces these directives at every session start and after context compaction, so Claude never forgets.
A 162-file fantasy novel vault — characters, locations, magic systems, plot outlines — ingested in one pass. Cross-referenced by content mentions. Searched in milliseconds.
192 nodes. 11,802 edges. 5 context tiers. Hybrid FTS5 + graph traversal in 142ms.
Two commands. Zero configuration. Claude gets 22 native tools for your knowledge graph.
Or add .mcp.json to any repo for project-scope access:
Also works as a standalone CLI (kin search, kin add, etc.) and via Claude Code hooks. Use whichever integration fits your workflow.
The core differentiator. Other plugins inject context and hope for the best. Kindex manages exactly how much based on what's available.
| Tier | Budget | Use Case |
|---|---|---|
| full | ~4000 tokens | Session start, deep work — everything relevant |
| abridged | ~1500 tokens | Mid-session reference — key facts and connections |
| summarized | ~750 tokens | Quick orientation — what matters right now |
| executive | ~200 tokens | Post-compaction — just the essentials |
| index | ~100 tokens | Existence check — "I know about X" |
Auto-selected via --tokens budget or set explicitly with --level. The MCP context tool does this automatically.
Knowledge: concept, document, session, person, project, decision, question, artifact, skill
Operational: constraint (invariants), directive (soft rules), checkpoint (pre-flight checks), watch (attention flags)
Companies publish .kin files that encode their voice, standards, and context. Teams inherit from orgs. Repos inherit from teams. The knowledge graph carries the voice forward automatically.
The payments service gets: domains: [payments, python, engineering], Acme's voice principles, the platform's review standards, and audience: team (local wins). Parent directories are auto-walked when no explicit inherits is set. Example voice files included.
Ingest issues, PRs, and commits via gh CLI.
Ingest issues via GraphQL API.
Post-commit records. Pre-push surfaces constraints.
SHA-256 change detection for registered files.
47 commands organized by function. All support --data-dir, --config, and --json flags.
kin search <query> | Hybrid FTS5 + graph search with RRF merging |
kin context | Formatted context block for AI injection (--level, --tokens) |
kin add <text> | Quick capture with auto-extraction and linking |
kin show <id> | Full node details with edges, provenance, and state |
kin list | List nodes (--type, --status, --mine, --limit) |
kin ask <question> | Question classification + LLM or context answer |
kin learn | Extract knowledge from sessions and inbox |
kin link <a> <b> | Create weighted edge between nodes |
kin alias <id> | Manage AKA/synonyms for a node |
kin register <id> <path> | Associate a file path with a node |
kin orphans | Nodes with no connections |
kin trail <id> | Temporal history and provenance chain |
kin decay | Apply weight decay to stale nodes/edges |
kin recent | Recently active nodes |
kin tag [action] | Session tags: start, update, segment, pause, end, resume, list, show |
kin remind [action] | Reminders: create, list, show, snooze, done, cancel, check, exec |
kin graph [mode] | Dashboard: stats, centrality, communities, bridges, trailheads |
kin suggest | Bridge opportunity suggestions (--accept, --reject) |
kin skills [person] | Skill profile and expertise for a person |
kin embed | Index all nodes for vector similarity search |
kin status | Graph health + operational summary (--trigger, --owner) |
kin set-audience <id> | Set privacy scope (private/team/org/public) |
kin set-state <id> <k> <v> | Set mutable state on directives/watches |
kin export | Audience-aware graph export with PII stripping |
kin import <file> | Import nodes/edges from JSON/JSONL |
kin sync-links | Update node content with connection references |
kin ingest <source> | Ingest from: projects, sessions, files, commits, github, linear, all |
kin cron | One-shot maintenance cycle (for crontab/launchd) |
kin watch | Watch for new sessions and ingest (--interval) |
kin analytics | Archive session analytics and activity heatmap |
kin index | Write .kin/index.json for git tracking |
kin init | Initialize data directory |
kin config [show|get|set] | View or edit configuration |
kin setup-hooks | Install lifecycle hooks into Claude Code |
kin setup-cron | Install periodic maintenance (launchd/crontab) |
kin setup-claude-md | Output/install recommended CLAUDE.md directives |
kin stop-guard | Stop hook guard for actionable reminders |
kin doctor | Health check with graph enforcement |
kin migrate | Import markdown topics into SQLite |
kin budget | LLM spend tracking |
kin whoami | Show current user identity |
kin changelog | What changed (--since, --days, --actor) |
kin log | Recent activity log |
kin git-hook | Install/uninstall git hooks in a repository |
kin prime | Generate context for SessionStart hook (--codebook) |
kin compact-hook | Pre-compact knowledge capture |