A Pokemon-style terminal TUI launcher for Codex CLI and Claude Code.
Walk around a pixel map, approach relay station profiles, and launch your AI agent of choice.
2026-06-09.14.41.59.mov
- Pokemon-style map — walk up to a profile ball to interact
- Supports both Codex and Claude Code relay configs
- Per-profile relay config (URL + API key) for each agent
- Built-in
✦new-profile ball — add profiles without leaving the game - Split-screen layout: left = game map, right = live status panel
- Auto-backups before every config switch
- Launches agent directly via
exec— no wrapper process
- Python 3.8+ (stdlib only, no dependencies)
- macOS
- Codex CLI and/or Claude Code installed
git clone https://github.com/yourname/agent-launcher.git
cd agent-launcher
# Add alias
echo "alias agent-launcher='python3 $(pwd)/launcher.py'" >> ~/.zshrc
source ~/.zshrcagent-launcher| Key | Action |
|---|---|
W A S D / ↑↓←→ |
Move character |
Space / Enter |
Interact with nearby profile ball |
P |
Open profiles manager |
Q |
Quit |
In profile editor:
| Key | Action |
|---|---|
↑ ↓ |
Move between fields |
Enter |
Edit selected field |
S |
Save profile |
Esc |
Cancel |
- Run
agent-launcher - Walk to the green
✦ball to add your first relay profile - Fill in a name, URL and API key for Codex and/or Claude
- Walk to the profile ball that appears, press Space
- Choose Launch Codex or Launch Claude
Profiles are saved to ~/.agent-launcher/profiles.json. They are never stored in the project directory.
[
{
"name": "my-relay",
"codex": { "url": "https://example.com/v1", "key": "sk-..." },
"claude": { "url": "https://example.com/anthropic", "key": "tp-..." }
}
]Backups of modified config files are stored in ~/.agent-launcher/backups/.
On launch, launcher.py writes the selected profile's config to:
Codex — ~/.codex/config.toml + ~/.codex/auth.json
model_provider = "custom"
preferred_auth_method = "apikey"
[model_providers.custom]
base_url = "https://your-relay.com/v1"Claude Code — ~/.claude/settings.json
{
"env": {
"ANTHROPIC_BASE_URL": "https://your-relay.com/anthropic",
"ANTHROPIC_AUTH_TOKEN": "tp-..."
}
}Then replaces itself with the agent process via os.execv.
MIT