by JayCRL
Turn your phone into the control center for an AI coding assistant CLI session (Claude or Codex) running on your computer.
# Add to your Claude Code skills
git clone https://github.com/JayCRL/MobileVC# 1. 全局安装
npm install -g @justprove/mobilevc
# 2. 启动服务(首次会引导配置)
mobilevc start
# 3. 访问 Web 端
# 浏览器打开 http://localhost:8001
启动后会自动显示:
方式一:扫码连接
方式二:手动配置
连接成功后,在输入框输入
claude或codex即可进入 AI 会话模式,开始与助手对话。
mobilevc status # 查看服务状态
mobilevc logs # 查看日志
mobilevc logs --follow # 实时日志
mobilevc config # 重新配置
mobilevc stop # 停止服务
The root directory now keeps only entry-point docs and release notes. Topic docs live under docs/:
No comments yet. Be the first to share your thoughts!
如果你想从源码编译或参与开发:
# 克隆仓库
git clone https://github.com/JayCRL/MobileVC.git
cd MobileVC
# 安装依赖
npm install
# 构建 Flutter Web
cd mobile_vc
flutter pub get
flutter build web --release
cd ..
# 同步 Web 构建产物
npm run sync:web
# 启动 Go 后端
AUTH_TOKEN=test go run ./cmd/server
# 或构建二进制
go build -o mobilevc-server ./cmd/server
./mobilevc-server
cd mobile_vc
flutter pub get
flutter run
MobileVC 不是桌面终端的镜像,也不是远程桌面的替代品。
它做的是一件更直接的事:把电脑上的 AI 助手 CLI 会话变成可以被手机完整操控的工作台。
你不在电脑前,也能继续把任务推进下去:
MobileVC 解决的不是”怎么远程看见电脑”,而是:
怎么让你只靠手机,就能完成电脑上的几乎全部 AI 助手工作流。
当前主线版本:0.2.0
整理基线:2026-04-28 当前工作区
~/.claude/projects/<cwd>/*.jsonl,在会话列表显示为”电脑 Claude”,可直接 resume~/.codex/state_5.sqlite 和 ~/.codex/history.jsonl,在会话列表显示为”电脑 Codex”session_resume,并带上 lastSeenEventCursor / lastKnownRuntimeStatesession_list,会话列表跟随当前 cwdOwnership 字段在创建时标记 mobilevc,桌面 Claude CLI 接管时升级为 claude-native,防止切后台误入观察模式ExecutionActive 在执行期间锁存为 true,切换前后台不再出现”运行中↔等待输入”的状态跳动control_response,避免授权后热重启循环;approve 会带回原始 tool input 的 updatedInputpermission-model-autopermissionRequestId 回来时,后端会重新下发当前待处理权限请求,用户重新点一次即可,不会把旧请求误批准_isStopping 状态,banner / 按钮 / 输入框语义一致npm run sync:web 会把 mobile_vc/build/web/ 同步到 cmd/server/web/cmd/server/web/,不再以根目录 web/ 作为当前 source of truthmobile_vc/scripts/,当前仓库已跟踪 iOS OTA、TestFlight 和安装页渲染流程详细变更历史见 CHANGELOG.md。
手机上的操作不该依赖键盘盲输。MobileVC 把 AI 助手会话的关键等待态拆出来,做成更适合触摸屏的一键动作和可视化面板:
你不需要守在桌面前,也不需要回到键盘旁。
MobileVC 不是为了展示”能远程看见什么”,而是为了让你真正把事做完,而且做得更快、更直观:
这是一套为手机设计的 AI 助手控制台。
管 AI 助手会话
Wall time、空 Output: 报头、重复错误),时间线只保留有效内容inactive 状态收到的提醒会在真正进入后台后补发inactive 恢复到前台时也会补抓一次遗漏提醒,并按内容指纹去重adb、emulator、可用 AVD 和已连接设备WebRTC + H264 实时推送模拟器画面到移动端adb tapMobile browser / Flutter app
│
▼
MobileVC Go server
│
├─ WebSocket event stream
├─ Assistant CLI runtime / PTY runner
├─ ADB / Android Emulator + WebRTC(H264) bridge
├─ session + projection store
└─ Python ChatTTS sidecar (optional)
cmd/server/main.go/ws、/healthz、/download、/api/tts/synthesizemobile_vc/lib/main.dart -> mobile_vc/lib/app/app.dartSessionController 驱动SessionHomePageGo 后端通过结构化事件流向前端推送状态,例如:
runtime_phaseinteraction_requestsession_historyskill_catalog_resultmemory_list_resultfile_diffprompt_requestagent_state这套设计的核心不是“远程操作一台电脑”,而是:
让手机成为你操控电脑上 AI 助手的主入口。
推荐按照下面这条路径上手:
详细步骤见上方"🚀 快速开始"章节。
MobileVC 支持把 Claude 或 codex 作为 AI 引擎使用(例如在移动端连接配置里把 Engine 设置为 codex)。
Engine=codex 路由为 codex "<prompt>"。codex。runtime_info: doctor 会额外检查 codex CLI 是否可用。说明:当前“会话热恢复/权限热切换”在支持
resume的引擎下体验更完整;Codex 以通用 PTY 交互能力为主。
当你在 Flutter 端进入某个项目目录后,再打开“会话列表”,MobileVC 会:
cwd 传给后端这意味着你可以直接在手机端:
codex resume ...实现方式上,后端会读取本机:
~/.codex/state_5.sqlite~/.codex/history.jsonl并为这些电脑端原生会话建立 MobileVC 本地镜像记录。镜像只负责:
codex resume <session-id> 续聊列表里标记为 电脑 Codex 的会话就是这类原生 Codex 会话。它们支持加载和继续,不支持在 MobileVC 内删除。
Smoke test:运行
AUTH_TOKEN=test ./scripts/test_smoke_flow.sh可快速验证后端、WebSocket 与会话主链路。Codex smoke:运行
AUTH_TOKEN=test ./scripts/smoke_codex_backend.sh可验证 Codex 适配后的后端启动、WS 会话与基础交互链路。
后端会优先自动探测:
ADB_PATH / EMULATOR_PATHANDROID_HOME / ANDROID_SDK_ROOT~/Library/Android/sdk如果你有多个 ADB server 冲突,也可以显式指定:
ADB_SERVER_PORT=5038 AUTH_TOKEN=test go run ./cmd/server
进入方式:
ADB 调试WebRTC + H264 建立,点击控制通过 DataChannel 回传说明:
ADB_SERVER_PORTclaude
# 或
codex
如果你想绕过 Node 启动器,原来的方式仍然可用:
AUTH_TOKEN=test go run ./cmd/server
cd mobile_vc
flutter pub get
flutter run
确保 host / port / token 配置正确。
在 iOS / Android 上,如果 app 已退到后台但当前会话还在运行,客户端会自动开启约 90 秒的短时后台保活,尽量把最后一轮回复和提醒接住。
建议优先运行一次 smoke test,先确认本地后端、鉴权和 WebSocket 主链路正常。
运行前请先确认本地 Go 服务已启动且 AUTH_TOKEN 与测试命令一致。
可直接运行 AUTH_TOKEN=test ./scripts/test_smoke_flow.sh 做一次最小主链路自检。
建议先启动 Go 服务,再运行一次最小主链路自检命令。