⬇️ Just want to download? Jump to Quick Start
PalmClaw is a personal assistant on your phone inspired by OpenClaw, but designed for direct mobile deployment: run your AI agent on your phone without a PC.
- 📱 Deploy and operate directly on Android.
- 🔒 Local-first runtime for a safer and more private workflow.
- ⚡ Simpler setup and daily use, while still supporting channels, tools, and automation.
-
📱 Mobile-native deployment
Deploy and run directly on Android, with built-in access to local hardware and files. -
✨ Simple workflow
All operations are done directly in the app UI, making setup and usage easier. -
🔐 Stronger safety
Android App sandbox isolation provides a naturally safer runtime boundary. -
🧠 Full agent stack included
Memory, skills, tools, and channels are all available in one mobile runtime.
- 🌏 [2026.03.21] v0.1.1 Chinese Docs & UX Update: Added a Chinese README, improved Chinese error messages, and fixed the MiniMax API endpoint.
- 🚀 [2026.03.16] Initial Release: PalmClaw v0.1.0 is now live! 🎉
- Integrate SkillHub.
- Build a conversion skill: desktop skill -> mobile-ready skill.
- More channel integrations.
- Better tool support.
- Stronger web search tools, like brave or tavily.
- Expand Android-native capabilities.
- Local app integration.
- Screen reading and interaction.
- Multimodal input and output.
- 📌 Overview
- ✨ Key Features
- 🎬 Demos
- 📰 News
- 📑 Table of Contents
- 🚀 Quick Start
- 🔌 Channels Configuration
- ⚙️ How PalmClaw Works
- 🗂️ Repository Structure
- 🤝 Community
- ⚖️ License
- Download the latest APK from the Releases page.
- Install the APK on your Android phone.
- Open PalmClaw and follow the in-app onboarding guide.
- Finish provider setup, then start chatting in the local session!
Important
PalmClaw does not include hosted model access by default. You need to configure your own provider API key during setup.
- Install Android Studio and JDK 17.
- Clone the repository:
git clone https://github.com/ModalityDance/PalmClaw.git
cd PalmClaw- Open the project in Android Studio and wait for Gradle sync.
- Ensure
local.propertiespoints to your Android SDK path. - Run the app on a physical device or emulator.
Note
local.properties is machine-specific and should not be committed.
PalmClaw currently supports these channels:
Telegram
- Set
Channel = Telegram. - Fill
Telegram Bot Tokenand save. - Send one message to your bot in Telegram.
- Tap
Detect Chats. - Select detected chat, then save binding.
Discord
- Set
Channel = Discord. - Fill
Discord Bot Token. - Set target
Discord Channel ID. - Choose response mode (
mentionoropen), optionally set allowed user IDs. - Save binding.
[!TIP] Invite the bot to the target server/channel first.
If using
mentionmode, mention the bot once to trigger replies in guild channels.
Slack
- Set
Channel = Slack. - Fill
Slack App Token (xapp...)andSlack Bot Token (xoxb...). - Set target
Slack Channel ID. - Choose response mode (
mentionoropen), optionally set allowed user IDs. - Save binding.
[!IMPORTANT] Slack prerequisites:
- Socket Mode enabled
- App token with
connections:write- Bot token with required message/reply scopes
Feishu
- Set
Channel = Feishu. - Fill
Feishu App IDandFeishu App Secret. - Save once to start long connection.
- Send one message to the bot from Feishu.
- Tap
Detect Chats. - Select detected target (
open_idfor private chat,chat_idfor group), then save again. - Optional: set
Allowed Open IDs.
- Set
Channel = Email. - Enable consent.
- Fill IMAP settings: host, port, username, password.
- Fill SMTP settings: host, port, username, password, from address.
- Save once to start mailbox polling.
- Send one email to this mailbox from target sender.
- Tap
Detect Senders. - Select sender and save again.
- Optional: toggle auto-reply on/off.
WeCom
- Set
Channel = WeCom. - Fill
WeCom Bot IDandWeCom Secret. - Save once to start long connection.
- Send one message to the bot from WeCom.
- Tap
Detect Chats. - Select detected target and save again.
- Optional: set
Allowed User IDs.
Note
Recommended order for any channel:
- 📩 Message in: input comes from local chat or connected channels.
- 🤖 Agent loop: LLM decides, calls tools when needed, then generates response.
- 🧠 Context: memory + skills guide every turn.
- 📤 Response out: result is written to the session and sent back to the channels.
PalmClaw/
├─ app/
│ ├─ src/main/java/com/palmclaw/
│ │ ├─ ui/ # Compose UI, settings, chat, onboarding
│ │ ├─ runtime/ # agent runtime, always-on, routing
│ │ ├─ channels/ # Telegram / Discord / Slack / Feishu / Email / WeCom
│ │ ├─ config/ # config store and storage paths
│ │ ├─ cron/ # scheduled jobs
│ │ ├─ heartbeat/ # heartbeat runtime
│ │ ├─ tools/ # mobile tools exposed to the agent
│ │ └─ skills/ # skill loading and matching
│ └─ src/main/assets/
│ ├─ templates/ # AGENT / USER / TOOLS / MEMORY / HEARTBEAT
│ └─ skills/ # bundled skills and guidance
├─ docs/assets/ # docs site branding/media/fonts/icons assets
├─ gradle/ # Gradle wrapper files
└─ README.md
We welcome researchers, builders, and mobile AI practitioners to join the PalmClaw community. 🌍
This project is offered under a dual licensing model:
-
Open Source License: See LICENSE
This is the default license for the project. It ensures that any modifications made to the code, when used to provide a service over a network, must also be released under the AGPLv3. -
Commercial License: See LICENSE-COMMERCIAL
For organizations or individuals who wish to integrate this software into proprietary products or services without being bound by the AGPLv3's copyleft requirements (e.g., keeping modifications private), a commercial license is available.






