prism-mem
Every coding session leaves behind artifacts. Prism reads them and turns them into structured, reusable knowledge — automatically.
Prism is a post-session knowledge crystallizer for AI coding agents. It reads Claude Code session transcripts and git history, extracts semantic knowledge as triples, links them into a graph, and auto-regenerates the context files every agent reads at session start (CLAUDE.md, .cursorrules, AGENTS.md).
Quickstart
pip install prism-mem
# Configure your LLM provider (one-time setup)
prism config set provider anthropic
prism config set model claude-haiku-4-5-20251001
prism config set api-key <your-api-key>
# Run once after a coding session to extract knowledge and regenerate context files
prism crystallize --project /path/to/your/project
# Install the git hook so it runs automatically after every commit
prism hook install --project /path/to/your/project
# Add as an MCP server so agents can query the knowledge graph directly
claude mcp add prism -- prism serve --project /path/to/your/project
Configuration
Prism uses ~/.prism/config.toml to store your LLM provider settings. Set it up with:
prism config set provider anthropic # or: openai, gemini, ollama, groq, mistral, ...
prism config set model claude-haiku-4-5-20251001
prism config set api-key <your-api-key>
prism config show # verify (api-key is masked)
The provider is validated against LiteLLM's provider list at set-time. Any provider LiteLLM supports works — Anthropic, OpenAI, Gemini, local Ollama models, etc. The model string is passed as provider/model to LiteLLM.
How it works
[git commit]
│
▼
[1] INGEST
Read ~/.claude/projects/<id>/<session>.jsonl + git diff HEAD~1 HEAD
│
▼
[2] EXTRACT
kg-gen → NetworkX graph of (subject, predicate, object) triples
│
▼
[3] STORE + LINK
Embed triples (sentence-transformers, local)
Store in SQLite at ~/.prism/projects/<hash>/graph.db
Connect related triples by cosine similarity (numpy)
Flag contradicted facts as stale
│
▼
[4] GENERATE
Score triples (recency + confidence)
Top 30 → LLM (via LiteLLM) → write CLAUDE.md / .cursorrules / AGENTS.md
Commands
| Command | What it does |
|---|---|
prism config set <key> <value> |
Set provider, model, or api-key |
prism config show |
Show current config (api-key masked) |
prism crystallize --project . |
Full pipeline: ingest → extract → store → generate |
prism hook install --project . |
Write .git/hooks/post-commit to run crystallize after every commit |
prism hook uninstall --project . |
Remove the hook |
prism serve --project . |
Start MCP server in stdio mode |
prism ui --project . |
Open graph UI at http://localhost:7823 |
MCP tools
When added as an MCP server, Prism exposes three tools to any agent:
| Tool | What it does |
|---|---|
get_context() |
Returns the current CLAUDE.md for the project |
query_knowledge(question) |
Semantic search over the triple graph, returns top-5 matches |
crystallize(session_id?) |
Triggers the full pipeline in the background |
Graph UI
prism ui opens a local browser UI at http://localhost:7823:
- /constitution — current
CLAUDE.mdwith a Regenerate button - /memory — searchable table of all triples (active + stale)
- /graph — interactive force-directed knowledge graph
Storage
All data is local. Nothing leaves your machine except calls to your configured LLM provider.
~/.prism/
├── config.toml ← provider, model, api-key
└── projects/
└── <project-hash>/
└── graph.db ← SQLite, one file per project
Requirements
- Python 3.13+
- Any LiteLLM-compatible LLM provider (configured via
prism config set)
License
MIT
Metadata
Release files for prism-mem 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| prism_mem-0.1.5.tar.gz | 33.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| prism_mem-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 60.1 kB
Release files / prism_mem-0.1.5.tar.gz
| Download URL | prism_mem-0.1.5.tar.gz |
|---|---|
| Size | 33.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
15510a1d7ce90c7687574ef62f2fb6d22f106b08d435fe40cef6100df096a4b6
|
|
BLAKE2b-256 checksum How to use checksums |
079aac58acaf6ab8dd86bdac499dbc6c7dbc5cd810fe758f0fcc61e5d64efae3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / prism_mem-0.1.5-py3-none-any.whl
| Download URL | prism_mem-0.1.5-py3-none-any.whl |
|---|---|
| Size | 26.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
411058ce45763a829e1bbbefe043694f682189bf22d193d8a3f1e1b4352bbfe9
|
|
BLAKE2b-256 checksum How to use checksums |
275f581059ad1f692cd9c78f6b5aed947f4cf8aef93f924d5a3473c85bd6f838
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for prism-mem 0.1.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.