Private local memory for your AI tools.
Install once. Your tools stop starting from scratch.
Download · Connect your tools · What's new · Roadmap
🔒 Private by default: localhost only, data never leaves your machine
🔗 One memory, every tool: HTTP and MCP, same brain, no per-tool silos
📊 Prove it works: token savings, recall quality, and Monte Carlo projections
Get to the first memory moment before learning daemon internals.
Use the latest desktop installer, or build the local CLI:
git clone https://github.com/AdityaVG13/cortex.git
cd cortex/daemon-rs
cargo build --releaseOpen Cortex Control Center and start Cortex from the app. CLI-only users can run:
cortex servecortex status --jsonSuccess is "status": "ready". If status is needs_action or error, follow the returned nextAction / repair before continuing.
Claude Code:
claude plugin marketplace add AdityaVG13/cortex
claude plugin install cortex@cortex-marketplaceCodex:
codex mcp add cortex -- cortex.exe mcp --agent codexRestart the AI tool after changing MCP config.
From a connected MCP client, call cortex_store, then cortex_recall. From the repo, run the matching smoke script:
Windows:
powershell -ExecutionPolicy Bypass -File scripts\first-run-smoke.ps1macOS / Linux:
bash scripts/first-run-smoke.shThat smoke checks status, stores one disposable local memory, and recalls it. Normal use does not require benchmark adapters, provider keys, or LongMemEval.
More tool-specific setup: Info/connecting.md.
|
Save decisions, lessons, preferences. Conflict detection is automatic. |
Hybrid keyword + semantic search. In-process ONNX embeddings, no external service. |
Compiled identity + delta capsule. ~300 tokens served instead of ~15,000 raw. |
Memory tools are easy to pitch and hard to trust. Cortex starts to matter when the savings stop looking theoretical.
Benchmark note: cortex-http-pure is a benchmark adapter only; it is not required for normal Cortex operation. Scored LongMemEval-S validation is deferred until project budget allows, so v0.6.x does not claim a LongMemEval quality lift.
Historical v0.5.0 numbers below were measured against a 20-query ground-truth dataset via the cortex-http-base adapter. New recall-quality claims use the helper-free cortex-http-pure adapter as the canonical core baseline after funded validation.
| v0.4.1 | v0.5.0 | Δ | |
|---|---|---|---|
| Precision | 55.2% | 87.5% | 📈 +32.3% |
| MRR | 69.2% | 95.0% | 📈 +25.8% |
| Top-1 hit | 90.0% | 90.0% | — |
| Avg query tokens | n/a | 48.4 | — |
Raw v0.5.0 JSON
Note: cortex-http-base ("raw") adapter retains partial adapter-layer helpers and is deprecated for new quality claims. The helper-free cortex-http-pure adapter is the v0.6.0+ canonical measurement floor, enforced by 5 CI purity gates. See benchmarking/README.md. Reranking ships default-off behind off/shadow/primary modes; public promotion remains gated on LongMemEval/API-backed validation. Query expansion (HyDE) is targeted for v0.7.0.
v0.6.0 makes settings, governance, boot audits, and recall-quality measurement first-class. Full details in CHANGELOG.md.
- Settings panel: Accessibility, Appearance & Motion, Connection, Budgets, and Keyboard & Navigation
- Runtime preferences: high contrast, reduced motion, keyboard hints, and compact navigation
- Accessibility gates: stronger focus states, ARIA/live regions, contrast checks, and 375px reflow checks
- Retention classes across store, MCP, OpenAPI, export, and import
- Local endpoint budgets with stable HTTP
429/ JSON-RPC denial metadata - Budget UI in Control Center, backed by the local
budgets.toml - Boot audits plus
GET /boot/auditand the read-onlycortex_boot_auditMCP tool - Admin rollback with dry-run/apply workflow and audit events
cortex-http-pureadapter as the canonical helper-free measurement floor- Purity gates, CAS-100, and triangle judge tooling for safer quality claims
bge-base-en-v1.5default embeddings with MiniLM profiles andqwen3-embedding-0.6bopt-in- Cross-encoder reranking behind off/shadow/primary modes; default remains off
- Claude plugin MCP is attach-only and no longer starts a second daemon from plugin MCP paths
- Control Center supervises the app-managed daemon and honors intentional stops
- Handler panics return JSON 500 responses, with local panic breadcrumbs
- Storage hygiene compacts FTS, prunes stale embeddings, and migrates canonical vectors to PQ8 int8 blobs
Cortex tracks active agent sessions when clients identify themselves through cortex_boot or GET /boot?agent=NAME.
Claude Code, Codex, Cursor, and custom scripts can all be connected simultaneously. Each tracks its own session while sharing the same memory. |
| Tool | Connection | Setup |
|---|---|---|
| Claude Code | MCP (plugin) or desktop app | Plugin: claude plugin install cortex@cortex-marketplace |
| Codex | MCP | codex mcp add cortex -- cortex.exe mcp --agent codex |
| Cursor | MCP | Point MCP server at cortex mcp --agent cursor |
| Factory Droid | MCP | cortex mcp --agent droid |
| Aider | CLI / HTTP | cortex boot --agent aider |
| Custom tools | HTTP | Three endpoints: /boot, /recall, /store |
| Local LLMs | HTTP / MCP | Same protocol, any runtime |
Full setup guide: Info/connecting.md
Desktop app (Control Center)
Download from the release page. The Control Center manages daemon lifecycle for you.
| Platform | Desktop installer | Daemon archive |
|---|---|---|
| Windows | .exe (NSIS installer) |
.zip |
| macOS | .dmg |
.tar.gz |
| Linux | .AppImage / .deb |
.tar.gz |
From source
git clone https://github.com/AdityaVG13/cortex.git
cd cortex/daemon-rs
cargo build --releaseClaude Code plugin
claude plugin marketplace add AdityaVG13/cortex
claude plugin install cortex@cortex-marketplaceThe plugin attaches to a running Cortex runtime. If Cortex is not ready, it reports APP_INIT_REQUIRED; open Control Center or start the local runtime, then retry.
Cortex enforces a single-daemon invariant: only one daemon process runs at a time.
| Mode | How it works |
|---|---|
| Desktop app | Control Center owns the daemon. Restart and monitor from the app. |
| CLI | cortex serve starts the daemon. Exits cleanly if one is already running. |
| Plugin | Attach-only MCP bridge. It connects to the running app/service daemon and does not silently spawn a second daemon. |
Default bind: 127.0.0.1:7437. Non-loopback binds require TLS. Auth token at ~/.cortex/cortex.token.
If using the Control Center, manage the daemon from there. Do not run a second cortex serve alongside it.
After installing, verify the product path:
cortex status --jsonWindows:
powershell -ExecutionPolicy Bypass -File scripts\first-run-smoke.ps1macOS / Linux:
bash scripts/first-run-smoke.shDevelopment build verification
# Daemon unit tests
cargo test --manifest-path daemon-rs/Cargo.toml
# Desktop test suite
npm --prefix desktop/cortex-control-center test
# Lifecycle smoke test
npm --prefix desktop/cortex-control-center run verify:lifecycle:dev
# Security audit
npm audit --omit=dev --audit-level=high
cargo audit| Document | Covers |
|---|---|
| Connecting | Setup, MCP, HTTP, auth, troubleshooting |
| Architecture | Codebase map, entry points, data flow, config, tests |
| MCP Tools | All 28 MCP tool definitions and parameters |
| Research | Papers, inspirations, adaptation notes |
| Roadmap | What shipped, what's planned, and why |
| Security | Threat model, auth rules, vulnerability reporting |
| Team mode | Shared-server setup for engineering teams |
| Contributing | Development setup and PR guidelines |
CLI reference
| Command | Description |
|---|---|
cortex serve |
Start the daemon |
cortex --help |
Full command reference |
cortex doctor |
Run diagnostics |
cortex paths --json |
Show file and port paths |
cortex plugin ensure-daemon |
Ensure daemon health (plugin mode) |
cortex plugin mcp |
MCP stdio bridge to HTTP API |
cortex setup --team |
Initialize team mode and generate API keys |
cortex export |
Export data (json or sql) |
cortex import |
Import from a previous export |
cortex admin rollback --session-id <id> |
Soft-delete a session's memory writes (dry-run default; --apply to persist) |
Cortex defaults to localhost-only access with bearer-token auth.
Full threat model, auth rules, and vulnerability reporting: Info/security-rules.md
💾 How much disk space does Cortex use?
The daemon binary is ~30 MB. The SQLite database grows with usage. A real install with 286 memories and 493 decisions uses ~386 MB after compaction. The ONNX embedding model (~50 MB) downloads on first run.
🤖 Can multiple agents write to Cortex at the same time?
Yes. SQLite WAL mode handles concurrent reads and serialized writes. Each agent maintains its own session while sharing the same memory. Conflict detection handles contradictions automatically.
🔒 Does Cortex send any data externally?
No. In solo mode, Cortex runs entirely on localhost. No telemetry, no phone-home, no cloud sync. Team mode sends data only to the configured team server over your network.
🔄 What happens if the daemon crashes mid-session?
The MCP proxy detects daemon death and restarts automatically (bounded to 3 attempts with backoff). SQLite WAL mode ensures no data corruption. Sessions survive transient crashes.
🧹 How do I reset Cortex to a clean state?
Delete
~/.cortex/cortex.db and restart the daemon. A new empty database and auth token are generated. Settings and model files are preserved.
Built by
☕ Support Cortex · Research · Connecting · Security · Contributing · Code of Conduct · Changelog · MIT License





