Setup guide · Claude Code Prerelease 0.3.0 · Linux · macOS not yet verified on 0.3.0 · Not on PyPI yet

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.

01 · What Claude Code gets

Five MCP tools, one bearer token.

Each tool's first docstring line, unchanged.

ToolWhat it does
askAnswer a question grounded in the knowledge graph, with citations.
exploreDrill into the graph around a topic, then walk outward by node id.
rememberIngest a source and autonomously curate it into the graph.
list_vaultsList the vault NAMES this server can reach, so you can pick one.
init_vaultCreate one application-managed named vault without selecting it.
02 · Setup

Install, check, then ask with sources.

  1. Step1

    Install

    $ curl -fsSL https://raw.githubusercontent.com/OktoLabsAI/okto-neuron/main/install.sh | bash

    The installer starts one daemon (UI and REST on 7777, MCP on 8201) and registers it with claude mcp add at user scope. Linux; macOS not yet verified on 0.3.0.

  2. Step2

    Check the registration

    $ claude mcp get okto-neuron

    After adding the entry, the installer runs the same check and stops with an error if the entry does not verify. If claude mcp add itself fails, it prints a warning and finishes, so run the check yourself.

  3. 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.

  4. Step4

    Pick a vault per project

    Write {"vault": "<name>"} to a .okto-neuron-vault file at the project root. The ask tool'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:7777 or with init_vault.

  5. 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, .markdown and .txt.

  6. Step6

    Ask with sources

    Claude Code calls ask with include_sources=true. Check synthesis_status first: ok is 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" }
      ]
    }
  7. 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.