[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74729":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":15,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":17,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":23,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":16,"starSnapshotCount":16,"syncStatus":28,"lastSyncTime":29,"discoverSource":30},74729,"PalmClaw","ModalityDance\u002FPalmClaw","ModalityDance","Your private AI assistant on your phone: simple, safe, and ready anytime. 你手机里的私人 AI 助手：简单、安全，随时可用。","https:\u002F\u002Fmodalitydance.github.io\u002FPalmClaw\u002F",null,"Kotlin",1098,94,67,1,0,3,17,18.93,"GNU Affero General Public License v3.0",false,"main",true,[],"2026-06-12 02:03:27","﻿\u003Ca name=\"readme-top\">\u003C\u002Fa>\n\n\u003Cp align=\"right\">\u003Ca href=\".\u002FREADME.zh-CN.md\">简体中文\u003C\u002Fa>\u003C\u002Fp>\n\n\u003Cdiv align=\"center\">\n  \u003Ch1>\n    \u003Cimg src=\".\u002Fdocs\u002Fassets\u002Fbrand\u002FPalmClaw-removebg-black.png#gh-light-mode-only\" alt=\"PalmClaw Line Logo (light mode)\" width=\"56\" \u002F>\n    \u003Cimg src=\".\u002Fdocs\u002Fassets\u002Fbrand\u002FPalmClaw-removebg-preview.png#gh-dark-mode-only\" alt=\"PalmClaw Line Logo (dark mode)\" width=\"56\" \u002F>\n    PalmClaw\n  \u003C\u002Fh1>\n  \u003Cp>Your private AI assistant on your phone: simple, safe, and ready anytime.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fmodalitydance.github.io\u002FPalmClaw\u002F\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FProject-Website-0A84FF?style=for-the-badge\" alt=\"Project Website\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FModalityDance\u002FPalmClaw\u002Freleases\u002Flatest\u002Fdownload\u002Fapp-release.apk\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDownload-APK-f39c12?style=for-the-badge&logo=android&logoColor=white\" alt=\"Download APK\">\n  \u003C\u002Fa>\n  \u003Ca href=\".\u002Fdocs\u002Fassets\u002Fsite\u002Fweixingroup.jpg\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FWeChat-Group-07C160?style=for-the-badge&logo=wechat&logoColor=white\" alt=\"WeChat Open Source Group\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FModalityDance\u002FPalmClaw\u002Freleases\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fdownloads\u002FModalityDance\u002FPalmClaw\u002Ftotal?style=for-the-badge&label=Release%20Downloads\" alt=\"Release Downloads\">\n  \u003C\u002Fa>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPlatform-Android-3DDC84?style=for-the-badge&logo=android&logoColor=white\" alt=\"Android\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLanguage-Kotlin-7F52FF?style=for-the-badge&logo=kotlin&logoColor=white\" alt=\"Kotlin\">\n\u003C\u002Fdiv>\n\n\u003Cp align=\"center\">\u003Cstrong>⬇️ Just want to download? \u003Ca href=\"#quick-start-download\">Jump to Quick Start\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n\n\u003Ca name=\"overview\">\u003C\u002Fa>\n## 📌 Overview\n\nPalmClaw is a personal assistant on your phone inspired by [OpenClaw](https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw), but designed for direct mobile deployment: run your AI agent on your phone without a PC.\n\n- 📱 Deploy and operate directly on Android.\n- 🔒 Local-first runtime for a safer and more private workflow.\n- ⚡ Simpler setup and daily use, while still supporting channels, tools, and automation.\n\n\u003Ca name=\"key-features\">\u003C\u002Fa>\n## ✨ Key Features\n\n- 📱 **Mobile-native deployment**  \n  Deploy and run directly on Android, with built-in access to local hardware and files.\n\n- ✨ **Simple workflow**  \n  All operations are done directly in the app UI, making setup and usage easier.\n\n- 🔐 **Stronger safety**  \n  Android App sandbox isolation provides a naturally safer runtime boundary.\n\n- 🧠 **Full agent stack included**  \n  Memory, skills, tools, and channels are all available in one mobile runtime.\n\n\n\u003Ca name=\"demos\">\u003C\u002Fa>\n## 🎬 Demos\n\n\u003Cdiv align=\"center\">\n  \u003Ctable width=\"100%\">\n    \u003Ctr>\n      \u003Ctd align=\"center\">\u003Cimg src=\".\u002Fdocs\u002Fassets\u002Fsite\u002Fdemos\u002Fstart.gif\" alt=\"Initial Setup Demo\" width=\"96%\">\u003C\u002Ftd>\n      \u003Ctd align=\"center\">\u003Cimg src=\".\u002Fdocs\u002Fassets\u002Fsite\u002Fdemos\u002Ffunc.gif\" alt=\"Core Features Demo\" width=\"96%\">\u003C\u002Ftd>\n      \u003Ctd align=\"center\">\u003Cimg src=\".\u002Fdocs\u002Fassets\u002Fsite\u002Fdemos\u002Ftool.gif\" alt=\"Tool Usage Demo\" width=\"96%\">\u003C\u002Ftd>\n      \u003Ctd align=\"center\">\u003Cimg src=\".\u002Fdocs\u002Fassets\u002Fsite\u002Fdemos\u002Fchannel.gif\" alt=\"Channels Configuration Demo\" width=\"96%\">\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\">\u003Csub>Initial Setup\u003C\u002Fsub>\u003C\u002Ftd>\n      \u003Ctd align=\"center\">\u003Csub>Core Features\u003C\u002Fsub>\u003C\u002Ftd>\n      \u003Ctd align=\"center\">\u003Csub>Tool Usage\u003C\u002Fsub>\u003C\u002Ftd>\n      \u003Ctd align=\"center\">\u003Csub>Channels Setup\u003C\u002Fsub>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\n\u003Ca name=\"news\">\u003C\u002Fa>\n## 📰 News\n\n\n- ✨ **[2026.04.06] v0.1.5 UI Refactor, Settings & Permissions Update:** Refined the UI and settings flow, unified permission handling, and fixed session, file, and MCP permission issues.\n- ✨ **[2026.03.28] v0.1.4 Channels, UI & Auto Update:** Improved channel stability, cleaned up UI details, and added automatic update checks and downloads.\n- ✨ **[2026.03.25] v0.1.3 Custom Provider & Auto-Detect Update:** Added custom provider names and improved endpoint auto-detection.\n- ✨ **[2026.03.24] v0.1.2 Provider & Settings Refresh:** Added more provider presets and refined model setup and settings UX.\n- 🌏 **[2026.03.21] v0.1.1 Chinese Docs & UX Update:** Added a Chinese README, improved Chinese errors, and fixed the MiniMax endpoint.\n- 🚀 **[2026.03.16] Initial Release:** PalmClaw **v0.1.0** is now live! 🎉\n\n\u003Ca name=\"roadmap\">\u003C\u002Fa>\n### 🛣️ Roadmap\n\n- [ ] Improve engineering quality and expand test coverage.\n- [ ] Improve tools.\n  - [ ] Build a visual tool management page.\n  - [ ] Add stronger search tools.\n- [ ] Improve skills.\n  - [ ] Build visual skill management and editing.\n  - [ ] Integrate SkillHub.\n  - [ ] Support desktop skill -> mobile-ready skill conversion.\n- [ ] Add more channel integrations.\n- [ ] Expand Android-native capabilities.\n  - [ ] Enable automation through accessibility and screen capture.\n  - [ ] Add more local app integrations.\n  - [ ] Add optional local Termux environment support.\n- [ ] Improve the harness architecture and agent loop, inspired by Claude Code.\n\n\n\n\u003Ca name=\"table-of-contents\">\u003C\u002Fa>\n## 📑 Table of Contents\n\n- [📌 Overview](#-overview)\n- [✨ Key Features](#-key-features)\n- [🎬 Demos](#-demos)\n- [📰 News](#-news)\n  - [🛣️ Roadmap](#️-roadmap)\n- [📑 Table of Contents](#-table-of-contents)\n- [🚀 Quick Start](#-quick-start)\n  - [👤 For Normal Users](#-for-normal-users)\n  - [🛠️ For Developers](#️-for-developers)\n- [🔌 Channels Configuration](#-channels-configuration)\n- [⚙️ How PalmClaw Works](#️-how-palmclaw-works)\n- [🗂️ Repository Structure](#️-repository-structure)\n- [🤝 Community](#-community)\n- [⚖️ License](#️-license)\n\n\u003Ca name=\"quick-start\">\u003C\u002Fa>\n\u003Ca name=\"quick-start-download\">\u003C\u002Fa>\n## 🚀 Quick Start\n\n\u003Ca name=\"for-normal-users\">\u003C\u002Fa>\n### 👤 For Normal Users\n\n1. Download the latest APK from the [Releases page](https:\u002F\u002Fgithub.com\u002FModalityDance\u002FPalmClaw\u002Freleases).\n2. Install the APK on your Android phone.\n3. Open PalmClaw and follow the in-app onboarding guide.\n4. Finish provider setup, then start chatting in the local session!\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FModalityDance\u002FPalmClaw\u002Freleases\u002Flatest\u002Fdownload\u002Fapp-release.apk\">\n    \u003Cimg src=\".\u002Fdocs\u002Fassets\u002Fsite\u002Fapp-download-qr.png\" alt=\"Scan to download PalmClaw APK\" width=\"128\" style=\"vertical-align: middle; border-radius: 4px;\" \u002F>\n  \u003C\u002Fa>\n  &nbsp;&nbsp;\n  \u003Ca href=\".\u002Fdocs\u002Fassets\u002Fsite\u002Fweixingroup.jpg\">\n    \u003Cimg src=\".\u002Fdocs\u002Fassets\u002Fsite\u002Fweixingroup.jpg\" alt=\"Join PalmClaw WeChat open source group\" width=\"128\" style=\"vertical-align: middle; border-radius: 4px;\" \u002F>\n  \u003C\u002Fa>\n  \u003Cbr \u002F>\n  \u003Csub>Scan to download the latest APK\u003C\u002Fsub>\n  \u003Csub>&nbsp;&nbsp;|&nbsp;&nbsp;\u003C\u002Fsub>\n  \u003Csub>Scan to join the WeChat Group\u003C\u002Fsub>\n\u003C\u002Fdiv>\n\n> [!IMPORTANT]\n> PalmClaw does not include hosted model access by default. You need to configure your own provider API key during setup.\n\n\u003Ca name=\"for-developers\">\u003C\u002Fa>\n### 🛠️ For Developers\n\n1. Install Android Studio and JDK 17.\n2. Clone the repository:\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FModalityDance\u002FPalmClaw.git\ncd PalmClaw\n```\n\n3. Open the project in Android Studio and wait for Gradle sync.\n4. Ensure `local.properties` points to your Android SDK path.\n5. Run the app on a physical device or emulator.\n\n> [!NOTE]\n> `local.properties` is machine-specific and should not be committed.\n\n\u003Ca name=\"channels-configuration\">\u003C\u002Fa>\n## 🔌 Channels Configuration\n\nPalmClaw currently supports these channels:\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Telegram\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n1. Set `Channel = Telegram`.\n2. Fill `Telegram Bot Token` and save.\n3. Send one message to your bot in Telegram.\n4. Tap `Detect Chats`.\n5. Select detected chat, then save binding.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Discord\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n1. Set `Channel = Discord`.\n2. Fill `Discord Bot Token`.\n3. Set target `Discord Channel ID`.\n4. Choose response mode (`mention` or `open`), optionally set allowed user IDs.\n5. Save binding.\n\n> [!TIP]\n> Invite the bot to the target server\u002Fchannel first.\n>\n> If using `mention` mode, mention the bot once to trigger replies in guild channels.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Slack\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n1. Set `Channel = Slack`.\n2. Fill `Slack App Token (xapp...)` and `Slack Bot Token (xoxb...)`.\n3. Set target `Slack Channel ID`.\n4. Choose response mode (`mention` or `open`), optionally set allowed user IDs.\n5. Save binding.\n\n> [!IMPORTANT]\n> Slack prerequisites:\n>\n> - Socket Mode enabled\n> - App token with `connections:write`\n> - Bot token with required message\u002Freply scopes\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Feishu\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n1. Set `Channel = Feishu`.\n2. Fill `Feishu App ID` and `Feishu App Secret`, then save once in PalmClaw.\n3. In Feishu Open Platform, make sure Bot capability is enabled. In `Events & Callbacks`, select `Long Connection`, then add `im.message.receive_v1`.\n4. In `Permission Management`, add `im:message` (send messages) and `im:message.p2p_msg:readonly` (receive messages). If you test by `@`-mentioning the bot in a group, also add `im:message.group_at_msg:readonly`.\n5. Publish the app, open it in Feishu, and confirm the `Long Connection` configuration while PalmClaw is still running.\n6. Send one message to the bot from Feishu.\n7. Tap `Detect Chats`.\n8. Select detected target (`open_id` for private chat, `chat_id` for group), then save again.\n9. Optional: set `Allowed Open IDs`.\n\n> If outbound works but inbound does not, the usual cause is that the receive permission, event subscription, publish\u002Fopen step, or Long Connection confirmation is still incomplete.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>Email\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n1. Set `Channel = Email`.\n2. Enable consent.\n3. Fill IMAP settings: host, port, username, password.\n4. Fill SMTP settings: host, port, username, password, from address.\n5. Save once to start mailbox polling.\n6. Send one email to this mailbox from target sender.\n7. Tap `Detect Senders`.\n8. Select sender and save again.\n9. Optional: toggle auto-reply on\u002Foff.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>WeCom\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n1. Set `Channel = WeCom`.\n2. Fill `WeCom Bot ID` and `WeCom Secret`.\n3. Save once to start long connection.\n4. Send one message to the bot from WeCom.\n5. Tap `Detect Chats`.\n6. Select detected target and save again.\n7. Optional: set `Allowed User IDs`.\n\n\u003C\u002Fdetails>\n\n> [!NOTE]\n> Recommended order for any channel:\n>\n> 1. Open the target session.\n> 2. Go to `Session Settings` -> `Channels & Configuration`.\n> 3. Select channel type and follow the setup instructions.\n\u003Ca name=\"how-palmclaw-works\">\u003C\u002Fa>\n## ⚙️ How PalmClaw Works\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\".\u002Fdocs\u002Fassets\u002Fsite\u002Farchitecture.png\" alt=\"PalmClaw architecture overview\" width=\"800\">\n\u003C\u002Fdiv>\n\n- 📩 **Message in**: input comes from local chat or connected channels.\n- 🤖 **Agent loop**: LLM decides, calls tools when needed, then generates response.\n- 🧠 **Context**: memory + skills guide every turn.\n- 📤 **Response out**: result is written to the session and sent back to the channels.\n\n\u003Ca name=\"repository-structure\">\u003C\u002Fa>\n## 🗂️ Repository Structure\n\n```text\nPalmClaw\u002F\n├─ app\u002F\n│  ├─ src\u002Fmain\u002Fjava\u002Fcom\u002Fpalmclaw\u002F\n│  │  ├─ ui\u002F                # Compose UI, settings, chat, onboarding\n│  │  ├─ runtime\u002F           # agent runtime, always-on, routing\n│  │  ├─ channels\u002F          # Telegram \u002F Discord \u002F Slack \u002F Feishu \u002F Email \u002F WeCom\n│  │  ├─ config\u002F            # config store and storage paths\n│  │  ├─ cron\u002F              # scheduled jobs\n│  │  ├─ heartbeat\u002F         # heartbeat runtime\n│  │  ├─ tools\u002F             # mobile tools exposed to the agent\n│  │  └─ skills\u002F            # skill loading and matching\n│  └─ src\u002Fmain\u002Fassets\u002F\n│     ├─ templates\u002F         # AGENT \u002F USER \u002F TOOLS \u002F MEMORY \u002F HEARTBEAT\n│     └─ skills\u002F            # bundled skills and guidance\n├─ docs\u002Fassets\u002F\n│  ├─ brand\u002F               # shared brand logos and artwork\n│  ├─ site\u002F                # docs site fonts, icons, demos, qr and diagrams\n│  └─ promo\u002F               # promotional articles and social-media resources\n├─ gradle\u002F                  # Gradle wrapper files\n└─ README.md\n```\n\n\u003Ca name=\"community\">\u003C\u002Fa>\n## 🤝 Community\n\nWe welcome researchers, builders, and mobile AI practitioners to join the PalmClaw community. 🌍\n\n\n\u003Cdiv align=\"center\">\n\n**Thanks to all contributors.**\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FModalityDance\u002FPalmClaw\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Fcontrib.rocks\u002Fimage?repo=ModalityDance\u002FPalmClaw\" alt=\"Contributors\" \u002F>\n\u003C\u002Fa>\n\n\u003Cbr\u002F>\u003Cbr\u002F>\n\n[![Star History Chart](https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=ModalityDance\u002FPalmClaw&type=Date)](https:\u002F\u002Fstar-history.com\u002F#ModalityDance\u002FPalmClaw&Date)\n\n\u003C\u002Fdiv>\n\n\n\u003Ca name=\"license\">\u003C\u002Fa>\n## ⚖️ License\n\nThis project is offered under a **dual licensing model**:\n\n- **Open Source License**: See [LICENSE](LICENSE)  \n  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.\n\n- **Commercial License**: See [LICENSE-COMMERCIAL](.\u002FLICENSE-COMMERCIAL.md)  \n  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.\n\n\n\u003Cdiv align=\"center\">\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FModalityDance\u002FPalmClaw\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FStar%20on%20GitHub-181717?style=for-the-badge&logo=github&logoColor=white\" alt=\"Star on GitHub\" \u002F>\n\u003C\u002Fa>\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FModalityDance\u002FPalmClaw\u002Fissues\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FReport%20Issues-e74c3c?style=for-the-badge&logo=github\" alt=\"Report Issues\" \u002F>\n\u003C\u002Fa>\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FModalityDance\u002FPalmClaw\u002Fdiscussions\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscussions-20c997?style=for-the-badge&logo=github\" alt=\"Discussions\" \u002F>\n\u003C\u002Fa>\n\n\u003C\u002Fdiv>\n\n\u003Cdiv align=\"center\">\n\nThanks for visiting PalmClaw! \u003Ca href=\"https:\u002F\u002Fvisitor-badge.laobi.icu\">\u003Cimg src=\"https:\u002F\u002Fvisitor-badge.laobi.icu\u002Fbadge?page_id=ModalityDance.PalmClaw&left_text=visits\" alt=\"Visitor Count\" \u002F>\n\u003C\u002Fa>\n\n\u003C\u002Fdiv>\n\n\n","PalmClaw 是一款专为手机设计的私人AI助手，旨在提供简单、安全且随时可用的服务。其核心功能包括直接在Android设备上部署和运行，通过本地优先的运行环境保障用户隐私与数据安全，并支持记忆、技能、工具及渠道等全栈代理能力。项目采用Kotlin语言编写，界面友好易用，所有操作均可在应用内完成。PalmClaw特别适合需要在移动设备上拥有个人智能助手的用户，无论是日常任务管理还是更复杂的自动化流程处理都能轻松应对。",2,"2026-06-11 03:50:33","high_star"]