Your AI agent that never forgets.
Persistent memory, 20+ tools, 6 channels, 11+ LLM providers — runs entirely on your machine.
Website · Documentation · Community Skills
- 11+ LLM providers — Anthropic, OpenAI, Google Gemini, Ollama, Groq, Together, OpenRouter, DeepSeek, xAI, Fireworks, LM Studio, and any OpenAI-compatible endpoint. Smart routing sends simple queries to fast models automatically.
- 6 channels — Telegram, Discord, Slack, WhatsApp, Signal, Web Chat
- Persistent memory — Vector + full-text hybrid search with ONNX embeddings and FTS5. Remembers every conversation, preference, and fact — forever.
- 20+ built-in tools — Web search, file ops, code execution, APIs, sub-agent delegation, and automatic failover between providers.
- Extensible skills — Build custom skills in TypeScript. Share them on the registry. Install community skills with one command.
- 7 integrations — GitHub, Google (Gmail, Calendar, Docs, Drive, Sheets), Notion, Linear, Jira, Slack, Twitter
- Workflows — Multi-agent pipelines with delegation
- Natural language scheduling — "Every weekday at 9am" just works. Cron jobs, heartbeat, proactive tasks.
- Voice — Speech-to-text (Whisper) and text-to-speech (OpenAI, ElevenLabs)
- Dashboard — Built-in web UI with analytics, memory management, and settings
- Document ingestion — Upload PDF, DOCX, TXT, CSV, JSON, and more
- Budget controls — Daily/monthly spending limits with per-model cost tracking
- 100% local — SQLite database, local vector store. Your data never leaves your machine.
curl -fsSL https://zubo.bot/install.sh | bashOr install via package manager:
bun add -g zubo # recommended
npm i -g zubo # also worksThen:
zubo setup # interactive config wizard
zubo start # launch the agentThe web dashboard opens automatically at http://localhost:<port>.
User Message
→ Channel (Telegram / Discord / Slack / WhatsApp / Signal / WebChat)
→ Message Router
→ Agent Loop (LLM + Tool Execution)
→ Tools (built-in, skills, integrations)
→ Memory (vector search, FTS5, document parsing)
→ Scheduler (cron, heartbeat, proactive tasks)
→ Response
→ Channel
→ User
All config lives in ~/.zubo/config.json. Run zubo setup for interactive configuration, or set values directly:
zubo config set activeProvider anthropic
zubo config set smartRouting.enabled true
zubo config set budget.monthlyLimit 50See the full configuration reference for all options.
| Channel | Setup |
|---|---|
| Web Chat | Enabled by default |
| Telegram | Add channels.telegram.botToken from @BotFather |
| Discord | Add channels.discord.botToken from Developer Portal |
| Slack | Add channels.slack.botToken + appToken (Socket Mode) |
Add channels.whatsapp, authenticate via QR |
|
| Signal | Install signal-cli, add channels.signal.phoneNumber |
| Service | Capabilities | Secret |
|---|---|---|
| GitHub | Issues, PRs, Repos | github_token |
| Gmail, Calendar, Docs, Drive, Sheets | google_api_key |
|
| Notion | Pages, Databases, Search | notion_token |
| Linear | Issues, Projects | linear_token |
| Jira | Issues, Boards | jira_token |
| Slack | Messages | slack_token |
| Posts, Timeline, Search | twitter_bearer_token |
Set secrets through natural conversation: "Set my github_token to ghp_..."
zubo setup Interactive configuration wizard
zubo start [--daemon] Start the agent
zubo stop Stop the background daemon
zubo status Show runtime status
zubo logs [--follow] View or stream logs
zubo model [provider/model] Show or switch LLM
zubo skills Manage skills
zubo install <name> Install from registry
zubo search <query> Search the registry
zubo auth create-key Create an API key
zubo export / import Backup and restore
Full reference at zubo.bot/docs/cli.html.
- Fork the repository
- Create a feature branch
- Make your changes
- Run
npx tsc --noEmitandbun test - Submit a pull request
MIT
Created by @thomaskanze