Gives Claude a local, SQLite-backed memory that persists across conversations. Instead of repasting architecture decisions and schemas into every chat, you initialize a cartridge, capture notes via a global hotkey or CLI, and Claude searches it automatically through MCP's search_memory and store_memory tools. The standout piece is the temporal causal reasoning engine, which traces cause-and-effect chains through your notes rather than just returning keyword matches. It scored 100% on temporal reasoning benchmarks by building a graph of decisions, refactors, and incidents, then walking causal paths with stability scoring. Everything stays local with zero API costs. Best for codebases where context accumulates faster than you can document it.
llm-kosh is a local-first memory cartridge for MCP-compatible AI clients.
It gives your agents durable memory without handing your workspace to a hosted
memory service.
Think of it as a structured, inspectable memory layer for agents:
The core project is usable now:
The remaining work is release polish for Windows, macOS, and Linux packaging.
Python 3.10 or newer is required.
python -m pip install --upgrade llm-kosh
llm-kosh install --yes
llm-kosh status
That installs the package, creates the default cartridge at
~/.llmkosh/cartridge, configures local defaults, and registers the supported
desktop integration where possible.
To manage the background service:
llm-kosh service start
llm-kosh service status
llm-kosh service stop
If you want to work in a custom cartridge location, set the root explicitly:
llm-kosh --root ./my-cartridge init --owner "Local User"
llm-kosh --root ./my-cartridge add --kind note --title "First memory" --body "Hello"
llm-kosh --root ./my-cartridge query "Hello"
There are three folders worth knowing:
--root or LLMKOSH_ROOTreceipts/, intake/, and any configured external drop foldersIf you drop files into the cartridge’s intake areas, the service can process
them asynchronously. If you configure external folders through
[daemon].watched_directories, the service can absorb those too.
llm-kosh --root ./my-cartridge mcp-server
The MCP server starts read-only.
Enable stronger capabilities only for clients that should be allowed to write, mutate, or export private context:
llm-kosh --root ./my-cartridge mcp-server --allow-write
llm-kosh --root ./my-cartridge mcp-server --allow-write --allow-mutate
llm-kosh --root ./my-cartridge mcp-server --allow-private
You can also run MCP over local HTTP:
llm-kosh --root ./my-cartridge mcp-server --http --port 8000
# endpoint: http://127.0.0.1:8000/mcp
python -m pip install "llm-kosh[watch]" # filesystem events
python -m pip install "llm-kosh[server]" # FastAPI service
python -m pip install "llm-kosh[semantic]" # local vector search
python -m pip install "llm-kosh[ingest]" # document conversion helpers
python -m pip install "llm-kosh[all]" # all optional features
MCP support is included in the base installation.
python -m pip install -e ".[server,watch,ingest]"
python -m pytest -q
If you are changing packaging or release behavior, also run:
python -m build
python -m twine check dist/*
See SECURITY.md and docs/SECURITY.md for boundaries and limitations.
The Electron desktop app is packaged separately from the Python package. Local developer builds and Windows installer smoke tests are supported. Public GA desktop distribution still requires verified Windows code signing and macOS Developer ID signing/notarization.
For the current release posture across package, MCP, service, and desktop, see GA_READINESS.md.
Native C++ math acceleration is optional. Set LLM_KOSH_BUILD_NATIVE=1 and
install pybind11 before building if you want to test it. Release wheels use
the portable pure-Python fallback.
Licensed under the MIT License.
CARTRIDGE_WORKSPACE*Path to the local folder llm-kosh should use as its memory cartridge root.
hovecapital/read-only-local-postgres-mcp-server
cocaxcode/database-mcp
io.github.infoinlet-marketplace/mcp-mysql
io.github.cybeleri/database-admin
io.github.yash-0620/postgres-mcp-secured