Memoosea dual-path memory system for proactive agents

Source on GitHub

Install

Memoose is a Python package. Install it once and you have the CLI, the Python library and the MCP server; wiring it into an agent host is one more command.

Install the package

Needs Python 3.11 or newer and nothing else. Pick one:

pip install memoose            # any Python
pipx install memoose           # an isolated install, the `npm install -g` of Python
uvx memoose --help             # with uv, no install step at all

First facts

memoose remember "Bao:Person --owns--> auth-service:System" -e "user said 2026-09-18"
memoose recall "who owns auth"
memoose view                   # the knowledge graph in your browser, one HTML file, nothing uploaded

A fact is source[:Type] --relation--> target[:Type]. The :Type is needed only the first time an entity is seen. Memory lives in ~/.memoose/<dataset>.sqlite, one dataset per project plus a user dataset for facts that hold everywhere; see Configuration.

Install into a host

This gives the agent the skills (when to recall, how to extract, how to judge a contradiction), and on Claude Code the hooks and the memory-keeper subagent:

memoose install claude               # or: codex | opencode | cursor
memoose install claude --project .   # project scope instead of user scope
memoose install codex --mcp          # also register the MCP server, for an agent without a shell
memoose status                       # what is installed where

install copies the skills in; on Claude Code it also copies the hooks beside the settings file, registers them there, and drops the agent into agents/. No MCP server is wired unless you pass --mcp: the skills teach the CLI, which costs nothing until it runs. uninstall reverses all of it. Then restart the host, because hooks and MCP servers are read at startup. The MCP path needs uv on the machine; the CLI does not. If the memoose plugin is installed, hooks and agent are skipped: the plugin already supplies them.

What each host gets

HostSkills copied toHooks and agentMCP config (with --mcp)
Claude Code.claude/skills/memoose*.claude/memoose/hooks/, registered in .claude/settings.json; .claude/agents/memory-keeper.md~/.claude.json (user) or .mcp.json (project)
Codex.agents/skills/memoose*none~/.codex/config.toml
OpenCode.config/opencode/skills/memoose* (user) or .opencode/skills/memoose*none~/.config/opencode/opencode.jsonc or opencode.jsonc
Cursor.cursor/skills/memoose*none~/.cursor/mcp.json or .cursor/mcp.json

User scope is the default and is usually what you want: memory follows you into every project, with a separate dataset per project directory. Use --project . when a repository should carry its own Memoose configuration for everyone who checks it out.

As a Claude Code plugin

On Claude Code, install the plugin instead. It is the only route that also loads the hooks and the memory-keeper subagent, and it keeps one copy of everything. Inside Claude Code:

/plugin marketplace add AndrewNgo-ini/memoose
/plugin install memoose@memoose

The plugin launches the server with uvx memoose serve, so it needs uv.

Optional extras

fastembed
Real local embeddings for the vector channel of hybrid retrieval. Without it, Memoose uses a keyless hashed fallback, which still needs no model download and no key. Enable with pip install "memoose[fastembed]".
ontology
rdflib, for full OWL/RDF/Turtle parsing in import_ontology. A Turtle/RDF-XML fallback parser is built in, so this is only needed for exotic ontology files. pip install "memoose[ontology]".

Verify it works

From the shell, memoose status shows what landed. In the host, ask the agent to run two commands:

memoose datasets     # which dataset is this project, and which embedder is in use?
memoose ontology     # entity types, functional relations, store stats

If they answer, the core is live and every capability is available. If the agent cannot run a shell, install with --mcp and ask it to call list_datasets instead. For the automatic parts, run the memoose-onboard skill. It checks each one against the host you are actually on and reports what it found.

From a checkout

For development or to run the latest pre-release:

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 .                  # Claude Code: skills, hooks and server from the checkout
uv sync --extra fastembed              # local embeddings (a keyless hashed fallback is used otherwise)
uv sync --extra ontology               # full RDF parsing
uv run pytest                          # the suite