A dual-path memory system for proactive agents. Facts and procedures in a local knowledge graph, exposed as a CLI, MCP tools and skills. No API key.
# Add to your Claude Code skills
git clone https://github.com/AndrewNgo-ini/memooseSee how memoose compares with popular alternatives.
memoose is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by AndrewNgo-ini. A dual-path memory system for proactive agents. Facts and procedures in a local knowledge graph, exposed as a CLI, MCP tools and skills. No API key. It has 50 GitHub stars.
memoose'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/AndrewNgo-ini/memoose" and add it to your Claude Code skills directory (see the Installation section above).
memoose is primarily written in Python. It is open-source under AndrewNgo-ini 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 memoose against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ 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.
Memoose is a dual-path memory system for proactive agents. Memory survives the session and survives switching agents. It is found two ways: by search when the agent asks, and by recommendation when it does not. An engine keeps a typed knowledge graph on your machine; a harness of skills, hooks and tools teaches the model your host already runs how to use it.
It is built for long-lived project work: decisions, conventions and ownership facts that must stay correct for months, each with an evidence pointer back to its source.
Memory is upkeep. Facts are written as they surface. memoose maintain sweeps the store into
one worklist of things to judge and decides nothing itself; a model makes every call, on a small
subagent that costs neither your attention nor the conversation's turns.
Search and recommendation are the two ways anything gets found. Search answers a question you
thought to ask. Recommendation surfaces what you did not. A search-only memory stays silent unless
the agent already suspects something is there. Memoose does both: recall, and a hint before each
prompt.
The context an agent most often lacks is procedural. It knows what things are and still runs steps out of order, skips a check, or repeats a step that already failed. Memoose stores procedures as a graph, after Google's Procedural Graphs: steps as nodes, transitions carrying a condition, an advice and a pitfall. The agent declares where it is, reads the transitions two hops out, and decides. When the session ends with an outcome, every transition it took counts it, so the next run learns from the last.
Read more: Vision.
Python 3.11 or newer, nothing else:
pip install memoose # or: pipx install memoose, or uvx memoose --help
Store a fact, ask a question, look at the graph:
memoose remember "Bao:Person --owns--> auth-service:System" -e "user said 2026-09-18"
memoose remember "auth-service --uses--> PostgreSQL:Technology" -e "repo://src/db.py#L1-L20"
memoose recall "who owns auth and what does it run on"
memoose view # the graph in your browser, nothing uploaded
A fact is source[:Type] --relation--> target[:Type]. Give the :Type the first time an entity
appears; after that the name is enough. Every fact takes -e/--evidence, --valid-from and
--desc. Later:
memoose maintain # one worklist: conflicts, duplicates, sessions to distil
memoose history auth-service # every change to an entity or fact, by whom and why
Memory lives in ~/.memoose/<dataset>.sqlite: one dataset per project plus a user dataset for
facts that hold everywhere. MEMOOSE_DATA_DIR moves it. Full command table under CLI.
The CLI is enough for an agent with a shell. To add the skills, and on Claude Code the hooks and the
memory-keeper subagent:
memoose install claude # or: codex | opencode | cursor
memoose status # what is installed where
install copies the skills into the host. On Claude Code it also registers the hooks in
~/.claude/settings.json and drops the agent into ~/.claude/agents/. It is user-scoped;
--project . scopes it to one repository; uninstall <host> reverses it. No MCP server is wired
unless the agent has no shell: install <host> --mcp adds uvx memoose serve, which needs
uv.
On Claude Code the plugin is the simplest route and keeps one copy of everything:
/plugin marketplace add AndrewNgo-ini/memoose
/plugin install memoose@memoose
git clone https://github.com/AndrewNgo-ini/memoose.git && cd memoose && uv sync
uv run memoose install claude # skills, hooks and agent from this checkout
claude --plugin-dir . # or load the checkout as a plugin
uv sync --extra fastembed # local embeddings (a keyless hash fallback is used otherwise)
uv sync --extra ontology # full RDF parsing
uv run pytest
Onboarding. Ask your agent to onboard Memoose. The
memoose-onboard skill checks what works on this host,
installs what is missing, then fills the project's memory from its README, docs and git log so the
next session starts with context.
Two layers. A deterministic engine: a knowledge graph behind a CLI and 26 MCP tools, no model. A harness of skills, hooks and a subagent that carries the judgment, run by the model your host already has.
26 MCP tools; every capability is a tool call on any MCP host.
| area | tools |
|---|---|
| ontology | describe_ontology, add_entity_type, import_ontology (OWL/RDF/Turtle), declare_functional_relations |
| write | remember, mark_contradiction, supersede, merge_entities, cross_connect, set_bucket_summary, forget |
| read | recall, guidance, contradiction_candidates, history, memify_candidates, global_context, list_datasets |
| sessions | session_start, session_add_turn, session_set_context, session_get, session_timeline, publish_lessons, session_end |
| skill | teaches the host model |
|---|---|
memoose |
when to recall; how to extract facts with evidence, store procedures, shape the ontology |
memoose-sessions |
the working loop: position and guidance, context sections, outcome, distilling lessons |
memoose-upkeep |
judging what the store surfaces: contradictions, duplicates, connections, stale summaries |
memoose-onboard |
check what works, install what is missing, then fill this project's memory from its docs and history |
Memory operations, the same ones the tools expose:
| command | what it does |
|---|---|
memoose recall "who owns billing" |
search memory; --mode, --limit, --superseded, --json |
memoose remember "bao:Person --owns--> auth:System" |
store a fact; --desc, -e, --valid-from; --when, --do, --avoid on a transition; --stdin for a JSON batch |
memoose guidance "run the test suite" |
what comes next from a procedure: transitions two hops out, with how past runs ended |
memoose history auth-service |
the provenance ledger for an entity or fact |
memoose contradictions [names] |
hotspots and open contradictions to judge |
memoose ontology · memoose datasets · memoose context |
entity types and stats · memory scopes · global context |
memoose session start|turn|context|get|timeline|lessons|end |
session lifecycle; turn --at <procedure> declares position, end --outcome records how it went |
memoose maintain |
the periodic pass: everything that needs judging, in one worklist |
memoose dismiss <key> --reason "..." |
decline a candidate so it is not proposed again |
memoose view |
the graph in your browser as one HTML file (--superseded draws history dashed) |
memoose forget --entity X |
delete an entity, fact, session or dataset |
memoose tool <name> --stdin |
any remaining tool, arguments as JSON on stdin |
Output is compact text; over --max-inline (2000 chars) it goes to a file whose path is printed.
--json gives the exact tool payload, never cut. Setup:
| command | what it does |
|---|---|
memoose install <host> |
skills, hooks and the agent into a host (--project, --mcp) |
memoose uninstall <host> |
reverse it |
memoose status |
what is installed where |
memoose serve |
the stdio MCP server, for a host that launches one |
Memoose has no model of its own, so its score is inseparable from the model driving it. We report the number that matches how it is meant to run: a small, fast model throughout.
LoCoMo is the standard conversational-memory benchmark: long multi-session conversations, then questions about them. One model answers from what the memory system retrieves; another grades. We run mem0's protocol with their prompts verbatim, so the memory system is the only difference.
Claude Haiku 4.5 as answerer and judge, all 1,540 questions: 90.4% correct at 4,699 mean prompt tokens ($88.55, September 2026). A reference point, not a competitive entry.
| category | questions | score |
|---|---|---|
| single-hop | 841 | 93.5 |
| temporal | 321 | 89.7 |
| multi-hop | 282 | 88.7 |
| open-domain | 96 | 70.8 |
Open-domain is the weak category: its gold answers are single turns that never rea