Claude Code memory, from your own Markdown notes.
Okto Neuron gives Claude Code a knowledge graph built from a folder of Markdown notes, running on your machine. The installer registers it as an MCP server. Claude Code can then ask questions, explore the graph and ingest new notes, and each answer can cite the file and byte range behind its claims.
Five MCP tools, one bearer token.
Each tool's first docstring line, unchanged.
| Tool | What it does |
|---|---|
ask | Answer a question grounded in the knowledge graph, with citations. |
explore | Drill into the graph around a topic, then walk outward by node id. |
remember | Ingest a source and autonomously curate it into the graph. |
list_vaults | List the vault NAMES this server can reach, so you can pick one. |
init_vault | Create one application-managed named vault without selecting it. |
Install, check, then ask with sources.
-
Step1
Install
$curl -fsSL https://raw.githubusercontent.com/OktoLabsAI/okto-neuron/main/install.sh | bashThe installer starts one daemon (UI and REST on 7777, MCP on 8201) and registers it with
claude mcp addat user scope. Linux; macOS not yet verified on 0.3.0. -
Step2
Check the registration
$claude mcp get okto-neuronAfter adding the entry, the installer runs the same check and stops with an error if the entry does not verify. If
claude mcp additself fails, it prints a warning and finishes, so run the check yourself. -
Step3
Register by hand
If you set
OKTO_NEURON_NO_MCP=1, or registration failed:$claude mcp add --scope user --transport http okto-neuron http://127.0.0.1:8201/mcp --header "Authorization: Bearer $(head -n1 ~/.okto-neuron/daemon-7777.token)"The token lives in
~/.okto-neuron/daemon-7777.token. Treat it like a password. -
Step4
Pick a vault per project
Write
{"vault": "<name>"}to a.okto-neuron-vaultfile at the project root. Theasktool's own description tells Claude Code to look for this file and pass the name it pins.Create vaults in the Web UI at
http://127.0.0.1:7777or withinit_vault. -
Step5
Add notes
Ask Claude Code to remember a file, for example: “Remember decisions/0012-queue-backend.md in okto-neuron.” Or use the Add view in the Web UI. Ingest reads
.md,.markdownand.txt. -
Step6
Ask with sources
Claude Code calls
askwithinclude_sources=true. Checksynthesis_statusfirst:okis the only success value.{ "text": "On 2026-03-04 the team chose Redis Streams for the job queue, ...", "retrieval": { "synthesis_status": "ok", "finish_reason": "stop", "vault": "platform-notes" }, "sources": [ { "path": "decisions/0012-queue-backend.md", "byte_start": 880, "byte_end": 1364, "content_hash": "sha256:7c0e...91af" } ] } -
Step7
Long ingests and client timeouts
A long document can take many minutes to ingest with a local model, and an MCP client can stop waiting for the call before it returns. If the call times out, the daemon keeps working and finishes. Check the vault before sending the same file again.
Questions about Claude Code memory.
Does this replace CLAUDE.md?
No. CLAUDE.md holds instructions Claude Code loads every session. Okto Neuron is a graph Claude Code queries when it needs a fact from your notes.
Does it work with other MCP clients?
The installer wires Claude Code. The server speaks MCP over HTTP with a bearer token; other clients are not tested.
Does it need an LLM?
For ingest and for written answers, yes. The default endpoint is http://127.0.0.1:8123/v1, a server you run. If no model is configured, ask returns synthesis_status: no_llm with the retrieval hits as citations. If a model is configured but unreachable, it returns provider_error. explore makes no LLM call.
Does anything leave my machine?
Only these: LLM calls to the endpoint you configure, the installer's downloads, and the embedding model download when fastembed does not already have it cached. Two more are optional and happen only when you set them up: a remote Neo4j you explicitly allow, and LLM call traces if you opt in to MLflow. Your text is embedded locally. If your LLM endpoint is hosted, the text sent to it leaves the machine. There is no analytics in the shipped package.
See it answer from a real note.
Prerelease 0.3.0. Free to run locally. No account required.