Zephr
Documentation

Everything you needto run Zephr.

Install from source, configure an MCP client, and read the eight-tool contract — plus an honest account of what is not shipped yet.

build from source·Linux x64·managed cloud planned
Getting started

What you need before you begin.

Zephr is an MCP evidence memory. The local mode runs entirely on your machine over stdio JSON-RPC, storing evidence in a single SQLite file scoped by worktree.

Zephr stores evidence in one SQLite file and exposes it to an agent through the Model Context Protocol. Nothing leaves your machine in local mode: the server speaks stdio JSON-RPC to the client that launched it, and the database is a file you own.

Before you install, confirm the three prerequisites above. The only one that is easy to get wrong is Node — the workspace pins Node 24, and a mismatched runtime fails at build rather than at first tool call.

Node.js 24.x

CI enforces Node 24; engines.node is >=24 <25.

pnpm

The workspace installs with pnpm install --frozen-lockfile.

An MCP client

Claude Code, Cursor, or any stdio JSON-RPC MCP consumer.

Press Escape to clear the filter.

Install

Clone, install, and build.

Zephr is not yet published to npm. The working install path is build-from-source.

Clone the repository and build the workspace. Requires Node.js 24.x and pnpm; Linux x64 is the only CI-proven platform today.

git clone https://github.com/DigitalSoftDistribution/zephr.git
cd zephr
pnpm install --frozen-lockfile
pnpm --filter @zephr/protocol build && pnpm --filter @zephr/core build
pnpm --filter @zephr/mcp-server build && pnpm --filter @zephr/mcp build

The build produces apps/mcp/dist/main.js, which is the entry point your MCP client launches. There is no global install step and no published package, so the absolute path to that file is what you configure in the next section.

npm distribution

npx not yet shipped

There is no published package to run with npx today. Clone the repository and build the workspace, then point your client at the built entry point.

Platform support

Linux x64

Linux x64 is the only CI-proven platform today.

Windows / macOS

Windows / macOS

Not claimed supported yet; packaging proof comes first.

Managed cloud

Managed cloud

Hosted sync across machines is planned. Today the working path is the local, single-file store.

Configure

Point your MCP client at the built server.

The server runs over stdio and needs a database path — it falls back to an in-memory store when ZEPHR_DB_PATH is unset. Use absolute paths: no npx-published package or global install exists yet.

Add Zephr to your client's MCP server list. Claude Code reads this shape from its settings file; Cursor reads the same shape from its own MCP settings.

{
  "mcpServers": {
    "zephr": {
      "command": "node",
      "args": ["/absolute/path/to/zephr/apps/mcp/dist/main.js", "--stdio"],
      "env": {
        "ZEPHR_DB_PATH": "/absolute/path/to/zephr.sqlite"
      }
    }
  }
}

Both paths must be absolute. ZEPHR_DB_PATH is optional — without it the server falls back to an in-memory store, which is useful for a smoke test but discards everything when the process exits.

One database, scoped by worktree

Zephr opens a single SQLite file and scopes beliefs to a project → repository → worktree hierarchy inside it. The launcher admits a connection to exactly one worktree before any tool call; calls that reach outside the admitted scope are refused.

Tool contract

The eight core tools.

The surface is deliberately small and extensible: new capability routes through action enums or optional arguments on existing tools rather than new tool names.

Destructive operations (zephr_admin purge and migrate) require a capability minted from ZEPHR_ADMIN_TOKEN. Without it, read-only stats still work and the destructive actions are refused.

Keeping the surface at eight names is deliberate. When a tool needs to do more, it gains an action enum or an optional argument rather than a sibling tool, so a client written against this contract keeps working as the product grows.

zephr_remember

Capture a belief with provenance.

zephr_recall

Hybrid lexical + semantic retrieval with abstention.

zephr_why

Explain provenance, versions, and contradictions.

zephr_verify

T1 structural and T2 consistency checks.

zephr_session

Session lifecycle and handoff summarisation.

zephr_rules

Read and write review and contradiction policy.

zephr_status

Service identity, capabilities, and storage stats.

zephr_admin

Capability-gated stats, purge, and migrate.

Clients

Where Zephr runs today.

Capture is always an explicit, consented tool call. Zephr does not scrape editor state, chat history, or project indexes.

Zephr is a server, not a plugin. Every client above talks to the same stdio JSON-RPC process, and every capture is an explicit tool call the agent chose to make — there is no background indexer and no editor-state scraper.

That distinction matters most for Cursor, where the adapter ships as a first-party mapper package rather than something the editor bundles. An operator wires it into the process that brokers tool calls, and Zephr still never reads private editor state.

Claude Code

Adapter shipped

The deepest integration. ClaudeCodeAdapter prefers the admitted scope snapshot, so every tool call is bound to the worktree the launcher admitted.

Cursor

Library, not an editor integration

@zephr/adapter-cursor is a scope-bound mapper you wire into whatever process brokers Cursor’s tool calls. Cursor does not consume the package automatically, and Zephr never reads private editor state.

Any MCP client

Protocol stable

Zephr speaks stdio JSON-RPC MCP. Any consumer that respects the eight-tool contract can connect using the same configuration shape.

Architecture

How retrieval and trust fit together.

Every design decision has a written ADR. The summaries below link to the source documents in the repository.

Retrieval and trust are separate concerns that meet at recall. Lexical and semantic search each produce a ranking; reciprocal rank fusion combines them. The trust layer then decides whether the fused result is answerable at all — and abstains when the evidence is missing, stale, or contradictory.

Because the two layers are separate, a retrieval improvement can never quietly weaken an abstention rule, and an abstention rule can never be satisfied by ranking a weak result higher.

Hybrid retrieval

SQLite with FTS5 for lexical search and sqlite-vec for semantic retrieval, fused by reciprocal rank (RRF).

Provenance chain

Every recalled belief carries a full provenance chain and bi-temporal recording — recall abstains rather than guessing.

Separated capabilities

The store, the read view, and the admin capability are separated per ADR-Z-02; destructive operations need a minted capability.

Scoped by worktree

One SQLite file holds a project → repository → worktree hierarchy. The launcher admits a connection to one worktree before any tool call.

Limitations

What is not shipped yet.

Documentation that hides its gaps is not documentation. These are the constraints that apply to Zephr today.

Each constraint above is a present-tense fact, not a roadmap apology. They are listed here because a reader deciding whether to adopt Zephr needs them before the install step, not after it.

When one of these changes, the badge changes with it — and the change lands in the changelog with a real date and SHA.

npm distribution

Not shipped

Zephr is not published to npm. There is no working npx one-liner and no global install — build from a clone.

Platform support

Linux x64 only

Linux x64 is the only CI-proven platform. Windows and macOS are not claimed supported yet.

Managed cloud

Planned

Hosted sync across machines is planned. Today the working path is the local, single-file store.

Cursor integration

Library only

@zephr/adapter-cursor is a first-party mapper library. It is not bundled into the editor and requires the operator to wire it in.

Walk the whole journey.

The step-by-step guide takes you from a clone to a signed handoff, and the trust page shows the evidence behind every claim on this site.