by grpcer
Local, deterministic, git-native memory for coding agents — one set of Markdown files serves Claude Code, Codex, Gemini CLI, Cursor, and Grok CLI.
# Add to your Claude Code skills
git clone https://github.com/grpcer/ownmemownmem is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by grpcer. Local, deterministic, git-native memory for coding agents — one set of Markdown files serves Claude Code, Codex, Gemini CLI, Cursor, and Grok CLI. It has 57 GitHub stars.
ownmem's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/grpcer/ownmem" and add it to your Claude Code skills directory (see the Installation section above).
ownmem is primarily written in JavaScript. It is open-source under grpcer on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh ownmem against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
Repo-owned. Deterministic. Reviewable.
An open-source AI memory system for coding agents and software repositories. One persistent project memory serves Claude Code · Codex · Antigravity · Cursor · Gemini CLI · Grok CLI.
English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Español · Français · Deutsch · Português (BR)
OwnMem is an open-source coding agent memory system that keeps curated project decisions, constraints, and debugging lessons as reviewable Markdown inside your repository. The same long-term project memory works across agents and sessions, travels with Git, and rolls back with the code it describes.
Its deterministic, Unicode-script-aware BM25F engine ranks memory in
.ownmem/. For the same query, configuration, and compiled snapshot, default
recall returns the same ranking without a model call, network request, or
query-time token cost — in about two milliseconds on the public benchmark.
OwnMem has two pieces. The npm package is the engine: it lives in each
repository as a reviewed devDependency and owns that repository's memory in
.ownmem/. The agent plugin is an optional convenience layer installed
once per machine: it teaches your agent to run the engine, including walking
you through the per-repository setup.
Note: A repository is ready once it has the package and
.ownmem/, however you got there. Start from either piece.
| Fact | OwnMem v0.2.0 |
|---|---|
| Category | Repo-owned project memory for AI coding agents |
| Scope | One software repository; curated engineering knowledge, not chat history |
| Storage | Reviewable Markdown in .ownmem/, versioned with Git |
| Default recall | Deterministic BM25F; 0 model calls and 0 network calls |
| Public benchmark | 100% Recall@1 and 2.46 ms P95 on the locked synthetic benchmark — regression evidence, not real-user accuracy |
| License | Apache-2.0 |
Implementation and release boundaries are documented in Repository architecture.
OwnMem requires Node.js 20 or newer. Three steps, all inside the repository you want to give a memory.
Step 1 — install the engine. It becomes a normal devDependency,
reviewed and pinned like any other:
npm install --save-dev ownmem
Step 2 — initialize this repository. This creates .ownmem/ and the
per-agent adapter files:
npx ownmem init --locale auto --hosts claude,codex --layers dashboard --hook
Step 3 — reopen your agent. Agents discover commands at session start, so everything below appears in the next session, not the one that ran init.
This is the recommended setup — Claude Code and Codex work out of the box and the local console is included. What you have after reopening:
/ownmem <anything you want the memory to do>.ownmem
skill.AGENTS.md,
GEMINI.md), so it follows the memory discipline too — as does every
other agent that reads them.npx ownmem dashboard --open. (The optional plugin below adds
/ownmem:dashboard.)There is no daily setup command — just work as usual. Repeat the three steps once for each repository that should have its own memory.
Only use one agent? Change --hosts claude,codex to --hosts claude or
--hosts codex. Antigravity and Grok CLI read the same AGENTS.md (and,
for Grok, .agents/skills/) files as Codex, so --hosts codex covers both.
Cursor uses --hosts cursor, classic Gemini CLI setups use --hosts gemini,
and --hosts generic works with other agents.
Initialization creates .ownmem/ and adds a small OwnMem section to the
agent's project instructions. It never changes text outside its marked
boundaries.
After setup, there are only two things to remember.
1. Talk to your agent. When you learn something worth keeping, say it in plain language:
"Remember this — the timeout comes from the pool cap, not the worker count. Never raise workers without raising the pool."
Later, ask as naturally as you normally would:
"The staging deploy is hanging again. Check the project memory before you change anything."
The agent handles writing, validation, and recall. You do not need to open
.ownmem/ or run audit and recall yourself. Prefer an explicit command?
/ownmem <request> (Claude Code) and the ownmem skill (Codex) route the
same request through the memory.
2. Open the console when you want an overview. It shows adoption, recall quality, latency, and memory health for this repository, and is available only on your computer at 127.0.0.1:
npx ownmem dashboard --open
That is the whole daily workflow. The audit, manual recall, and feedback
commands are for CI and troubleshooting; normal users do not need to remember
them.
I build Oriveo, a BYOK multi-model AI client shipping on iOS, Android, Web, and desktop — a large codebase I work on every day with coding agents, switching between Claude Code and Codex. Every repository kept accumulating hard-won lessons: debugging root causes, toolchain traps, timing races. And every time the agent, the machine, or a teammate changed, those lessons quietly disappeared, because they lived in one tool's memory on one machine.
Vector and cloud memory services never felt right for this: knowledge about a repository should not need an account, a server, or a per-query bill. So the memory moved into the repository itself. OwnMem is the system I run daily inside the Oriveo codebase — hundreds of curated memories, kept honest by quotas and audits — extracted and rebuilt as a clean public engine.
OwnMem makes four bets, and every design decision follows from them:
.ownmem/: the three-tier memoryThe always-loaded part stays tiny; everything else is read on demand:
| Tier | File | When it is read |
|---|---|---|
| L1 | MEMORY.md |
The index — loaded at the start of every session |
| L2 | MEMORY-<area>.md |
Area sub-indexes — opened when that area is touched |
| L3 | one file per topic | A single lesson each — returned by recall when its triggers match |
A topic file is plain Markdown with a strict, schema-checked frontmatter —
symptoms and phrasings in triggers, proof in evidence (abridged here;
ownmem init scaffolds a complete example):
---
name: pool_cap_timeout
description: staging deploys time out when workers exceed the pool cap
metadata:
type: l