Skip to content

Repository files navigation

Claude Chat Mobile

把你电脑上的 Claude Code,带到手机上。

Claude Chat Mobile 是一个本机自托管的 Claude Code 远程控制台。它把本机 claude CLI 的会话接到手机或浏览器,让你离开电脑后,仍然可以新建或续接会话、查看任务进度、回答问题、审批工具调用和中断任务。

代码、Claude CLI、项目文件以及 CCM / Claude 的本地会话状态仍然运行或保存在你自己的电脑上。项目没有数据库、没有多租户、没有 SaaS 后端;模型请求仍由本机 claude CLI 按你现有的 Anthropic 官方登录或第三方网关配置发送。

中文 · English · 🌐 网站

License: AGPL v3 Node Agent SDK tested with claude CLI PWA CI

Claude Chat Mobile — 终端里的 claude,手机上也能用

为什么需要它?

Claude Code 可以在你的电脑上持续执行开发任务,但遇到提问、工具审批或需要人工决策时,通常仍然需要你回到电脑前。把这段交互搬到手机上:

电脑上的 Claude Code 正在工作
        ↓
你离开电脑
        ↓
手机查看进度 / 回答问题 / 审批工具 / 中断任务
        ↓
Claude Code 继续在原来的电脑上运行

先说清楚:Anthropic 官方的 Remote Control 已经覆盖了这个流程——如果你能使用官方 Remote Control,也接受它的账号与数据路径,官方是默认推荐,零部署。

Claude Chat Mobile 是为官方路径进不去、或不接受其控制面的人做的,价值立在三件官方给不了的事上:

  1. 官方 Remote Control 拒收你的配置。 它要求 claude.ai 订阅登录并直连 api.anthropic.com:API key、第三方网关 / ANTHROPIC_BASE_URL、Bedrock / Vertex / Foundry、企业 apps gateway、设置了 DISABLE_TELEMETRY 等遥测开关、ZDR 合规组织——这些配置下整条功能不可用。CCM 对模型通路零假设、零接触:你的 claude CLI 怎么配的,它就怎么用。
  2. 你要求控制面数据留在自己手里。 官方 Remote Control 连接期间会把会话 transcript(消息、回复、工具活动)存到 Anthropic 服务器用于跨设备同步;CCM 的控制面——服务、transcript、设备信任、推送、审计——全部落在你自己的机器上,公网入口由你选择,局域网内可完全闭环。
  3. 你要「一眼看全机」。 官方按会话逐个开启远程;CCM 把这台机器上发生过和正在发生的所有 Claude 会话——终端开的、上周的、忘了开开关的——都做成可见、可续接的控制台,外加文件浏览、git 变更、服务健康这些机器运维面。

它的目标不是重新做一个 AI 聊天产品,而是:

让你不在电脑前时,仍然可以安全、接近终端等价地操作本机 Claude Code——控制面不经过任何第三方会话中继。

(措辞边界:这不等于「数据绝不离开本机」——模型请求本来就由本机 claude CLI 按你现有的官方登录或网关配置发出;CCM 承诺的是除此之外不再多一条数据出口。)

适合谁?

如果你已经在使用 Claude Code,并且有下面这些需求,Claude Chat Mobile 比较适合你:

  • 你的 claude CLI 走第三方网关 / API key,或关闭了遥测——官方 Remote Control 对这些配置整条不可用;
  • 你不接受远程会话 transcript 存放在 Anthropic 服务器上,控制面要完全自持;
  • Claude 跑长任务时不想一直守在电脑前,希望从手机回答 AskUserQuestion、审批工具调用、收到「需要你」的通知;
  • 想要整台机器的会话总览:终端里开的、历史里躺着的,都能看、能续;
  • 希望继续使用原电脑上的项目、Claude CLI 配置和开发环境;
  • 希望自己掌控服务和数据,而不是把完整开发环境迁移到第三方 SaaS。

它可能不适合这些场景:

  • 你能使用官方 Remote Control,也接受其账号与数据路径——直接用官方,零部署;
  • 你只是想在手机上和 Claude 普通聊天;
  • 你目前并不使用 Claude Code;
  • 你希望注册账号后直接使用,而不想在自己的电脑上运行服务。

