Tweety Bird
Install

Docs

Troubleshooting

The thread is not answering, the Mac slept, a schedule did not fire, Codex did not recall something.

Start with doctor

tweetybird doctor

It checks Node, the config file and its permissions, the launcher, Claude Code, Codex, the bot token, pairing, the background service, the daemon, memory, the license, and the proof, and tells you what is wrong in one line each. --fix repairs what it can (reinstalls the service, refreshes your agent environment). --ping sends a test message to your phone.

The thread is not answering

  1. Run tweetybird status. If the daemon is not running, tweetybird start.
  2. Run tweetybird doctor --ping. If the ping does not arrive, the bot token or pairing is the problem; tweetybird setup fixes both.
  3. Are you texting from the paired account? Other accounts are ignored on purpose. tweetybird pair list shows who is paired.
  4. Is another Mac running the same bot? Only one Mac holds the thread; /machines shows which.
  5. Look at the log: tweetybird logs -f, then text the bot and watch.

The agent says it is not logged in

The service sees the environment captured at setup, not your current shell. Log the agent in at the terminal (claude, or codex login), then run tweetybird doctor --fix. See Plans and auth.

The Mac slept

While an agent is working, Tweety Bird keeps the Mac awake. A closed lid on battery can still force sleep. When the Mac wakes, the service resumes by itself and any schedule that came due runs once as a catch-up. For always-on work, use a second Mac that never sleeps; see Two Macs.

A schedule did not fire

  1. /schedule shows each schedule's next run. Is it paused?
  2. Quiet schedules answer "NOTHING TO REPORT" when there is nothing worth a text. That is a successful run with no message.
  3. Was it waiting on an approval you did not see? /status shows pending approvals.
  4. /schedule run <name> runs it now so you can see what happens.

Codex did not recall something it should have

  1. Same repo? Memory is per repo. /status shows the working folder; /cd changes it.
  2. Was it written? /memory search <words>. If it is not there, tell the agent again and ask it to record the decision, or use /memory remember.
  3. Was it decided in a terminal session before install? Run tweetybird memory ingest to read CLAUDE.md, AGENTS.md, and DECISIONS.md again.
  4. Still wrong? That is the bug we care about most. Email [email protected] with what you told Claude and what Codex said, or reply "goldfish" for a refund.

An approval never arrived

Approvals go to the thread the run came from; scheduled runs send them to your first paired device. A request with no answer for 30 minutes is denied, and the agent is told. If the daemon is not reachable at all, the agent is denied rather than allowed; nothing runs without the policy check.

Still stuck

Email [email protected] with the line doctor printed and the last lines of ~/.tweetybird/logs/daemon.log. The log redacts tokens and keys, so it is safe to send. Founders' bugs ship first.