Show HN: OpenDream – local-first memory with dreaming for AI agents

1 pointsposted 11 hours ago
by planetceres

1 Comments

planetceres

6 hours ago

I've been interested in background processes shaping agent memory for a while now, and even though agent memory has slowly been improving, amnesia across agent sessions continues to be frustrating. It wastes a lot of time and tokens, and often sends agents down the wrong path or into parallel development circuits that obfuscate functionality and contribute to ai slop.

I started building OpenDream when background memory consolidation started showing up in closed agents. Since I jump between agents from session to session, I wanted one unified memory layer any agent could use, not something isolated to a single harness. I'm a serial founder who just moved on from a physical AI startup and the type of person who overconfidently believes I can do better when I have the ability to hack on things myself.

The web app wasn't part of the initial implementation, but I realized I needed it to understand what was happening across memory operations, session management, and dreaming cycles. It also provides an intuitive transparent interface to what context gets used by agents, shows diffs when memories are mutated, and isn't some opaque product state that the model provider tells you works without giving you the abilty to review things yourself.

There's probably an over-abundance of features here, but I've been building for myself, and dogfooding means I build what I find useful. Decided to share it now because I think the timing is right given how much momentum agent memory has right now, and after using it for a few months it feels stable enough to let other people use.

As a solo developer, I haven't been able to thoroughly test across all agents as much as I'd like, but that's one of the benefits of open source collaboration. Issues, PRs, or even just a comment here all help make this more useful for everyone.

Note that you can still keep your existing memory systems and OpenDream can run along side them, so it works like a portable layer that provides another memory system which doesn't try to hide what it's doing.

Two ways to try it out:

1. Install and run a self-contained demo that opens the UI (this populates a workspace so the UI has something to show):

```

uv tool install opendream

opendream eval showcase --scenario agent-workspace-showcase --workspace .tmp/opendream-showcase

opendream observe serve --workspace .tmp/opendream-showcase

```

2. To actually use the memory, point it at a real project (the UI is sparse until you've run a few sessions and there's memory to consolidate — that's expected, not a broken install):

```

uv tool install opendream

opendream init --workspace .

```

Then, open up the web app after collecting context over a few sessions:

```

opendream observe serve --workspace .

```