核心能力

  • 远程控制 Claude Code:新建和续接会话、流式查看输出、回答问题、审批工具、停止任务、切换模型 / 权限档 / effort。
  • 会话与工作区:多个工作区、多个会话,并可续接本机已有 Claude CLI 会话。
  • 项目内容交互:查看工具调用、Edit / Write diff、Read 内容、浏览和编辑授权工作区中的文件,支持上传文件、图片和粘贴截图。
  • 通知:通过 Web Push / ntfy 接收审批、提问和任务结果通知,并可选接入 Claude CLI hooks bridge。Android 上 Web Push 由 Google FCM 承载,中国大陆网络下订阅需要代理(iOS 走 Apple、ntfy 不经 Google),详见首次使用指南
  • 断线恢复:手机网络中断后重新连接,可以补齐缺失的会话事件。
  • 本机运维:提供 doctor 启动自检;macOS 还可选安装桌面控制台管理配置、日志、服务和设备审批。
  • PWA:支持安装到手机主屏幕,并提供完整中英文界面。

它是怎么工作的?

手机 PWA / 浏览器
        ↕
     Socket.io
        ↕
Claude Chat Mobile Server
      (本机)
        ↕
 Claude Agent SDK
        ↕
本机 claude CLI
        ↕
项目文件 / Claude 会话

手机和浏览器只是远程控制面

真正执行代码、读取项目、调用工具和维护 Claude 会话的仍然是你电脑上的 Claude Code。

一个重要的使用边界

同一个实时 Claude 会话同一时刻只有一个驾驶端。

终端正在驾驶时,Web 默认只读;需要时可以从 Web 显式续接,但可能产生会话分叉。终端和 Web 不会同时向同一个实时 Claude 进程输入内容。

完整的组件关系、Web / CLI 双通道、事件同步和会话接管机制见 架构说明

使用前提

你需要:

  • Node.js ≥ 20
  • 本机已经安装并可以正常使用 claude CLI;
  • 已登录 Claude 官方账号,或已经配置可正常工作的第三方网关;
  • 至少一个准备让 Claude Code 操作的项目目录。

⚠️ 用第三方网关时有一条容易踩的规则:网关的 ANTHROPIC_* 要放在 claude CLI 自己的通道里——工作区 .claude/settings.local.json(或 ~/.claude/settings.json)的 env 块,或启动 server 的那个 shell;写进 ccm.config.json 会在启动时被剥除——启动日志会逐个打印「已忽略」告警,doctor 也会提示。走 settings 文件时桌面控制台入口同样生效,只有 shell export 才必须走 headless 终端入口,细节见首次使用指南 · 官方订阅与第三方网关

平台支持:

平台 状态
macOS 一等支持
Linux 一等支持
Windows + WSL2 推荐路径
原生 Windows 实验性

Claude Chat Mobile 不包含 Claude Code,也不会替你安装或登录 Claude CLI

快速开始

如果 Claude Code 已经可以在你的电脑上正常运行,先任选一种方式取得代码。

只想跑起来 —— 下载 master 的源码归档(约 1.5 MB,只含运行所需的代码;master 只在发版时前进,就是最新发布):

curl -fsSL https://github.com/Ike-li/claude-chat-mobile/archive/refs/heads/master.tar.gz | tar xz
cd claude-chat-mobile-master

想改代码或跑测试 —— 克隆完整仓库:

git clone https://github.com/Ike-li/claude-chat-mobile.git
cd claude-chat-mobile

接下来两者相同:

node --version
which claude
claude auth status

npm ci --omit=dev
npm run setup
node scripts/doctor.js
npm start

npm run setup 会引导你生成本地配置、设置允许访问的工作区,并可选安装 CLI hooks bridge;macOS 上还可以选择安装桌面控制台。

启动成功后,终端会打印可在手机打开的局域网地址。

首次从其他设备访问时,需要批准该设备:

node scripts/device.js list
node scripts/device.js approve <ID>

然后在手机中打开启动日志给出的地址,即可进入工作区并向 Claude Code 发送第一条消息。

macOS 桌面端如果已经启动了 server,不要再执行第二个 npm start。按照 doctor 的提示使用桌面端菜单重启服务即可。

归档里的 package.json 原样保留,所以 npm run 仍会列出 test / check / lint 这类命令,但它们引用的测试树与门禁不在归档里、跑不了。需要它们时改用 git clone

完整的首次安装、配置、非交互 setup、PWA 和 CLI hooks 说明:

首次使用指南

远程访问

Claude Chat Mobile 支持从局域网到长期公网访问的不同方式:

场景 方式 适合
同一 Wi-Fi 局域网地址 最简单的首次使用
临时公网 Cloudflare Quick Tunnel、ngrok 等托管隧道 临时试用、演示
长期公网 固定域名 + Cloudflare Tunnel + Access 长期从外部网络访问
不经 Cloudflare Tailscale(推荐,tailscale serve 自带 HTTPS)、其他加密隧道 / VPN、自建反向代理 不希望流量经过 Cloudflare

