How it works
Tweety Bird runs the same claude and codex programs you run in the terminal, as you, on your Mac. Whatever those programs are logged in with is what the phone uses. Tweety Bird never sees, stores, or proxies your Anthropic or OpenAI credentials, and it does not sit between you and the labs.
Supported
| Agent | Works with |
|---|---|
| Claude Code | Claude Max and Pro subscriptions, Anthropic API keys, Amazon Bedrock, Google Vertex AI, LLM gateways and custom base URLs (ANTHROPIC_BASE_URL). |
| Codex | ChatGPT Plus, Pro, Business, and Enterprise sign-in, OpenAI API keys, and custom model providers set in ~/.codex/config.toml. |
Environment variables
The background service starts from launchd, not your shell, so it would not normally see variables set in .zshrc. Setup copies the ones agents use (ANTHROPIC_*, CLAUDE_CODE_*, OPENAI_*, CODEX_*, AWS_*, GOOGLE_*, and proxy settings) from your login shell into ~/.tweetybird/env (mode 0600), and the service loads it.
Changed a key, a profile, or a base URL? Refresh it:
tweetybird doctor --fix
Checking it
tweetybird doctor
Doctor checks that each agent is installed and logged in. /status in the thread shows the same thing from your phone.
Usage limits
Runs from the phone count against your plan exactly like runs at the desk, because they are the same runs. If an agent hits its limit, the thread tells you. Switching to the other agent ("codex, take it from here") keeps you moving, and shared memory means it knows where things stand.