Persistent memory plugin for Kimi Code CLI
Project description
kimi-mneme — Persistent Memory Plugin for Kimi Code CLI
Mneme (Greek: Μνήμη) — the goddess of memory and the mother of the Muses.
This project brings persistent, AI-compressed memory to Kimi Code CLI.
🏷️ Tags: kimi-plugin kimi-cli-plugin kimi-plugins persistent-memory ai-memory coding-assistant
What is kimi-mneme?
kimi-mneme is a Kimi Code CLI plugin that adds persistent memory to your coding sessions. It automatically captures context, compresses it with AI, and injects relevant past observations into future sessions. Never lose track of what you were doing — even after days or weeks.
💡 Looking for Kimi plugins? This is an official-style plugin for the Kimi CLI ecosystem. Install with
uv tool install kimi-mnemeand runmneme bootstrapto get started.
Why kimi-mneme?
- Never lose context — Your coding history survives across sessions, restarts, and even weeks of inactivity
- AI-powered memory — Automatically structures raw tool outputs into searchable observations
- Zero configuration — Works out of the box with Kimi Code CLI
- Privacy-first — Local SQLite storage, no cloud dependencies
- Cross-platform — Windows, macOS, Linux support
Who is this for?
- Developers using Kimi Code CLI who want persistent project memory
- Teams working on complex codebases across multiple sessions
- Anyone looking for
kimi pluginsto extend their CLI workflow - Users of Moonshot AI ecosystem tools
Key Features
| Feature | Description |
|---|---|
| 🧠 Persistent Memory | Context survives across sessions, restarts, and reboots |
| 🤖 AI Structuring | Raw tool outputs → structured observations (title, facts, narrative, concepts) via Kimi API |
| ⚡ Heuristic Fallback | Works without API key — rule-based structuring when Kimi is unavailable |
| 🔍 Smart Search | Full-text (FTS5) + semantic (sqlite-vec) hybrid search across your project history |
| 📊 Progressive Disclosure | 3-layer retrieval: index → timeline → full details (token-efficient) |
| 🖥️ Web Viewer | Real-time memory stream at http://localhost:37777 |
| 🔌 Kimi Plugin Tools | mneme_search, mneme_timeline, mneme_get — AI can query its own memory |
| 🖇️ MCP Server | Claude Desktop, Cursor, Goose integration — 15 memory tools |
| 📝 PROJECT.md | Auto-generated project context from structured observations |
| 🔒 Privacy Tags | 3-layer filtering: strip system content → redact sensitive → deep sanitize |
| 📊 Knowledge Collections | Curate and query project-specific knowledge corpora |
| 🌳 Tree-sitter Analyzer | AST-based code exploration (Python, JS, TS, Rust, Go) |
| 💰 Token Economics | See token savings and read cost per observation |
| ⚡ Zero Config | Install and forget — works automatically |
| 📁 Project Config | Per-project .mneme.json for custom settings |
| 📌 Session Checkpoints | Resume context after Kimi CLI compaction |
| 🔁 Cross-Session Patterns | Auto-detect recurring errors, fixes, decisions |
| ✂️ Truncation Tracking | Record when tool outputs exceed 100K chars |
Quick Start
Install via uv tool (recommended — permanent install)
# Install as a permanent tool
uv tool install git+https://github.com/barrelc/kimi-mneme.git
# Run bootstrap (sets up hooks, plugin, DB, server)
mneme bootstrap
# Start using Kimi CLI
kimi
Why uv tool instead of uvx?
- No cache issues — installed permanently, not temporary
- Faster startup — no re-installation on each run
- Easy updates —
uv tool upgrade kimi-mneme - Commands always available:
mneme stats,mneme server, etc.
Update
# Update to latest version
uv tool upgrade kimi-mneme
# Re-run bootstrap to update hooks and config
mneme bootstrap
Alternative: Install via uvx (temporary, no install)
# One-shot run (slower, re-installs each time)
uvx --refresh --from git+https://github.com/barrelc/kimi-mneme.git mneme bootstrap
⚠️
uvxcaches installations. Use--refreshto force update, or switch touv tool installfor a better experience.
Install via pip
pip install kimi-mneme
mneme bootstrap
What bootstrap does
- Registers hooks in
~/.kimi/config.toml - Installs the Kimi CLI plugin
- Creates the SQLite database at
~/.kimi/mneme/mneme.db - Starts the web server on
http://localhost:37777
Use Kimi CLI normally
kimi
That's it. Every session is automatically captured and indexed. When you start a new session in a project, previous context is automatically injected.
🧩 Kimi Plugin Ecosystem
kimi-mneme is part of the growing Kimi Code CLI plugin ecosystem. Looking for more kimi plugins? This plugin extends Kimi CLI with:
- Persistent Memory — context survives across sessions
- AI Tools —
mneme_search,mneme_timeline,mneme_getcallable by Kimi AI - Web Dashboard — real-time memory viewer at
localhost:37777 - MCP Server — integrate with Claude Desktop, Cursor, Goose
🔍 Search terms:
kimi plugin,kimi cli plugin,kimi plugins,kimi memory,kimi persistent memory,moonshot ai plugin
Search your memory
From within Kimi CLI, the AI can search:
> Search my memory for the auth bug we fixed last week
Or use the web viewer:
open http://localhost:37777
Architecture Overview
flowchart TB
subgraph kimi_cli["🖥️ Kimi Code CLI"]
hooks["🔌 Hooks<br/>13 lifecycle events"]
plugin["🔧 Plugin Tools<br/>3 AI-callable tools"]
prompts["💬 User Prompts"]
end
subgraph core["⚙️ kimi-mneme Core"]
extractor["📥 Extractor<br/>context • checkpoints • patterns"]
compressor["🤖 Compressor<br/>AI semantic summaries"]
injector["📤 Injector<br/>session start • patterns"]
end
subgraph storage["💾 Storage Layer"]
sqlite[("SQLite<br/>sessions • observations<br/>checkpoints • patterns")]
vec["🔍 sqlite-vec<br/>semantic search"]
server["🌐 Web Server<br/>localhost:37777"]
end
hooks --> extractor
plugin --> extractor
extractor --> compressor
compressor --> injector
injector --> prompts
extractor --> sqlite
compressor --> sqlite
injector --> sqlite
sqlite --> vec
sqlite --> server
style kimi_cli fill:#1a1a2e,stroke:#16213e,stroke-width:2px,color:#fff
style core fill:#16213e,stroke:#0f3460,stroke-width:2px,color:#fff
style storage fill:#0f3460,stroke:#e94560,stroke-width:2px,color:#fff
style hooks fill:#533483,color:#fff
style plugin fill:#533483,color:#fff
style prompts fill:#533483,color:#fff
style extractor fill:#e94560,color:#fff
style compressor fill:#e94560,color:#fff
style injector fill:#e94560,color:#fff
style sqlite fill:#1a1a2e,color:#fff
style vec fill:#1a1a2e,color:#fff
style server fill:#1a1a2e,color:#fff
Components
| Component | Purpose |
|---|---|
| Hooks | 13 lifecycle event handlers (SessionStart, PostToolUse, SessionEnd, PostCompact, etc.) |
| Plugin | 3 AI-callable tools: mneme_search, mneme_timeline, mneme_get |
| Extractor | Parses observations, detects truncation, creates checkpoints, detects patterns |
| Compressor | Generates semantic summaries via Kimi API (reuses OAuth token) |
| Injector | Injects checkpoints, patterns, and relevant past context at session start |
| SQLite | Stores sessions, observations, summaries, checkpoints, patterns, compaction events |
| sqlite-vec | SQLite extension for semantic similarity search (primary, cross-platform) |
| Chroma | Vector database for semantic similarity search (legacy fallback, Linux/Mac only) |
| Web Server | FastAPI-based API on port 37777 — real-time SSE event stream |
CLI Commands
mneme bootstrap # One-shot setup (hooks, plugin, DB, server)
mneme update # Update hooks and config to latest version
mneme server # Start web server
mneme init # Initialize database only
mneme stats # Show database statistics
mneme cleanup --days 30 # Remove old observations
Per-Project Configuration
Create .mneme.json in your project root:
{
"injection": {
"max_tokens": 1000,
"recency_boost_days": 14,
"include_patterns": true
},
"privacy": {
"exclude_patterns": ["*.local.env", "secrets/"]
}
}
This merges with global config (project values override global).
Documentation
- Installation Guide — Detailed setup and configuration
- Architecture — Deep dive into system design
- Hooks Reference — All 13 lifecycle events explained
- Plugin Tools — How AI queries memory
- Web UI — Using the memory viewer
- Configuration — Settings and environment variables
- Privacy — Excluding sensitive data
- Development — Contributing and hacking
Requirements
- Python: 3.10+
- Kimi Code CLI: 1.41+
- OS: Windows, macOS, Linux
- Optional: No API key needed — reuses Kimi CLI OAuth token
License
GNU Affero General Public License v3.0 (AGPL-3.0)
Copyright (C) 2026 kimi-mneme contributors.
This project is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Acknowledgments
Inspired by the concept of persistent AI memory. Built for the Kimi CLI ecosystem with love for open-source tooling.
"Memory is the scribe of the soul." — Aristotle
Project details
Release history Release notifications | RSS feed
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 kimi_mneme-2.0.4.tar.gz.
File metadata
- Download URL: kimi_mneme-2.0.4.tar.gz
- Upload date:
- Size: 2.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26985627cc39b6102fa17197b03afe8ec171811154cdbf6d7eeceb3f932af76b
|
|
| MD5 |
598e82c13158e1afff689c81e95debfb
|
|
| BLAKE2b-256 |
e7c85b456e4020720353ccdf69cf00c05e02086c2ce0612d909777e651faf489
|
File details
Details for the file kimi_mneme-2.0.4-py3-none-any.whl.
File metadata
- Download URL: kimi_mneme-2.0.4-py3-none-any.whl
- Upload date:
- Size: 134.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1af57e943a85450958dd8779fdf6a7b6a42e6b00926ac04a918191d49f8dc013
|
|
| MD5 |
879eb0b79325aebff2bb91502b2be322
|
|
| BLAKE2b-256 |
6ce3abebb7b048bede7a8f115ca6d5e7097affed65aad2cee58fdd36ab4ccdd9
|