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
| Host | Skills copied to | Hooks and agent | MCP 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 inimport_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