Open Source · MIT License

Your AI agent,
running on your phone

A self-hosted AI agent platform built and battle-tested on a Galaxy S21. Multi-channel communication, tool integrations, memory, web presence — all running 24/7 with zero cloud compute costs.

Get started View on GitHub
Palmtop - Self-hosted AI agent platform that runs on a phone | Product Hunt
termux — palmtop
# Clone and bootstrap on your phone $ git clone https://github.com/jbxter/palmtop.git $ cd palmtop && bash bootstrap_termux.sh Installing Python 3.12, uv, llama.cpp (Vulkan)... Done in 10 minutes. # Configure your persona and run $ cp config.example.toml config.toml $ uv run python -m palmtop 08:00:01 Cloud heavy: anthropic / claude-sonnet-4-5 08:00:01 Telegram bot started 08:00:01 Web channel started on 0.0.0.0:8000 08:00:01 Ready.
$0
Cloud compute costs
24/7
Always running
100%
Self-hosted
1 phone
Full stack

Everything you need in one agent

Not a toy. A production-grade platform handling real business operations, deployed on hardware you already own.

💬

10 messaging channels

Telegram, Discord, Slack, Matrix, IRC, WhatsApp, XMPP, SMS, email, and web chat. Run them all simultaneously — one agent, many frontends.

🧠

Cascading inference

Local llama.cpp model routes simple messages. 11 cloud providers (Anthropic, OpenAI, Google, Groq, DeepSeek, Mistral, and more) handle the heavy lifting. You control the cost.

🔧

Tool integrations

Jira, Google Calendar, email (AgentMail), web search, Vercel/Railway deploy, Cursor Cloud Agents. Connect what you need.

💾

Persistent memory

Conversation history, structured facts, multi-step plans, and a knowledge base. All stored locally in SQLite.

🌐

Web presence

Landing page, chat widget, intake forms, blog engine, and automated lead qualification with branded email outreach.

🎭

Configurable persona

Name, personality, services, brand colors, booking links — all driven by config.toml. Fork it and make it yours.

🔊

Voice support

Send voice messages on Telegram. Transcription via Gemini, Whisper, or OpenAI. Optional text-to-speech replies.

🔗

MCP client

Connect to any Model Context Protocol server. Extend the agent with custom tools without changing core code.

🚀

Git-push deploy

Push to your phone from your laptop. A post-receive hook auto-pulls, restarts the agent, and reconnects the tunnel.

Clean architecture, no magic

Channels feed into a core loop. The loop dispatches to tools. Web visitors get a sandboxed agent with zero internal access.

                    ┌─────────────┐
                    │  Telegram   │
                    │    Bot      │
                    └──────┬──────┘
                           │
┌──────────┐        ┌──────┴──────┐        ┌──────────────┐
│   SMS    ├────────┤  AgentLoop  ├────────┤  Tool        │
│ (Termux) │        │  (core)     │        │  Registry    │
└──────────┘        └──────┬──────┘        └──────┬───────┘
                           │                      │
┌──────────┐        ┌──────┴──────┐        ┌──────┴───────┐
│ Web Chat ├────────┤  Inference  │        │ Calendar     │
│ (public) │        │  Cascade    │        │ Email        │
└──────────┘        └─────────────┘        │ Jira         │
                    local → light → heavy  │ Search       │
                                           │ Deploy       │
                    Security boundary:     │ MCP Gateway  │
                    Web visitors get a     └──────────────┘
                    sandboxed WebAgent
                    with NO tool access

Ready to run your own agent?

Clone the repo, configure your persona, and have a production AI agent running in under 15 minutes.

Read the quickstart See config options