Skip to main content

Observational Memory

Observational Memory header showing local agent memory shared across Claude Code, Codex, Grok, Claude Cowork, and Hermes, with reviewed export to hosted agents.

PyPI version PyPI downloads CI GitHub stars

One local memory for your AI coding agents — so every session starts knowing your work instead of starting over.

Observational Memory, or om, watches what you do with Claude Code, Codex, OpenCode, Kimi Code CLI, Grok Build TUI, and Claude Cowork (Hermes joins through its plugin), distills it into plain Markdown on your machine, and hands every new session a compact memory summary. What Claude learns today, Codex knows tomorrow.

  • No more cold starts. Every session begins knowing who you are, how you work, and what you were doing.
  • One memory across agents. Switch tools without losing context.
  • Your memory is yours. Plain Markdown files on your machine — readable, searchable, backed up, never silently uploaded.

New in v0.9.0

v0.8.0 made memory trustworthy. v0.9.0 makes that memory broader and safer to leave running:

  • OpenCode support - om install --opencode installs a global OpenCode plugin plus an AGENTS.md fallback, so OpenCode sessions can receive bounded startup context and write message events back into OM-owned logs.
  • Kimi Code CLI support - om install --kimi wires Kimi lifecycle hooks for startup context and prompt/subagent/failure checkpoints without scraping private provider data.
  • Bounded background observation - installed hooks and scheduler backstops now use a single om observe-worker lane with concurrency control, timeouts, stale-lock recovery, atomic writes, and a Claude transcript backstop.
  • Public roadmap additions - new plans cover optional OKF import/export, signed binary and desktop installers, and a future desktop coordination layer.

OM Mail remains an experimental preview from v0.8.0: agents can exchange signed notes, encrypted context packs, and recall requests over email, but handshake tokens, live listening, digests, and team trust roots are deferred to a future 0.x release. See how it works.

Aside browser support is also under active development in draft PR #98; it is not part of v0.9.0.

Everything is additive and defaults are unchanged. Full details: v0.9.0 release notes.

Upgrading from 0.6.x or 0.7.x?

brew upgrade observational-memory   # or: uv tool upgrade observational-memory
om doctor

No config changes needed. New integrations are opt-in unless you run om install --all; installed background observers become more conservative and skip when another worker is already running.

Quick Install

macOS with Homebrew:

brew install intertwine/tap/observational-memory
om install
om doctor

Linux, macOS, or Windows with uv:

uv tool install observational-memory
om install
om doctor

om install sets up Claude Code and Codex by default (--all adds OpenCode, Kimi, Grok, and Cowork) and asks which LLM provider to use — a metered API key, or your existing ChatGPT or SuperGrok subscription via om login. If you use Anthropic through Vertex AI or Bedrock, install with uv tool install "observational-memory[enterprise]" instead of Homebrew, then run om install.

How Memory Flows

flowchart LR
    A["Claude Code, Codex, OpenCode, Kimi, Grok, Cowork, Hermes logs"] --> B["om observe"]
    C["Claude auto-memory files"] --> D["search index"]
    C --> F
    B --> E["observations.md"]
    E --> F["om reflect"]
    F --> G["reflections.md"]
    G --> H["profile.md + active.md"]
    H --> I["om context startup pack"]
    E --> J
    G --> J["om recall / om search / om talk"]
    G -. opt-in .-> K["om cluster sync / om mail"]

First Week Workflow

  1. Install om.
  2. Run om install and answer the provider questions.
  3. Run om doctor.
  4. Use Claude Code, Codex, OpenCode, Kimi, or Grok normally — memory accumulates on its own.
  5. Search memory when you need it:
om recall --query "current project status"
om search "release checklist"
  1. Talk to your memory (experimental — it works, but flags may change), or check what new sessions will see:
om talk --query "what was I working on last week?"
om context --for codex --cwd "$PWD" --task "finish docs"

Where Your Memory Lives

om keeps four plain-Markdown files you can read, search, and back up:

File Purpose
observations.md Recent notes from sessions and checkpoints.
reflections.md Longer-term facts, preferences, decisions, and active work.
profile.md Compact stable context for startup.
active.md Compact current context for startup.
Platform Memory directory Config directory
macOS / Linux ~/.local/share/observational-memory/ ~/.config/observational-memory/
Windows %LOCALAPPDATA%\observational-memory\ %APPDATA%\observational-memory\

Common Commands

om status
om doctor                       # health check, now with memory-growth report
om observe --source codex
om reflect
om reflect --check-conflicts    # reflect + flag silently-changed high-stakes facts
om reflect --async              # offline OpenAI Batch job at ~50% of the synchronous price
om jobs poll                    # apply completed async jobs
om backup --reason pre-experiment
om restore --list
om recall --query "what was decided about sync?"
om talk
om search "preferences" --json
om usage status                 # token usage, cost, and budgets
om usage budget set --daily-usd 5.00
om context --quality-report     # startup-context dedup / freshness / budget report
om export --target chatgpt

