Open-source CLI tool to control your Android device with natural language — from your terminal, Telegram, or Discord.
┌─────────────────────────┐ ┌──────────────────┐ ┌──────────────────────┐
│ AgentBlueCLI │ │ Firebase │ │ AgentBlue (Android) │
│ │◄──────►│ Firestore │◄──────►│ │
│ · Terminal REPL │ │ (Relay Server) │ │ · Accessibility Svc │
│ · Telegram Bot │ │ │ │ · ReAct Loop │
│ · Discord Bot │ │ │ │ · LLM API calls │
└─────────────────────────┘ └──────────────────┘ └──────────────────────┘
Type a command in your terminal (or Telegram / Discord), and AgentBlue executes it on your Android device step-by-step using a ReAct loop powered by your choice of LLM.
- Node.js 18+
- AgentBlue Android app installed on your device (../AgentBlue)
npm install -g @agentblue/cligit clone https://github.com/your-username/AgentBlue.git
cd AgentBlue/AgentBlueCLI
npm install
npm run build
cd packages/cli && npm linkagentblue initSelect your language and Firebase backend:
| Option | Description |
|---|---|
| Shared server (default) | Use the developer-hosted Firebase project — no setup needed |
| Self-hosted | Point to your own Firebase project for full independence |
agentblue startAgentBlue v2.0.0
────────────────────────────────────────────
Session Code: ABCD1234
Open the AgentBlue app and enter this code in the Session field.
────────────────────────────────────────────
⠸ Waiting for device...
✓ Device connected!
> Search for BTS on YouTube
⠸ Processing... Step 3/15
👆 [CLICK] "YouTube" → SUCCESS
⌨️ [TYPE] "BTS" → SUCCESS
👆 [CLICK] Search → RUNNING...
✓ Done!
>
| Input | Action |
|---|---|
<natural language> |
Send command to Android |
/stop |
Cancel the currently running task |
/setting |
Change agent settings (max steps, delay, browser, language) |
/model |
Change AI model (provider, model, API key) |
/help |
Show available slash commands |
exit / Ctrl+C |
End session |
agentblue setting # Agent settings on paired device
agentblue model # AI model settings on paired deviceagentblue send "Send 'running late' to John on KakaoTalk"agentblue attach telegram- Chat with @BotFather →
/newbotto create a bot - Paste the token when prompted
- Optionally restrict access to specific Chat IDs
/run Search for BTS on YouTube
/run Open Chrome and go to github.com
/status
/session
/help
The bot starts automatically when you run agentblue start.
npm install -g @agentblue/telegram
AGENTBLUE_BOT_TOKEN=xxx \
AGENTBLUE_SESSION_ID=yyy \
agentblue-telegramagentblue attach discord- Create an application at discord.com/developers
- Under Bot, copy the token
- Under OAuth2, invite the bot with
bot+applications.commandsscopes - Enter your Server ID, Channel ID, and Client ID
/run command:Search for BTS on YouTube
/status
Results are delivered as live-updating embedded messages.
npm install -g @agentblue/discord
AGENTBLUE_BOT_TOKEN=xxx \
AGENTBLUE_SESSION_ID=yyy \
AGENTBLUE_GUILD_ID=zzz \
AGENTBLUE_CHANNEL_ID=www \
AGENTBLUE_CLIENT_ID=vvv \
agentblue-discordBy default AgentBlueCLI uses a shared Firebase project. For full independence:
- Create a project at Firebase Console
- Enable Firestore Database (production mode)
- Enable Authentication → Anonymous
- Register an Android app with package
com.example.agentdroidand downloadgoogle-services.json - Apply the security rules from docs/firebase-rules.md
- Run
agentblue initand select Self-hosted
Language is configured during agentblue init and stored in ~/.agentblue/config.json. To change it, run agentblue init again.
| Language | Value |
|---|---|
| English (default) | "en" |
| Korean | "ko" |
All settings are saved to ~/.agentblue/config.json:
{
"language": "en",
"firebase": { "apiKey": "...", "projectId": "...", "..." : "..." },
"sessionId": "...",
"sessionCode": "ABCD1234",
"telegram": {
"botToken": "...",
"allowedChatIds": [123456789]
},
"discord": {
"botToken": "...",
"guildId": "...",
"channelId": "..."
}
}| Command | Description |
|---|---|
agentblue init |
First-time setup wizard (Firebase + language) |
agentblue start |
Start an interactive session with your Android device |
agentblue send "<task>" |
Send a single command (non-interactive) |
agentblue setting |
Remotely change agent settings on paired device |
agentblue model |
Remotely change AI model settings on paired device |
agentblue attach telegram |
Configure Telegram bot |
agentblue attach discord |
Configure Discord bot |
AgentBlueCLI/
├── packages/
│ ├── cli/ — Main CLI (@agentblue/cli)
│ ├── telegram/ — Telegram daemon (@agentblue/telegram)
│ └── discord/ — Discord daemon (@agentblue/discord)
└── docs/
├── getting-started.md
├── telegram-setup.md
└── discord-setup.md
MIT