Local-first AI memory cartridge with persistent MCP memory for Claude via SQLite FTS5.
SaferSkills independently audited llm-kosh (MCP Server) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<!-- mcp-name: io.github.rastogivaibhav/llm-kosh -->
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 statusThat 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 stopIf 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-serverThe 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-privateYou can also run MCP over local HTTP:
llm-kosh --root ./my-cartridge mcp-server --http --port 8000
# endpoint: http://127.0.0.1:8000/mcppython -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 featuresMCP support is included in the base installation.
python -m pip install -e ".[server,watch,ingest]"
python -m pytest -qIf you are changing packaging or release behavior, also run:
python -m build
python -m twine check dist/*data at rest needs encryption.
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.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.