Multi-machine and agent-to-agent memory are opt-in:

# OM Cluster: encrypted full sync across YOUR machines
om cluster init --name "Personal Memory" --transport filesystem:~/Sync/om-cluster --import-existing
om cluster sync

# OM Mail (experimental): selective memory exchange between DISTINCT agents.
# Peers must exchange and pin keys first — see docs/mail-memory.md.
om mail init --username my-agent
om mail peers add peer@agentmail.to --key <PEER_PUBLIC_KEY> --shared-key <SHARED_KEY>
om mail send-note peer@agentmail.to --text "decision: ship v0.9.0"
om mail sync

Do not sync ~/.local/share/observational-memory/ directly with Dropbox, iCloud, Syncthing, rsync, or a NAS. Use the cluster transport directory instead.

Agent Support

Host Current support
Claude Code Hooks for startup context and checkpoints.
Codex Hooks-first startup and Stop checkpoints, with an AGENTS fallback.
OpenCode Global plugin records message events, with a global AGENTS fallback for startup context.
Kimi Code CLI Hooks for startup context plus prompt/subagent checkpoints captured from Kimi lifecycle JSON.
Grok Build TUI Native hook file with Claude-compatibility awareness, plus updates.jsonl observation.
Claude Cowork Local plugin on macOS with hooks and /recall.
Hermes External memory-provider plugin through intertwine/hermes-observational-memory, plus manual session-log ingestion.
Aside browser Draft first-class support is under active development in PR #98; not shipped in v0.9.0.
ChatGPT / Claude Managed Agents Reviewed export bundles through om export — not live sync; om never silently writes hosted memory.

Out-of-tree integrations have first-class seams: mail providers and CLI add-ons plug in through public entry points (CONTRIBUTING.md).

Architecture At A Glance

Observational Memory system diagram: agent hooks feed om observe into local markdown memory; om reflect consolidates it; om context, recall, search, talk, and doctor read it; opt-in cluster sync and OM Mail share it with scope filtering.

  • om observe turns transcripts into recent notes.
  • om reflect turns recent notes into durable memory — with provenance, scope rules, and a safety snapshot first.
  • om context gives agents a bounded memory summary at session start.
  • om recall, om search, and om talk retrieve more when that summary is not enough.
  • om export prepares reviewed memory seed bundles for hosted systems.
  • om cluster syncs encrypted records across machines when you opt in.
  • om mail (experimental) exchanges signed memory between distinct agents over email.

Guides

Version

Current release: v0.9.0release notes. Built on v0.8.0's trustworthy-memory release, v0.7.0's section-targeted reflection, and the v0.6.x usage/budget and async-Batch subsystems. Maintainers: the release workflow lives in docs/MAINTAINERS.md.

Contributing

The om core is MIT licensed and stays that way. Pull requests are welcome — see CONTRIBUTING.md for development setup and contributor terms (DCO sign-off plus a relicensing grant to Intertwine AI, the project steward, which also builds separately licensed team add-ons on the core's public plugin interfaces).

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

observational_memory-0.9.0.tar.gz (6.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

observational_memory-0.9.0-py3-none-any.whl (336.0 kB view details)

Uploaded Python 3

File details

Details for the file observational_memory-0.9.0.tar.gz.

File metadata

  • Download URL: observational_memory-0.9.0.tar.gz
  • Upload date:
  • Size: 6.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for observational_memory-0.9.0.tar.gz
Algorithm Hash digest
SHA256 c9fa924847a01e4e25b91acf638cb1ee1d73392b33d49899f43bacda28f9f599
MD5 0e9d73634f61db0efb10cea46525356e
BLAKE2b-256 3bd286d98433b65fcca43549d6afe78b2bd29f37101f0a2e7a60ec743ce2ee8a

See more details on using hashes here.

File details

Details for the file observational_memory-0.9.0-py3-none-any.whl.

File metadata

File hashes

Hashes for observational_memory-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e06c2271abcdaf1cce6e9aaa4ad53bfade3538dd2f50d81d06ff1e1dae4127fd
MD5 67715ad292670e7f3843277ee2451f60
BLAKE2b-256 f9aa4a74cfcb51deefe4faccacd5b796a83abd2f08f3d892864a57d31e72e1b8

See more details on using hashes here.

Release history Release notifications | RSS feed

0.10.0

2 files

0.9.1

2 files

This release

0.9.0 This release

2 files

0.8.0

2 files

0.7.0

2 files

0.6.7

2 files

0.6.6

2 files

0.6.5

2 files

0.6.4

2 files

0.6.3

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

0.5.7

2 files

0.5.6

2 files

0.5.5

2 files

0.5.4

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.1

2 files

0.4.0

2 files

0.3.1

2 files

0.3.0

2 files

0.2.0

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page