memtool
A memory bank distilled from coding-agent session history, served over MCP.
memtool reads the transcripts your coding agent already writes, extracts the
decisions, failures, knowledge and open threads buried in them, and files each
one as a record that cites the exact turn it came from. The bank is plain
Markdown on disk — greppable, diffable, and readable without this tool.
The CLI is the product. The MCP server and the skills are shells over it.
Install
pip install convo-mem # the pipeline
pip install "convo-mem[mcp]" # ...plus the retrieval server
The command is memtool. The distribution is convo-mem because an unrelated
package already holds memtool on PyPI — and holds the memtool import name
with it, so sharing either would collide in site-packages.
From a checkout, for development:
pip install -e ".[mcp]"
Use
memtool status # what project, sessions and bank this dir resolves to
memtool init # build a bank from session history
memtool lint # nightly sweep: revisit triggers, clustering, views
memtool verify --calibrate 20 # model triage of the review queue
memtool mcp # the MCP retrieval server (stdio; blocks)
memtool skills install # put the six skills where your agent looks
memtool <command> --help
Every command derives its project from the current directory (the git root, or
the main repo when you are in a worktree) and its bank from
<project>/memory, prints what it resolved and where each value came from, and
accepts --project PATH to operate on another project. .memconfig.yaml
overrides any of it and is never required.
Work directories (.memtool-init/, .memtool-verify/, …), the stripped
transcript corpus and the chunk corpus live under the current directory.
MEMTOOL_HOME overrides that if you want them somewhere fixed.
MCP
Any MCP client can read the bank. Four tools: list_sessions,
search_session, read_session, get_record — every response capped at ~4k
estimated tokens, paging anchors instead of silent truncation.
{
"mcpServers": {
"memtool": {
"command": "memtool",
"args": ["mcp"],
"_comment": "or zero-install: uvx --from 'convo-mem[mcp]' memtool mcp",
"env": { "MEMTOOL_PROJECT": "/path/to/your/project" }
}
}
}
--project, --bank and --stripped work as flags too; MEMTOOL_PROJECT,
MEMTOOL_BANK and MEMTOOL_STRIPPED are the environment equivalents, since
clients configure servers through either. Resolution is reported on stderr —
stdout is the protocol.
Skills
Six Agent Skills ship in the package: recall, related, remember,
status, unblock, update. recall is the guardrail — it checks the bank
before you explore an idea, rather than after.
memtool skills list # where each client looks, what is there
memtool skills install # -> .agents/skills (Cursor reads it too)
memtool skills install --client claude # or claude | cursor | codex | all
memtool skills install --client all --global
One source, copied on demand. list distinguishes current from stale,
because a drifted copy an agent still follows is the failure worth catching.
Running from a checkout without installing
PYTHONPATH=src python -m convo_mem.cli <command>
Requirements
Python 3.11+, PyYAML and zstandard (pruned sessions are read back through the
zstd archive). The [mcp] extra takes mcp>=1.2 and works on both SDK major
versions: 2.x renamed FastMCP to MCPServer and removed the old import
path, so the server accepts either. Verified against 1.29.1 and 2.1.0.
The extraction pipeline calls Claude models and is calibrated against specific ones; reading a bank over MCP has no such dependency.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file convo_mem-0.1.0.tar.gz.
File metadata
- Download URL: convo_mem-0.1.0.tar.gz
- Upload date:
- Size: 377.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3492169d33e80a9e7892cd6583e3998d9cf3f72aba35529f5cb1efca9b98f27a
|
|
| MD5 |
eb6d71533c31a770f858a67ba399792a
|
|
| BLAKE2b-256 |
600efaf92602c4aa38b5a339db209d8d67c7688d5e4e1ebade735005d2934ca4
|
File details
Details for the file convo_mem-0.1.0-py3-none-any.whl.
File metadata
- Download URL: convo_mem-0.1.0-py3-none-any.whl
- Upload date:
- Size: 267.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07c3651cdd1ac0044fd79b4ca5bcbc3e6dec1c9d7005d5bf3b9e0aded099f83a
|
|
| MD5 |
89f9501c0f646b5f9c5f199a0c724166
|
|
| BLAKE2b-256 |
d70a6f6a62022ee4285d2582f2b4eabc8f55e818398d313d2596b94073d41e91
|