Monet

本地优先、以状态为中心的编码代理记忆——记住你的项目约定和你喜欢的工作方式。100%本地,通过MCP。

文档

Monet · local-first memory for coding agents

Memory should change what youragent does.

The outcome should be the one you meant.

The correction you made once should never need making twice.

The longer you work together, the better it should get at what you want.

Paste this into Claude Code — more agents coming soon:

Set up Monet for all my projects: read https://raw.githubusercontent.com/team-monet/monet/main/harness/bootstrap/install.md and follow it, checking with me at each step.Copy

Star Monet

The outcome you meant

Everyone asks for an apple. Everyone means a different one.

A capable model gives you an outcome. Yours needs the agent to know what you mean — and no first prompt says it all. What you want has to reach the agent while it works. Not before. Not after.

"a nice apple"

"a nice apple"

"a nice apple"

How we chase it

Principles for always. Stages for the moment.

Principles

The few judgments that govern everything. Always in front of the agent. Almost nothing earns this place.

Stages

Everything else binds to a moment. When it arrives, the agent reads the rules that apply. Until then, they cost nothing.

commit release delegate pr

Everything else simply isn't delivered. The fewer things the agent carries, the more seriously it takes each one.

The unicorn

The perfect memory is a unicorn. We chase it anyway.

A memory that always turns intent into action doesn't exist. Models change with every release; no promise survives that. So Monet keeps score: which rule fired, at which moment, what the agent did. One number should fall: how often you repeat a correction.

Nine months of building and breaking led here. Read the retrospective

See it work

The moment arrives. The rules are already there.

Mid-work, the agent recognizes a moment your store has rules for. It reads them, and keeps going — in the direction you set.

agent session

session excerptReplay

you the release branch is green — can you cut 1.4.0?

agent Cutting a release is a moment this store has rules for. Reading them before I touch anything.

stage_lookup · release

release — the rules that bind here

  • Publish the client package only — the engine ships inside it.
  • Bump the version field first; tag only after it's committed.
  • Before publishing, verify the tarball actually carries the new engine.

from your store · read at the moment they apply

agent Version first, then the tag — the order the rules set.

agent Tarball check passes — the new engine is inside. Tagging; the release pipeline takes it from here.

agent Watching the pipeline: build green, publish green. 1.4.0 is live on npm.

agent

1.4.0 is out: bumped, tagged, verified, published.

All three release rules held.

Drawn from a real session — condensed for the page.

with-monet · the harness

One paste. The agent wires itself.

with-monet installs Monet and runs the method: restore at session start, read the rules when moments arrive, record what you correct. This is what turns a generic coding agent into yours.

Star Monet on GitHub

Local-first

Yours — and verifiably so.

  • One store at ~/.monet — plain SQLite you can read, back up, export.
  • Embeddings run on-device. No accounts, no API keys, no cloud.
  • Works offline after the first model download.

Setup may download the local embedding model once. Nothing about your code is uploaded by Monet.

Memory should change what your agent does. Start here.

Star Monet

Free for any project. All of it is open source.