Tweety Bird
Install

Docs

Talking to both agents

"codex, take it from here." How the thread decides which agent answers, and how to hand off mid-task.

The current agent

Every thread has a current agent. Plain text goes to it, in its current session, in the current working folder. The default is Claude Code; change it at setup or by switching.

Switching by name

Start a message with the agent's name and a comma, colon, or dash, or with an @:

codex, take it from here
claude: review that diff
@codex run the migration tests
hey claude, what did we decide about retries

The thread switches to that agent and sends the rest of the message. A bare "codex" or "claude" just switches. "codex is slow today" does not switch anything; it needs the separator.

The commands do the same: /claude or /codex switch, and /codex fix the flaky test switches and sends in one step.

What the other agent knows

Two things travel with every hand-off:

  • Shared memory for the repo. Decisions either agent made, the why, conventions, and your instruction files. Both agents read it at the start of every turn and it is written after every turn.
  • The recent thread. The last few messages with the other agent in this thread, so "take it from here" and "review what claude just did" have something to point at.

When an agent settles something durable, it states it on its own line starting with "Decision:" and that line is saved to the repo's memory.

Sessions

  • Each agent keeps its own native session per thread (Claude Code's --resume session, Codex's thread). Switching back continues where it left off.
  • /sessions lists recent conversations across both agents. Tap one to jump back into it.
  • /new starts a fresh session with the current agent. Memory still applies, so a fresh session is not a goldfish.

Working folder

/cd ~/code/api points the thread at a folder. /cd api uses a saved repo name; /cd ~/code/api --save saves one. Memory is per repo, keyed on the git remote, so the same repo on two Macs shares one memory.

Running both

One thread runs one prompt at a time, in order. To run both agents in parallel, point them at different folders from different threads (a second paired device, or Slack and Telegram side by side), or schedule one and text the other.