装机向导会问「你打算怎么从手机访问」,答案写入 ACCESS_PROFILEdoctor 与手机端安全体检按它做针对性检查(产品不安装任何第三方隧道工具,只指路文档);跳过也不影响使用,随时可在手机「设置」里补选。

PWA 和 Web Push 需要 HTTPS;iOS Web Push 还要求 iOS 16.4+,并先将应用添加到主屏幕。

固定域名、Cloudflare Tunnel、Cloudflare Access、不经过 Cloudflare 的替代入口、长期运行和运维方式:

部署与运维

安全边界

Claude Chat Mobile 是一个可以远程触达本机 Claude Code,并间接获得本机代码执行能力的入口。

请把它当作开发机远程控制工具,而不是普通网页。

使用前需要理解这些边界:

  1. 单用户。 项目没有多用户或租户隔离,通过鉴权后的操作权限最终取决于运行 claude 的本机账号。
  2. 没有 Token 就不启动。 AUTH_TOKEN 是启动前提,任何绑定模式都一样——本机浏览器打开也要令牌,不存在「本地免鉴权」这条路。
  3. 工作区显式放行。 文件、会话和相关操作只能进入配置的 WORK_DIR / WORKDIRS,不要为了方便把整个 Home 目录加入工作区。
  4. 新设备需要信任。 除本机直连或已经通过公网身份层(当前实现为 Cloudflare Access,可选)的连接外,持有正确 Token 的新设备仍需要一次设备审批。Token + 设备审批就是公网基线,对 Tailscale、反向代理、直连等拓扑一视同仁。
  5. 继承 Claude Code 权限。 permissions.allow 等已有 Claude Code 权限规则会继续生效,公网使用前应检查 Bash、Write 等自动放行规则。
  6. 文件编辑属于直接写入。 内置文件编辑器不经过 Agent 的工具审批链,只能修改授权工作区内已存在的文件,并做范围校验、大小限制、哈希冲突检测和审计记录;不需要时可以通过 FILE_EDIT=off 关闭。长期公网暴露建议关闭——声明了公网入口(Cloudflare Access / PUBLIC_URL / 公网类 ACCESS_PROFILE)时 doctor 会提示,装机向导也会问这一项。

如果计划长期暴露到公网,请先阅读 部署与运维

安全漏洞请通过 GitHub Security Advisories 私下报告,不要公开提交 Issue。

文档

我想开始使用

首次使用指南 从已经可以运行 Claude Code 的电脑开始,一直到手机成功发出第一条消息;同时包含配置、迁移、PWA 和 CLI hooks 等说明。

部署与运维 局域网、公网访问、Cloudflare Tunnel、Cloudflare Access、不经过 Cloudflare 的替代入口、长期运行和日常运维。

配置项不单独维护静态列表,可以直接查看由 schema 生成的当前定义:

node scripts/config.js schema

我想了解它是怎么实现的

架构说明 Web / CLI 双通道、Agent SDK、事件同步、断线恢复和会话接管。

我想修改或维护项目

硬性规则与技术债 项目的架构不变量、设计取舍和明确不做的事情。维护者本机 Docker playground(干净 Linux HOME)见 getting-started.md,不是第三条产品入口。

展示契约 模型、思考强度、状态栏等 UI 信息的事实源和展示规则。

安全

安全策略 漏洞报告方式。

交流与反馈

  • Bug 与功能请求:提 GitHub Issue。有搜索、有归档——下一个撞上同样问题的人能直接找到答案,不必再问一遍。
  • 安全漏洞:走 GitHub Security Advisories 私下报告,不要公开提交 Issue。
  • 使用交流:QQ 群 881200369——用手机 QQ 扫下方二维码,或在电脑上点击加入

CCM 交流群 QQ 二维码,群号 881200369

⚠️ 在群里贴信息前请先脱敏。AUTH_TOKEN、公网域名、完整的 ccm.config.jsondoctor 原始输出都不要直接贴——这些足以让人接管你的机器,而群聊历史对所有成员(包括后来加入的)可见,贴出去就撤不干净了。

License

GNU AGPL-3.0-only © 2026 Ike-li,附带 Section 7 补充条款,详见 NOTICE

你可以使用、研究、修改和自托管本项目。若将修改后的版本作为网络服务向其他用户提供,需要遵守 AGPL 对应的源码提供义务;补充条款同时要求保留原作者署名并不得歪曲项目来源。

友链

About

Use your real local Claude CLI from your phone — same CLAUDE.md, MCP, skills & login. Self-hosted, locked by default.

Topics

Resources

Security policy

Stars

37 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages