heypandax/pairlet
heypandax/pairlet has 157 GitHub stars and 30 forks. Star changes are not measured yet. Last checked 2026-11-11 08:08 UTC. Last push 2026-11-07.
Pairlet (formerly CC Pocket / cc-pocket) — Continue your local AI coding tasks from phone, tablet, or desktop.
实测星标增长
- 24小时
- 更新延迟
- 7天
- 正在收集历史
- 15天
- 正在收集历史
- 1个月
- 正在收集历史
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
README.zh-CN.md
原文Pairlet
Pairlet 原名 CC Pocket(cc-pocket),是同一个项目的延续;历史记录和旧下载入口继续保留。
English | 简体中文
agent 留在你的电脑上,人在哪儿都能掌控全程。
Pairlet 是一个开源的本地优先控制面,用来遥控命令行编码 agent。agent 始终跑在你自己的机器、你自己的代码上;你用手机、平板或另一台电脑看它干活、批掉挡路的授权、接着原来的会话往下走、再翻一遍它改了什么。链路端到端加密,只经过一个零知识中继转发密文——不需要 Pairlet 账号,也不记录任何内容。Kotlin 从零写起,MIT 开源。
v1.9.4 支持六个 agent 后端:Claude Code、OpenAI Codex、OpenCode、Kimi Code(Preview)、ZCode 和 DeepSeek。它们的能力并不等价,选之前先看能力矩阵。
🌐 官网 · 🛠️ 工程 Wiki · 📖 用户手册 · 💬 帮助与客服(免登录) · 📦 最新 Release
真实产品界面,演示数据由脚本生成——重跑 bash marketing/site/generate-assets.sh 即可重现。出处见 site/assets/product/manifest.json。
开发版本已接入 Firebase/GA4 产品结果事件与 Sentry 诊断,并提供使用与诊断数据的共享开关。配置、隐私边界、已验证结果及剩余发行要求见可观测性说明。
三步上手
1 · 装 App —— App Store(iPhone · iPad)· TestFlight 测试版 · Android APK。想用电脑?见桌面 App。
2 · 在跑 agent 的那台电脑上装 daemon —— 任一受支持的 CLI 都行,不是非要 Claude:
curl -fsSL https://raw.githubusercontent.com/heypandax/pairlet/main/scripts/install.sh | bash # macOS · Linux
irm https://raw.githubusercontent.com/heypandax/pairlet/main/scripts/install.ps1 | iex # Windows
3 · 配对 —— 跑 pairlet pair,用 App 扫终端里打出的二维码(或敲那 6 位码)。连上了,端到端加密。
pairlet 是简短命令,原来的 cc-pocket-daemon 及全部子命令仍可使用。旧安装尚无 pairlet 时,继续使用旧命令,并通过原安装脚本或包管理器升级。
包管理器、国内镜像、升级和各平台细节:见安装细节。
四件事
| 任务 | 你能拿到什么 | |
|---|---|---|
| 01 | 查看 | 跨设备看流式输出、带耗时的工具事件、子 agent 卡片和后台任务状态。项目、会话、用量都能按 agent 筛。 |
| 02 | 授权 | agent 一请求授权,手机立刻收到。几秒钟允许或拒绝;没顾上,超时也会自动拒绝。 |
| 03 | 继续 | 原地接管正在跑的会话,不无故分叉;手机和桌面 App 都能直接起新任务;断线重连后补齐漏掉的输出。 |
| 04 | 检查 | 改动文件、行级 diff、文件预览、上下文与用量。自己发的提示词里的图片,回放时还在。 |
能力按后端不同,下面这张矩阵是准。
Agent 支持
v1.9.4 的公开能力已对照 main 分支的 e9ee816f 提交核验。机器可读版本:site/public-capabilities.json。
| Agent | 核心会话 | 审批与模式 | 改动与 diff | 用量 |
|---|---|---|---|---|
| Claude Code | ✓ 支持 | ✓ 支持 | ✓ 支持 | ✓ 支持 |
| OpenAI Codex | ✓ 支持 | ✓ 支持 | ✓ 支持 | ✓ 支持 |
| OpenCode | ✓ 支持 | ✕ 不支持 —— 恒为 Full access | ✕ 不支持 | ✓ 支持 |
Kimi Code Preview |
✓ 支持 | ✓ 支持 | ✕ 不支持 | ✓ 支持 · v1.8.0 新增 |
| ZCode | ✓ 支持 | ✓ 支持 | ✕ 不支持 | ✓ 支持 · v1.8.0 新增 |
DeepSeek Harness 有限 v1 |
✓ 支持 | ✓ 支持 | ✕ 不支持 | ✕ 不支持 |
- 核心会话指:发现、回放、新建、恢复、收发文本、实时流式。六个后端全都做得到。
- OpenCode 没有可执法的交互审批。
opencode run本身就没有审批协议,所以这类会话恒为 Full access——App 会直接说明,而不是摆出一排它根本管不住的模式。 - Kimi Code 是 Preview。 DeepSeek 已支持,但很窄:审批与选择题已桥接到 App,但 sandbox 模式在启动时定死(改模式会重启会话);另外没有改动文件与 diff、没有用量统计、不支持切换模型。
- DeepSeek Harness 自己没有超时。 放着不管,一条没人回答的审批或提问会让这一回合一直挂着——它不会自动拒绝。Pairlet 把这类请求接到 daemon 统一的审批时限上:审批超时按拒绝回,提问超时按跳过回,让「没人回答」有个结果而不是永远等下去。DeepSeek 也没有「总是允许」——每次都是一次性决定。
- 能力边界跟随正式 Release。完整说明见能力页与用户手册。
架构与信任边界
flowchart LR
app["📱🖥️ Pairlet App<br/>(手机 · 平板 · 桌面)"] -- "wss · 密文" --> relay["中继<br/>(零知识 broker)"]
relay -- "wss · 密文" --> daemon["本机 daemon<br/>(你的电脑)"]
daemon -- "stdio" --> agent["agent CLI<br/>(claude · codex · opencode · kimi · zcode · DeepSeek)"]
daemon 跑在你的电脑上,把 agent CLI 当子进程驱动,并主动向外连中继——不用开任何入站端口。中继只做两件事:帮设备配对、转发不透明的加密帧;它不持有消息内容,也不持有私钥。App 与 daemon 之间跑一条端到端会话(P-256 ECDH + HKDF + AES-256-GCM,X3DH/Noise 式握手),明文自始至终只在这两个可信端点上。同一台电脑上的桌面 App 默认直连 daemon;手机要在同一局域网内直连(延迟更低),运行 pairlet config --direct-connect lan 后重启 daemon。中继是「人在外面」时的兜底。配对可设有效期,也可随时吊销。
必须说清的限制:agent 仍以你本机操作系统用户的权限执行——端到端加密不等于沙箱。OpenCode 会话没有可执法的交互审批。项目自定义的 Noise 式通道也还没做过独立第三方审计。首次配对目前依赖中继未被攻破,配对后可核对设备指纹(pairlet devices 与 App「关于」)。威胁模型见 docs/SECURITY.md。安全问题请走 GitHub security advisories 私下报告。
平台与分发
| 组成 | 正式分发 |
|---|---|
| 手机 / 平板 App | iOS · iPadOS(App Store、TestFlight)· Android APK |
| 桌面 App | macOS Apple 芯片 · Intel(已签名 .dmg)· Windows x86_64 .msi。Linux x86_64 .deb · .rpm · arm64 .deb · .rpm(未签名;.AppImage 构建成功时也会随版附上)。 |
| 本机 daemon | macOS Apple 芯片 · macOS Intel · Linux x86_64 · Linux arm64 · Windows x86_64 |
| 鸿蒙 | 签名 HAP,Preview——能力受限 |
| 中继 | 默认走托管的零知识中继,也支持自托管 |
桌面 App 和本机 daemon 是两个不同的安装包:前者是客户端,后者才是真正跑 agent 的那一端。
安装细节
macOS —— 已签名公证
curl -fsSL https://raw.githubusercontent.com/heypandax/pairlet/main/scripts/install.sh | bash
pairlet pair
下载会对着 Release 的 SHA256SUMS 校验,装进 ~/.local(一个版本一个目录),并注册 launchd 服务:开机自启、断线自己重连。想用 Homebrew:brew install --cask heypandax/tap/cc-pocket(必须写全名,另有一个不相干的 cask 也叫 cc-pocket)。
Linux —— x86_64 / arm64 daemon
curl -fsSL https://raw.githubusercontent.com/heypandax/pairlet/main/scripts/install.sh | bash
pairlet pair
拉一个自带 JRE 的独立包(不依赖系统 Java),装进 ~/.local,注册 systemd --user 服务。语音转写用 ffmpeg,不是 macOS 的 afconvert。Linux 桌面 App 没有正式安装包,只能自己从源码构建。
Windows —— x86_64
irm https://raw.githubusercontent.com/heypandax/pairlet/main/scripts/install.ps1 | iex
一条命令搞定:装好、注册登录时的计划任务、直接进入配对。想用 Scoop:scoop bucket add heypandax https://github.com/heypandax/scoop-bucket,再 scoop install cc-pocket-daemon。
国内镜像
GitHub 在国内下载很慢,所以安装脚本和 Release 产物都在中继机上做了镜像:curl -fsSL https://pocket.ark-nexus.cc/dl/install.sh | bash(Windows:irm https://pocket.ark-nexus.cc/dl/install.ps1 | iex)。同一个脚本、同样校验 checksum,失败会自动回落到 GitHub。daemon 自升级也走这个镜像。
升级
pairlet version 会告诉你:现在跑的是哪个版本、当初怎么装的、以及升级这一份安装该用哪条命令——离线可用,daemon 没起来也能问。App 里在设置 ▸ 版本看到的是同一份信息。
用一键脚本装的 daemon 会自己保持最新:每天检查,后台装好。不想要就 pairlet config --auto-update off,改成只给手机推一条通知。Homebrew、Scoop 和 Windows 装的永远不会自升级,走各自的包管理器:brew upgrade --cask heypandax/tap/cc-pocket、scoop update cc-pocket-daemon。桌面 App 检查更新失败时会明说失败,不会装作「已是最新」。
开发版本在设置 ▸ 帮助与关于提供更新操作:App 更新可跳转 App Store;受支持的托管 macOS/Linux daemon 可由手机请求更新。安装期间暂停新消息和新会话,已有任务仍可审批、回答问题或停止。包管理器和开发安装保留原来的更新命令,详见更新流程。
在 Claude 和 Codex 会话中输入 /usage,会打开本地订阅额度面板,桌面分栏也支持。受支持的 Codex CLI 还会展示已获得的重置卡,供选择并确认兑换。兑换结果未确定时,使用明确的重试入口确认原操作,再选择另一张卡。
使用 OpenCode
在运行 daemon 的电脑上安装 OpenCode CLI,并在 OpenCode 中配置模型提供商。先确认该电脑上的 opencode --version 和一次 OpenCode 对话能够正常完成。
daemon 会查找独立安装目录 ~/.opencode/bin,以及 PATH 和包管理器目录,让后台服务也能发现标准安装,无需用户手动创建链接。这项路径修复在 v1.9.8 之后加入;现有 v1.9.8 用户需要升级到包含此修复的 daemon 版本。
自定义 CLI 路径或仍使用旧版 daemon 时,可用 pairlet service-install --apply --opencode-bin /absolute/path/to/opencode 持久保存绝对路径。该命令会重启服务,应先结束活跃会话,并带上已有的自定义服务选项,例如 --relay。仅在终端里导出环境变量,不会改变已运行的后台服务环境。
走第三方网关也能用
如果你把 Claude Code 接在 LLM 网关或 API 中转上(ANTHROPIC_BASE_URL),官方 Remote Control 从 v2.1.196 起会被禁用——它要求直连 api.anthropic.com。Pairlet 是在你本机用 stdio 驱动 CLI,端点是什么无所谓。daemon 会识别出网关型 ANTHROPIC_BASE_URL,模型选择器把常见厂商 id(DeepSeek、GLM、Kimi、Qwen、MiniMax)做成一键预设,旁边还留了自定义 id 输入框。某个 id 最终打到哪个模型,由你的网关决定。
从源码构建
构建固定使用 Gradle 9.4.1、Kotlin 2.4.20、Compose Multiplatform 1.12.0 与 AGP 9.2.1(Android compile SDK 37),请使用 ./gradlew。:mobile:composeApp 保留跨平台与各平台代码,Android 应用由 :mobile:androidApp 打包。
| 模块 | 做什么 | 技术栈 |
|---|---|---|
:protocol |
共享 wire 协议(pocket/* 帧)——唯一事实源 |
Kotlin Multiplatform + kotlinx.serialization |
:daemon |
跑在你电脑上,把 agent CLI 当子进程驱动,主动外连中继 | Kotlin/JVM + Ktor |
:relay |
云端 broker:设备密钥配对、密文路由、多租户、限流 | Kotlin/JVM + Ktor + SQLite |
:mobile |
Pairlet App 本体 | Compose Multiplatform —— Android · iOS · 桌面 |
需要 JDK 17(任意发行版——版本对不上时 Gradle toolchain 会自己下)、Android SDK(ANDROID_HOME 或 local.properties;纯 JVM 任务也需要 Android 模块的配置),以及至少一个装好并登录的 agent CLI。要构建移动端,先把提交在仓库里的 Firebase 占位文件复制一份(真的 Firebase 项目只有推送 / 统计才需要):
cp mobile/androidApp/google-services.json.template mobile/androidApp/google-services.json
本机检查(不走中继、不起 daemon,开发用):
./gradlew :protocol:check # 协议契约测试
走中继(离开局域网,真实产品路径):
./gradlew :daemon:installDist
daemon/build/install/cc-pocket-daemon/bin/pairlet run --relay wss://<你的中继>
daemon/build/install/cc-pocket-daemon/bin/pairlet pair # 另开一个终端
构建 App:Android 用 ./gradlew :mobile:androidApp:assembleDebug;iOS 用 iosApp/iosApp.xcodeproj(Xcode——先把 iosApp/iosApp/GoogleService-Info.plist.template 复制成同目录的 GoogleService-Info.plist);桌面端(含 Linux)用 ./gradlew :mobile:composeApp:packageDistributionForCurrentOS。iOS 真机安装见 docs/ios-device.md。
文档
- 官网 · 完整能力列表
- 用户手册 · 帮助与客服(免登录)
- 安全模型与威胁分析 ——
docs/SECURITY.md - 运行 / 运维 daemon ——
docs/RUN.md· 中文使用文档 ——docs/USAGE.md - 中继部署(Caddy + Cloudflare + systemd)——
deploy/README.md - 产品素材管线 ——
marketing/site/README.md - 设计交付归档 ——
docs/design/· 出处 / 独立实现声明 ——docs/ANTIPLAGIARISM.md
参与贡献
欢迎提 issue 和 PR —— CONTRIBUTING.md 写了构建前置、测试入口,以及哪些脚本只给维护者用。安全问题请走 GitHub security advisories 私下报告。
许可证
MIT —— 见 LICENSE。
探索相关项目
affaan-m/ECC
智能体执行与控制框架的性能优化系统。面向 Claude Code、Codex、Opencode、Cursor 等,涵盖技能、本能、记忆、安全与研究优先的开发。
301,010 星标NousResearch/hermes-agent
与你一同成长的智能体
262,591 星标multica-ai/andrej-karpathy-skills
一个用于改进 Claude Code 行为的 CLAUDE.md 文件,源自 Andrej Karpathy 对 LLM 编程陷阱的观察。
232,034 星标firecrawl/firecrawl
借助来自网络及其他来源的数据,强化你的 AI 智能体。正在构建面向超级智能的资料库。🔥
200,444 星标