Your memory has always been yours.
Ormah helps keep it that way.
Local. Private. Portable. Yours to keep. Yours to move.
The more an AI knows you, the harder it can feel to leave. But your preferences, decisions, and history shouldn't be what ties you to one company. They're part of what makes you, you. You should be able to change tools without leaving that part of yourself behind.
Ormah gives your AI agents a shared memory. It keeps useful context between sessions and, with supported integrations, whispers relevant memories before the agent replies.
Get started · Watch the original demo · Explore the docs
Move between agents. Keep your context.
Illustrative example. Codex and Claude Code are connected to the same Ormah store and project.
- Decide in Codex. “Checkout retries must reuse the same idempotency key.” Codex saves the decision with Ormah's
remembertool. - Keep it in Ormah. The decision belongs to the project's shared memory, available beyond this conversation.
- Continue in Claude Code. You ask, “Fix the checkout retry.” Whisper supplies the saved decision before the reply, so Claude can keep the key stable without being asked to search memory.
Get started
Your memory starts here. Download the desktop app for your platform.
Open Ormah and follow setup to connect your agents. All releases · Setup guide
Try your first memory. In a connected agent, ask: “Remember that checkout retries must reuse the same idempotency key.” Then start a new session in the same project and ask: “What key should checkout retries use?”
With a Whisper integration enabled, the saved decision can arrive before the agent replies. To check automatic delivery, inspect the client's hook/context output for the injected memory.
Prefer the terminal?
On macOS or Linux, run:
bash <(curl -fsSL https://ormah.me/install.sh)
The installer installs Ormah and opens setup. Setup downloads the local retrieval models, starts the server, and connects detected supported clients. Choose agent-backed maintenance if you want your coding agent to handle graph cleanup. Local search and Whisper retrieval need no separate model API key.
Manual and Claude Code plugin installation →
Check installation and memory from the terminal
From your project directory:
ormah server status
ormah remember "Checkout retries reuse the same idempotency key." --type decision
ormah recall "checkout retries"
Success means the server reports that it is running and recall returns the decision you just stored. Open the local graph to inspect it.
Memory that stays useful
- Relevant context appears automatically. Whisper checks the current prompt and surfaces memories that fit. It can stay quiet when there is nothing useful to add.
- Your agents share what matters. Decisions, preferences, and ongoing work can carry between connected agents using the same store.
- Memory changes with your work. Ormah can link related memories, flag conflicts, merge duplicates, and let stale context recede. Background jobs and optional agent-backed maintenance keep the graph useful over time.
How it works
Your agents shouldn't have to remember to remember. Ormah brings capture, maintenance, and timely recall into the flow of work.
- Learn. Agents save preferences, decisions, patterns, mistakes, and ongoing work through memory tools. With an Ormah LLM provider configured, transcript extraction can also capture memories from sessions. Optional watchers can ingest transcripts and Markdown notes.
- Maintain. Scheduled jobs handle tasks such as decay and importance scoring. Judgment-heavy cleanup uses your agent when enabled, or a configured Ormah LLM provider.
- Whisper. A supported client asks Ormah for relevant context before the agent replies. Ormah selects memories from the shared store and returns them to the conversation. Explicit recall is available whenever the agent needs to look further.
Choosing agent-backed maintenance during setup leaves server-side LLM extraction off. Enable a provider separately if you want transcript extraction too. Capture and watchers · Whisper · Background jobs
Your memory, under your control
Memories live as readable Markdown files with metadata in ~/.local/share/ormah/memory/nodes/ by default. You can inspect them, keep local backups, and restore them on another machine. The search index is rebuilt from those files.
Storage and retrieval run locally by default. Memories supplied to an agent are processed by that agent's model; optional remote model providers process the content sent to them. You choose those connections.
Optional paid cloud backup encrypts snapshots on your device before upload. Keep the recovery kit: it contains the keys needed to restore them. Cloud backup provides recovery snapshots, not automatic live synchronization between devices.
Storage · Backup, verification, and restore
Connect your agents
| Client | Memory tools | Automatic Whisper |
|---|---|---|
| Claude Code | MCP | Prompt hook |
| Codex CLI | MCP | Prompt hook, enabled by setup |
| Pi | Ormah extension | Before each agent turn |
| Claude Desktop on macOS | MCP | Tool access only |
Hooks need a compatible client version and a running Ormah server. Other clients can connect through MCP, the HTTP API, or custom tool schemas; automatic injection needs a client integration.
Client setup · Pi integration · MCP and adapters
Go further
- Quickstart — installation and first checks.
- System overview — how the pieces fit together.
- Configuration — providers, capture, maintenance, and backups.
- API reference — build your own integration.
Contribute
Start with the contributing guide. Help improve an integration, clarify a guide, or report a reproducible problem in GitHub Issues. Join the Ormah Discord for discussion and help.
Develop locally
Use Python 3.11+, Node.js/npm, and Make. In an activated Python virtual environment:
git clone https://github.com/r-spade/ormah.git
cd ormah
make install
python -m pytest
See the Makefile for backend and UI development commands. The retrieval eval guide covers local evaluation; evaluation corpora are not included in the repository.
Metadata
Release files for ormah 0.15.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ormah-0.15.2-py3-none-any.whl | Python 3 | none | any | Details |
Release files / ormah-0.15.2-py3-none-any.whl
| Download URL | ormah-0.15.2-py3-none-any.whl |
|---|---|
| Size | 603.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
be20a1bd992f0ee70adac4add7a47bbf290a40cba04fe2b93d1d4ecd6fda3bbb
|
|
BLAKE2b-256 checksum How to use checksums |
2c8b34f32b7d1867b1c4f7d6a10823f6a365050368d1b8bd2f70e28020a50c26
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.
Transparency log