Open-source developer preview

Durable context for every AI coding session.

Coding agents forget between conversations. Memory keeps sessions, decisions, diagrams, and current work in files on your machine, so tomorrow's session starts where today's ended.

  • Local-firstMarkdown source of truth
  • Project-scopedContext stays separated
  • Apache 2.0Open-source license
EchoDesk · Project Dashboard Local
Zharwing Memory dashboard showing an active session, context preview, and graph statistics for the fictional EchoDesk project

Screenshots use EchoDesk, a made-up project built only for these images.

This documentation is on the web. Your memory is not.

Memory runs on your machine — browser UI, desktop app, daemon, CLI, and MCP. This page is just documentation. It never sees your projects.

The problem

Long projects outlive chat windows.

Coding agents are excellent at the current task and unreliable at remembering why a decision was made three sessions ago. Context gets trapped in transcripts, copied into oversized prompt files, or rebuilt manually every morning.

Zharwing Memory separates the agent from the memory. Your coding tool does the work; Memory keeps the project record organized, searchable, and scoped to one project at a time.

One durable project record

What the next session needs to know.

Six things Memory keeps for every project, readable by you and by your agent.

01

Sessions and checkpoints

Record goals, progress, touched files, blockers, and next steps so a future session can resume deliberately.

02

Docs and diagrams

Keep decisions, runbooks, architecture notes, gotchas, and Mermaid diagrams beside the work they explain.

03

Context preview

See exactly what goes into a context bundle, what got left out and why, and roughly what it costs in tokens.

04

Relationship graph

Connect workstreams, sessions, decisions, files, services, packages, and topics in a navigable project map.

05

Search and import

Find prior work quickly and bring existing Markdown documentation or session archives into the same model.

06

Privacy boundaries

Apply visibility rules, never-send patterns, secret scanning, redaction, and explicit review modes.

Product tour

See the project, not another transcript.

Real screens from the browser UI and the native desktop app.

Daily workflow

Memory follows the engineering work.

  1. 1

    Resolve the project

    A small repository pointer lets tools identify the matching local memory project.

  2. 2

    Pick up where you left off

    Read what happened last time — unfinished tasks, blockers, next steps — before starting today’s session.

  3. 3

    Save meaningful progress

    The agent records checkpoints after decisions, milestones, or risky changes—not after every message.

  4. 4

    Leave a clean handoff

    Close with what changed, what remains, and which files matter for the next session.

Quick start from source

Run it locally.

There is no installer yet, so everything runs from the repo. One command starts the daemon and the browser UI together.

Node 22.21 or 24 pnpm 9 Git
Terminal
# Clone and install
git clone https://github.com/zharwing/memory.git
cd memory
corepack pnpm install

# Start the daemon and the browser UI together
corepack pnpm dev

# Open in your browser
http://127.0.0.1:5174/

# Optional: choose where memory is stored by adding
# an untracked .env before you start
#   ZHARWING_MEMORY_ROOT=<absolute-private-store-path>

No token, launcher, or auth setup for normal single-user use. The default store location works without any configuration; if you set ZHARWING_MEMORY_ROOT, keep that folder outside the source repository. Prefer two terminals? dev:daemon and dev:web run the same thing split apart.

01

Open the local Web UI

Visit http://127.0.0.1:5174/. This is the same interface the desktop app runs.

02

Create and link

Create a project, choose its private store, then attach one or more Git repository roots.

03

Connect an agent

Install the MCP configuration for Codex, Claude Code, or another compatible client.

LOCAL WEB UI

Full browser interface

Use Dashboard, Repos, Work, Library, Import, Search, Trash, and Settings in a local browser tab. Start the daemon separately and type or paste absolute folder paths.

NATIVE DESKTOP

The same UI with OS integration

The Tauri window renders the same React application. Its Rust host starts and owns a hardened local daemon, keeps desktop authority outside the webview, and adds native folder Browse buttons.

CLI AND MCP

Terminal and agent access

Drive the same daemon from the zharwing-memory command line, or connect a coding agent over MCP. Neither needs a window open.

Agent integration

Your agent does the work. Memory keeps the record.

Codex, Claude Code, Gemini CLI, local-model tools, and other MCP clients handle the engineering. Memory holds what they need to remember between runs.

MCP daily-memory surface 11 tools
memory.get_startup_state memory.start_session memory.search memory.get_session_detail memory.preview_context_bundle memory.get_context_bundle memory.save_checkpoint memory.close_session + health and recent-session helpers

Project setup, imports, backups, Trash, and graph settings stay in the UI and CLI, where a person can see them.

Local-first by design

Your project memory stays on your machine.

App code and your memory store live in separate places. Markdown files are the real data; the indexes are caches you can rebuild at any time. Nothing here needs an AI provider to work.

Read the security policy →
  • ✓
    Explicit project scope

    Sessions and context resolve to the selected project.

  • ✓
    Visibility controls

    Mark information human-only, private, or never-send.

  • ✓
    Secret safety

    Apply ignore patterns, secret scanning, redaction, and high-risk blocking.

  • ✓
    Recoverable operations

    Project records move through Trash and backup boundaries before permanent removal.

Architecture

One behavior layer, several adapters.

The daemon owns project, session, context, privacy, search, graph, and storage behavior. The browser UI, native desktop app, CLI, and MCP are adapters around the same rules.

Web UIDesktopCLIMCP → Local daemon API → Shared packages → Markdown + indexes
Read the architecture documentation →
Rendered EchoDesk architecture diagram in Zharwing Memory
Mermaid diagrams are stored as Markdown and rendered inside the Library.
Developer preview

What still needs work.

01

You install it from source

There is no installer yet. You clone the repo and run it. Packaging and installer testing are still ahead.

02

Test coverage is uneven

The core has solid automated tests. End-to-end coverage of every browser and desktop workflow does not exist yet.

03

Semantic analysis needs a model

Sessions, search, graph, context, and MCP all work without one. Only the optional relationship analysis needs a local OpenAI-compatible provider.

04

There is no account or sync

Memory is local software. The Web UI runs on localhost, and nothing syncs between machines. If you want your memory on two computers, you move the folder yourself.

Questions

Before you try it.

Is Zharwing Memory an AI coding agent?

No. Your coding agent does the engineering. Memory stores the project context and session history it reads from, and gives you the controls over it.

Does Zharwing Memory have a Web UI?

Yes, and it is the full interface, not a cut-down one. Run corepack pnpm dev and open http://127.0.0.1:5174/ — no token or auth setup for normal local use. The hardened profile, for advanced setups, uses a one-shot bootstrap instead; a daemon token never belongs in browser code. In the browser you type or paste folder paths, since browsers cannot open a native folder picker.

Does my project data go to this website?

No. This is documentation only. Memory runs locally and uses a private store path chosen on your machine.

Do I need a local language model?

No. The core workflow is deterministic. A local OpenAI-compatible provider is optional for assistant summaries and semantic relationship proposals.

Can one Memory project link several repositories?

Yes. A product can link multiple repository roots while preserving one project-scoped memory record.

Which agents can connect?

The repository documents MCP setup for Codex, Claude Code, and Claude Desktop. Other compatible clients can use HTTP or stdio integration.

Open-source developer preview

Stop re-explaining your project every morning.

Read the source, read the docs, and see whether it fits how you work.