Tweety Bird hooks the lifecycle of both Claude Code and Codex. Every turn, on both sides, it sees what was asked, what was decided, and what was rejected, and it writes the parts worth keeping. Every turn, before either agent answers, it reads back the parts that are relevant right now. Deterministically. Not when the agent remembers to check. Not when a session goes idle and a 5,000-token summary gets extracted. Every turn.
Because it happens on the hooks, it does not matter which agent is working, which machine it is on, which plan you pay for, or whether the thread came from your phone or your terminal. The memory sits beside both agents, not inside either one. When Codex ships a new CLI, the memory does not notice.
And because the memory lives outside the context window, the context window can do whatever it wants to it. Nothing.
Under the hood it is MemoryRouter, which is in production and is the reason this is not another SQLite file of notes nobody queries.