English

PalmClaw 线性 Logo(浅色模式) PalmClaw 线性 Logo(深色模式) PalmClaw

你手机里的私人 AI 助手:简单、安全,随时可用。

项目主页 下载 APK 累计下载 Android Kotlin

只想直接下载?跳到快速开始

## 项目简介 PalmClaw 是一款运行在手机上的个人 AI 助手,灵感来自 [OpenClaw](https://github.com/openclaw/openclaw)。它从一开始就是为移动端直接部署而设计的,你可以把 AI agent 直接跑在手机上,不需要依赖 PC。 - 可直接在 Android 上部署和运行。 - 以本地优先为核心,更安全,也更注重隐私。 - 上手和日常使用更轻量,同时保留渠道、工具和自动化能力。 ## 核心特性 - **原生移动端部署** 直接在 Android 上部署和运行,天然可访问本地硬件与文件。 - **更简单的工作流** 所有操作都可以在 App UI 内完成,配置和使用都更直接。 - **更强的安全边界** Android 应用沙箱隔离为运行时提供了天然更稳妥的边界。 - **完整的 agent 栈** Memory、Skills、Tools、Channels 都集成在同一个移动端运行时里。 ## 演示
初始配置演示 核心功能演示 工具使用演示 渠道配置演示
初始配置 核心功能 工具使用 渠道配置
## 最新动态 - **[2026.03.28] v0.1.4 渠道、界面与自动更新:** 优化渠道连接流程与稳定性,调整部分 UI 与结构,补充部分单元测试,并新增自动检查更新与下载能力。 - **[2026.03.25] v0.1.3 自定义 Provider 与自动识别更新:** 支持自定义 Provider 名称,优化接口自动识别,并记忆成功的解析结果。 - **[2026.03.24] v0.1.2 Provider 与设置体验更新:** 新增火山引擎、BytePlus、Mistral 预设,优化模型配置,并改进设置页体验。 - **[2026.03.21] v0.1.1 中文文档与体验更新:** 新增中文 README,补充中文错误提示,并修复 MiniMax API 端点。 - **[2026.03.16] 首次发布:** PalmClaw **v0.1.0** 已正式上线。 ### 路线图 - [ ] 集成 SkillHub。 - [ ] 提供技能转换能力:desktop skill -> mobile-ready skill。 - [ ] 支持更多渠道。 - [ ] 完善工具能力。 - [ ] 更强的 Web 搜索工具,例如 brave 或 tavily。 - [ ] 扩展更多 Android 原生能力。 - [ ] 本地 App 集成。 - [ ] 屏幕读取与交互。 - [ ] 多模态输入与输出。 ## 目录 - [项目简介](#项目简介) - [核心特性](#核心特性) - [演示](#演示) - [最新动态](#最新动态) - [路线图](#路线图) - [目录](#目录) - [快速开始](#快速开始) - [普通用户](#普通用户) - [开发者](#开发者) - [渠道配置](#渠道配置) - [PalmClaw 如何工作](#palmclaw-如何工作) - [仓库结构](#仓库结构) - [社区](#社区) - [许可证](#许可证) ## 快速开始 ### 普通用户 1. 在 [Releases 页面](https://github.com/ModalityDance/PalmClaw/releases) 下载最新 APK。 2. 在你的 Android 手机上安装 APK。 3. 打开 PalmClaw,跟随应用内的新手引导完成配置。 4. 完成 provider 设置后,就可以先从本地会话开始聊天。
扫码下载 PalmClaw APK
扫码下载最新 APK
> [!IMPORTANT] > PalmClaw 默认不提供托管模型服务。首次使用时,你需要配置自己的 provider API Key。 ### 开发者 1. 安装 Android Studio 和 JDK 17。 2. 克隆仓库: ```bash git clone https://github.com/ModalityDance/PalmClaw.git cd PalmClaw ``` 3. 用 Android Studio 打开项目,并等待 Gradle 同步完成。 4. 确认 `local.properties` 已正确指向你的 Android SDK 路径。 5. 在真机或模拟器上运行应用。 > [!NOTE] > `local.properties` 是本机相关配置,不应提交到仓库。 ## 渠道配置 PalmClaw 当前支持以下渠道:
Telegram 1. 将 `Channel` 设置为 `Telegram`。 2. 填写 `Telegram Bot Token` 并保存。 3. 在 Telegram 里先给你的 bot 发一条消息。 4. 点击 `Detect Chats`。 5. 选择检测到的会话,然后保存绑定。
Discord 1. 将 `Channel` 设置为 `Discord`。 2. 填写 `Discord Bot Token`。 3. 设置目标 `Discord Channel ID`。 4. 选择回复模式(`mention` 或 `open`),如有需要可额外设置允许的用户 ID。 5. 保存绑定。 > [!TIP] > 先把 bot 邀请到目标服务器/频道。 > > 如果使用 `mention` 模式,需要先 @ 一次 bot,才能在 guild channel 中触发回复。
Slack 1. 将 `Channel` 设置为 `Slack`。 2. 填写 `Slack App Token (xapp...)` 和 `Slack Bot Token (xoxb...)`。 3. 设置目标 `Slack Channel ID`。 4. 选择回复模式(`mention` 或 `open`),如有需要可额外设置允许的用户 ID。 5. 保存绑定。 > [!IMPORTANT] > Slack 需要先满足以下前置条件: > > - 已开启 Socket Mode > - App token 具备 `connections:write` > - Bot token 具备所需的消息/回复权限范围
Feishu (飞书) 1. 将 `Channel` 设置为 `Feishu`。 2. 填写 `Feishu App ID` 和 `Feishu App Secret` 后,先在 PalmClaw 本地保存一次。 3. 在飞书开放平台里确认已经启用 Bot 能力,然后在 `事件与回调` 中选择“长连接”,再添加 `im.message.receive_v1`。 4. 在 `权限管理` 里添加 `im:message`(发送消息)和 `im:message.p2p_msg:readonly`(接收消息)。如果你是在群里通过 `@机器人` 测试,还需要额外添加 `im:message.group_at_msg:readonly`。 5. 发布应用,在飞书中打开它,并在 PalmClaw 保持运行时确认长连接配置。 6. 从飞书给机器人发一条消息。 7. 点击 `Detect Chats`。 8. 选择检测到的目标(私聊用 `open_id`,群聊用 `chat_id`),然后再次保存。 9. 可选:设置 `Allowed Open IDs`。 > 如果本地发消息能到飞书,但飞书发消息进不来,通常就是接收权限、事件订阅、发布并打开应用,或长连接确认步骤还没完成。
Email (邮箱) 1. 将 `Channel` 设置为 `Email`。 2. 打开授权开关。 3. 填写 IMAP 设置:host、port、username、password。 4. 填写 SMTP 设置:host、port、username、password、from address。 5. 先保存一次,以启动邮箱轮询。 6. 从目标发件人向这个邮箱发送一封邮件。 7. 点击 `Detect Senders`。 8. 选择发件人后再次保存。 9. 可选:打开或关闭自动回复。
WeCom (企业微信) 1. 将 `Channel` 设置为 `WeCom`。 2. 填写 `WeCom Bot ID` 和 `WeCom Secret`。 3. 先保存一次,以启动长连接。 4. 从企微给 bot 发一条消息。 5. 点击 `Detect Chats`。 6. 选择检测到的目标后再次保存。 7. 可选:设置 `Allowed User IDs`。
> [!NOTE] > 任意渠道都建议按下面的顺序来配置: > > 1. 先打开目标会话。 > 2. 进入 `Session Settings` -> `Channels & Configuration`。 > 3. 选择渠道类型,并按界面提示完成配置。 ## PalmClaw 如何工作
PalmClaw 架构概览
- **消息输入**:输入既可以来自本地聊天,也可以来自已连接的渠道。 - **Agent loop**:LLM 负责决策,需要时调用工具,然后生成回复。 - **上下文**:memory 与 skills 共同为每一轮提供引导。 - **消息输出**:结果会写回当前会话,并发送回对应渠道。 ## 仓库结构 ```text PalmClaw/ ├── app/ │ ├── src/main/java/com/palmclaw/ │ │ ├── ui/ # Compose 界面、设置、聊天与新手引导 │ │ ├── runtime/ # agent 运行时、常驻模式与路由 │ │ ├── channels/ # Telegram / Discord / Slack / Feishu / Email / WeCom │ │ ├── config/ # 配置存储与路径管理 │ │ ├── cron/ # 定时任务 │ │ ├── heartbeat/ # heartbeat 运行时 │ │ ├── tools/ # 暴露给 agent 的移动端工具 │ │ └── skills/ # skill 加载与匹配 │ ├── src/main/assets/ │ │ ├── templates/ # AGENT / USER / TOOLS / MEMORY / HEARTBEAT │ │ └── skills/ # 内置 skills 与说明 ├── docs/assets/ │ ├── brand/ # 共用品牌 Logo 与主视觉资源 │ ├── site/ # 官网所用字体、图标、演示、二维码与架构图 │ └── promo/ # 宣传稿件与社交媒体素材 ├── gradle/ # Gradle Wrapper 文件 └── README.md ``` ## 社区 欢迎研究者、开发者,以及所有关注移动端 AI 实践的朋友加入 PalmClaw 社区。
**感谢所有贡献者。** 贡献者

[![Star History Chart](https://api.star-history.com/svg?repos=ModalityDance/PalmClaw&type=Date)](https://star-history.com/#ModalityDance/PalmClaw&Date)
## 许可证 本项目采用**双许可证模式**: - **开源许可证**:见 [LICENSE](LICENSE) 这是项目默认采用的许可证。它要求任何基于本项目代码进行的修改,只要被用于通过网络提供服务,也必须按照 AGPLv3 开源发布。 - **商业许可证**:见 [LICENSE-COMMERCIAL](./LICENSE-COMMERCIAL.md) 如果组织或个人希望将本软件集成进闭源产品或服务中,并且不受 AGPLv3 copyleft 要求约束(例如不公开修改内容),可以选择商业许可证。
在 GitHub 点 Star 反馈问题 参与讨论
感谢访问 PalmClaw!访问量