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
- Run
tweetybird status. If the daemon is not running,tweetybird start. - Run
tweetybird doctor --ping. If the ping does not arrive, the bot token or pairing is the problem;tweetybird setupfixes both. - Are you texting from the paired account? Other accounts are ignored on purpose.
tweetybird pair listshows who is paired. - Is another Mac running the same bot? Only one Mac holds the thread;
/machinesshows which. - 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
/scheduleshows each schedule's next run. Is it paused?- Quiet schedules answer "NOTHING TO REPORT" when there is nothing worth a text. That is a successful run with no message.
- Was it waiting on an approval you did not see?
/statusshows pending approvals. /schedule run <name>runs it now so you can see what happens.
Codex did not recall something it should have
- Same repo? Memory is per repo.
/statusshows the working folder;/cdchanges it. - 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. - Was it decided in a terminal session before install? Run
tweetybird memory ingestto read CLAUDE.md, AGENTS.md, and DECISIONS.md again. - 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.