Vibe Memory
Vibe Memory stores shared project memory in a neutral .memory/
directory and serves it through both a CLI and an MCP server. The canonical source
of truth is a set of Markdown cards with YAML frontmatter. Agent-specific files are
generated views under .memory/dist/. End-of-task memory maintenance happens
through proposal batches under .memory/proposals/.
Requires Python 3.11 or newer.
Install once globally, then use it in any repository root, similar to how you use git.
The target repository does not need to be a Python project.
Why
- Keep architecture notes, patterns, commands, pitfalls, and conventions portable.
- Generate Codex, Claude Code, Cursor, and OpenCode-friendly outputs from one model.
- Offer a read-only MCP surface for tools that can fetch context dynamically.
Canonical Layout
.memory/
memory.yaml
cards/
architecture.md
...
index.sqlite
proposals/
dist/
Each card is a Markdown document with YAML frontmatter:
---
id: architecture-overview
title: Architecture overview
kind: architecture
summary: High-level system shape
paths: []
tags: [architecture, backend]
priority: 100
updated_at: 2026-03-07T00:00:00Z
targets: [codex, claude, cursor, opencode, generic]
status: active
supersedes: []
---
The API server is the source of truth for writes.
Commands
memory init
memory bootstrap --workspace-id my-project
memory add "Architecture overview" --kind architecture --summary "High-level notes" --body "..."
memory validate
memory list
memory search architecture
memory render codex
memory render claude --format dist
memory suggest-updates --changed-paths "src/api/routes.py" --task-summary "API validation" --implementation-summary "Validate before DB writes"
memory proposals list
memory proposals show <proposal-id>
memory proposals apply <proposal-id>
memory proposals reject <proposal-id>
memory curate --changed-paths "src/api/routes.py" --task-summary "API validation" --implementation-summary "Validate before DB writes" --confirm-apply
memory serve-mcp
memory doctor
Install And Use
Global install is the primary workflow:
pipx install vibe-memory
or:
uv tool install vibe-memory
Then in any repository:
cd /path/to/any-repo
memory init --workspace-id my-project
This works for:
- Python projects
- Node/TypeScript projects
- Go/Rust/Java projects
- mixed or non-Python repos
The only requirement is that the machine running memory has Python available,
because distribution is still Python-package based today.
Project-local install is still supported when a team wants per-repo version pinning:
cd /path/to/repo
uv add vibe-memory
uv run memory init --workspace-id my-project
For MCP clients:
- if
vibe-memoryis installed in the current project, registeruv run --project "$PROJECT_ROOT" memory serve-mcp --root "$PROJECT_ROOT" - if
vibe-memoryis installed globally, registermemory serve-mcp --root "$PROJECT_ROOT" - do not register a repo-local launcher script unless that script exists in the target project
Indexed Query Model
The official indexed query surfaces are:
- CLI:
memory search,memory list,memory show - MCP:
memory.search,memory.list_cards,memory.get_card,memory.get_context
These use .memory/index.sqlite as a derived query engine for fast retrieval.
The canonical durable memory still lives in .memory/cards/*.md.
Examples:
memory search "validation"
memory search "database" --paths "src/api/routes.py"
memory list --path "src/api/routes.py"
memory show architecture-overview
MCP examples:
memory.search(query="validation", paths=["src/api/routes.py"])memory.list_cards(path="src/api/routes.py", view="short")memory.get_card(card_id="architecture-overview")memory.get_context(paths=["src/api/routes.py"])
Release Automation
GitHub Actions workflows live under .github/workflows/:
ci.ymlruns tests and builds distributions on pushes tomainand pull requests.publish-testpypi.ymlpublishes to TestPyPI when triggered manually from GitHub Actions.publish-pypi.ymlpublishes to PyPI when a GitHub Release is published.
These publish workflows are configured for trusted publishing. Before the first
release, register this GitHub repository as a trusted publisher in both PyPI and
TestPyPI for the vibe-memory project and create matching GitHub Environments named
pypi and testpypi.
Notes
.memory/index.sqliteis rebuildable and should not be treated as source of truth..memory/index.sqliteis the derived search/query index used by both CLI and MCP retrieval surfaces..memory/proposals/*.yamlstores pending/applied/rejected/expired proposal batches.- Native files such as
AGENTS.md,CLAUDE.md, and Cursor rules should stay thin and procedural. They should tell agents when to fetch memory, not duplicate the full memory corpus. - Use
memory initfor a new/blank project andmemory bootstrapfor an existing repo with docs or agent rule files. - v1 writes generated outputs only under
.memory/dist/. - Root files like
AGENTS.md,CLAUDE.md,.cursor/rules, and.opencode/*are never modified automatically. - Deprecated cards remain in canonical memory for history but are hidden from search, list, and render output by default.
- Proposal application now includes revision checks, so stale approvals cannot overwrite cards that changed after proposal creation.
- See
docs/DESIGN_CRITIQUE.mdfor the recommended precedence model between native tool files, MCP retrieval, and canonical cards.
Metadata
Release files for vibe-memory 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vibe_memory-0.1.2.tar.gz | 81.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vibe_memory-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 112.2 kB
Release files / vibe_memory-0.1.2.tar.gz
| Download URL | vibe_memory-0.1.2.tar.gz |
|---|---|
| Size | 81.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c830867a82f52721c963e6801d5d2756b3eabbad8c5c08abe7c5905abea44217
|
|
BLAKE2b-256 checksum How to use checksums |
51ac99a5d0cc70c6a0ae0131427086741cd56d8f383ea9940e6b5748822a0920
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 7, 2026.
Transparency logRelease files / vibe_memory-0.1.2-py3-none-any.whl
| Download URL | vibe_memory-0.1.2-py3-none-any.whl |
|---|---|
| Size | 30.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
088a13e2740fe341e8739144f4d0d857cdc792e5496f384e285340b8f2023511
|
|
BLAKE2b-256 checksum How to use checksums |
503b6814edadfae2f97240454b80d0cae981598e5d7d937d475dd3c1759044ad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 7, 2026.
Transparency log