Skip to content

Latest commit

History

46 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

AgentLink

Claude Code,装进口袋。

本机继续写代码 · 手机审批权限 · 同一会话接着聊

ReleaseFlutterClaude CodeNode.jsWebSocket

⬇️ 下载 v0.3.0 · 快速开始 · 架构

AgentLink 主机台

AgentLink 手机端

为什么用 AgentLink?

Claude Code 在电脑上跑得很嗨,但权限弹窗、确认提问一来,你就得盯着屏幕点。AgentLink 把这些「等人」的瞬间接到手机:

  • 权限放行 — Bash / 写文件 / AskUserQuestion,手机一点允许或选选项
  • 回合续聊 — Stop 之后在手机回复,Claude 同一会话继续,不用跑回键盘
  • 双端一体 — Windows EXE 主机台启动 Bridge;Android APK 配对进会话
  • 后台保活 — 连上后可回桌面,有审批会通知你

电脑安心 coding,手机当遥控器。


交付物

产物命令说明
Windows EXEcd android && flutter build windowsBridge 主机控制台(启动/停止、配对码、安装 Hook)
Android APKcd android && flutter build apk --release手机端审批与对话

同一套 Flutter 工程:Platform.isWindows 进入主机台,Android 进入手机 App。

Windows 运行前请确保:

  1. 已安装 Node.js(PATH 可用)
  2. bridgenpm install && npm run build
  3. 主机台能找到 bridge/ 目录(仓库旁路或设置环境变量 AGENTLINK_BRIDGE_ROOT

输出目录:

  • Windows:android/build/windows/x64/runner/Release/AgentLink.exe
  • APK:android/build/app/outputs/flutter-apk/app-release.apk

架构

Flutter Windows EXE --spawn--> Node Bridge
Android App ←WebSocket→ Node Bridge
↕ HTTP hooks
Claude PermissionRequest / Stop

使用教程(推荐流程)

整体顺序:装依赖 → 构建 Bridge → 装 Hook → 开主机台 → 开手机/模拟器 → 配对 → 用 Claude

1. 环境准备

组件用途
Node.js 18+跑 Bridge
Flutter(stable)编 Windows 主机台 / Android App
Visual Studio 2019/2022 +「使用 C++ 的桌面开发」编 Windows EXE(仅 Windows 主机台需要)
Android SDK + 至少一台 AVD命令行启动模拟器(本教程用 VS Code 终端,不依赖 Android Studio 界面)
Claude Code(本机 claude触发权限与回合结束 Hook

克隆仓库后:

cd bridge
npm install
copy bridge.config.example.json bridge.config.json # Windows cmd# 或: cp bridge.config.example.json bridge.config.json
npm run build

编辑 bridge/bridge.config.json 时,端口默认 9876 即可;配对码也可稍后在主机台里生成。

2. 安装 Claude Hook(只需做一次,或换端口后重装)

任选一种:

方式 A — 命令行

cd bridge
npm run install-hook

方式 B — Windows 主机台

启动主机台后点「安装 Hook」。

装完后 务必重启本机 Claude Code(关掉再开 claude),否则 Hook 不生效。

3. 启动 Windows 主机台(Bridge)

开发调试:

cd android
flutter pub get
flutter run -d windows

或使用已构建的 EXE:

cd android
flutter build windows
# 运行:# android\build\windows\x64\runner\Release\agentlink.exe

EXE 旁或本机需能找到 bridge/(含已构建的 dist/)。找不到时设置:

$env:AGENTLINK_BRIDGE_ROOT="D:\2026AppDev\AgentLink\bridge"

在主机台中:

  1. 确认左侧「Bridge 目录」正确
  2. (可选)改端口 / 换配对码(需在未运行时)
  3. 启动 Bridge
  4. 状态变为「运行中」;右侧出现 ws://IP:端口?code=配对码
  5. 浏览器可自检:http://127.0.0.1:9876/health

Android 虚拟机(模拟器)教程

没有真机时,在 VS Code 终端用命令行启动 AVD,再跑 AgentLink App 连本机 Bridge。
不要依赖 Android Studio 图形界面点启动;全程用终端即可。

为什么模拟器地址是 10.0.2.2

  • 模拟器里的 127.0.0.1 指向模拟器自己,不是你的 Windows。
  • Android 模拟器规定:访问宿主机用 **10.0.2.2**。
  • 因此 Bridge 跑在电脑 9876 时,App 里应填:
10.0.2.2:9876

配对码用主机台左侧显示的 6 位数字(不要用连接串里的 ?code= 整段去填「配对码」框——地址框填 主机:端口,配对码框填 6 位数字)。

A. 配置 PATH(PowerShell / VS Code 终端)

把 Android SDK 的 emulatoradbavdmanager 加进当前终端(按你本机 SDK 路径改):

$sdk="$env:LOCALAPPDATA\Android\Sdk"$env:ANDROID_HOME=$sdk$env:ANDROID_SDK_ROOT=$sdk$env:Path="$sdk\emulator;$sdk\platform-tools;$sdk\cmdline-tools\latest\bin;$env:Path"

自检:

emulator -version
adb version

若提示找不到命令,先确认本机已装 Android SDK(Flutter 的 Android toolchain 通常会装好),并改正上面的 $sdk 路径。

B. 列出并启动虚拟机

在 VS Code 终端执行:

emulator -list-avds

记下输出里的 AVD 名称(本仓库环境示例为 Pixel_6_API_34),然后在新终端标签启动:

# 推荐:本机无 Vulkan / 报 swiftshader_indirect 无效时用软件渲染
emulator -avd Pixel_6_API_34 -gpu swiftshader -accel on
# 若仍黑屏或闪退,再试:# emulator -avd Pixel_6_API_34 -gpu software -accel on# emulator -avd Pixel_6_API_34 -gpu swangle -accel on

也可后台启动:

Start-Process emulator -ArgumentList "-avd","Pixel_6_API_34","-gpu","swiftshader","-accel","on"

说明:新版 emulator 已不再支持旧选项 swiftshader_indirect。若 AVD 配置里写了该值,启动时会报错并回退;请始终在命令行显式加 -gpu swiftshader(或 software)。
Host Vulkan driver is not supported 在多数笔记本上只是警告,用软件 GLES 仍可正常进桌面(会慢一些)。

等到模拟器桌面出来后,另开终端检查:

adb devices
# 应看到 device,而不是 offline

emulator -list-avds 为空:说明还没有 AVD。可用命令行创建一台(需已通过 sdkmanager 装过系统镜像),例如:

sdkmanager "system-images;android-34;google_apis;x86_64"
avdmanager create avd -n Pixel_6_API_34 -k "system-images;android-34;google_apis;x86_64"-d pixel_6

创建后再执行带 -gpu swiftshader 的启动命令。

C. 确认 Flutter 能看到模拟器

cd d:\2026AppDev\AgentLink\android
flutter devices

应能看到类似 sdk gphone64 ... (mobile)emulator-5554

D. 在虚拟机里安装并运行 App

先保证本机 Bridge 已在主机台启动(见上文第 3 步)。在 VS Code 终端:

cd d:\2026AppDev\AgentLink\android
flutter pub get
flutter run -d emulator-5554# 若 flutter devices 里只有一台模拟器,也可直接:# flutter run

或先打 APK 再装:

flutter build apk --debug
adb install -r build\app\outputs\flutter-apk\app-debug.apk

E. 在 App 里配对(模拟器专用)

  1. 打开 AgentLink
  2. Bridge 地址填:10.0.2.2:9876(端口若改过则同步改)
  3. 配对码填主机台显示的 6 位数字
  4. 连接 Bridge
  5. 成功后主机台状态变为「手机已连接」;App 可进入会话

F. 模拟器常见问题

现象处理
emulator 不是内部命令按上文 A 配置 PATH,或用完整路径:& "$env:LOCALAPPDATA\Android\Sdk\emulator\emulator.exe" -list-avds
list-avds 为空sdkmanager + avdmanager create avd 先建一台
swiftshader_indirect is not valid / Vulkan 警告-gpu swiftshader-gpu software 启动(见上文 B)
模拟器黑屏 / 立刻退出-gpu software;关闭其他占 GPU 的程序后再开
flutter devices 没有模拟器等 AVD 完全进桌面后再查;adb devices 应为 device
连接失败 / 超时确认主机台已「运行中」;地址必须是 10.0.2.2 不是电脑局域网 IP
一直转圈看主机台日志;防火墙是否拦 Node;curl http://127.0.0.1:9876/health
装不上 APKadb devices 是否 online;优先用 flutter run

真机教程(简要)

  1. 手机与电脑连同一 Wi‑Fi(不要用访客网络隔离)
  2. 主机台右侧复制局域网地址,例如 192.168.1.10:9876不要10.0.2.2
  3. App 填该地址 + 配对码 → 连接
  4. 开发安装:flutter run(USB 调试);或安装 release APK

日常使用(配对成功后)

  1. 本机终端进入项目,运行 claude
  2. Claude 需要权限时 → 手机/模拟器弹出审批(允许 / 拒绝 / 始终允许)
  3. Claude 回合结束等待输入时 → App 可快捷回复或「交还电脑」
  4. 主机台可看:手机是否在线、待审批数量、Bridge 日志
  5. 用完后在主机台点 停止;Android 端「断开」会结束保活连接

快速开始(开发速查)

整体顺序:EXE 启 Bridge → 开虚拟机 → 跑 APK → 配对 → 本机用 claude

0. 首次准备(只需一次)

cd d:\2026AppDev\AgentLink\bridge
npm install
copy bridge.config.example.json bridge.config.json
npm run build
npm run install-hook

装完 Hook 后重启本机 claude

1. 启动 Windows EXE(主机台)

# 开发模式
cd d:\2026AppDev\AgentLink\android
flutter run -d windows
# 或直接跑已构建的 EXE# android\build\windows\x64\runner\Release\agentlink.exe

主机台里点 启动 Bridge,记下 6 位配对码。

2. 启动 Android 虚拟机

$sdk="$env:LOCALAPPDATA\Android\Sdk"$env:Path="$sdk\emulator;$sdk\platform-tools;$env:Path"
emulator -list-avds
emulator -avd Pixel_6_API_34 -gpu swiftshader -accel on

等桌面出来后:adb devices 应显示 device

3. 启动 APK(模拟器里)

cd d:\2026AppDev\AgentLink\android
flutter run -d emulator-5554

App 里填:

  • 地址10.0.2.2:9876
  • 配对码:主机台显示的 6 位数字

→ 点 连接 Bridge

  • 真机:电脑局域网 IP + 配对码(不要用 10.0.2.2

功能说明

能力说明
Windows 主机台启动/停止 Bridge、配对码、Hook、手机连接状态、日志
手机审批允许 / 拒绝 / 始终允许 + 审批队列
后台保活Android 前台服务;返回不断开
多项目侧边栏独立上下文 + 角标 + 时间
MarkdownGFM 渲染
快捷回复 / 通知待回复 Chip、通知栏摘要与快捷动作

排障

现象排查
Windows 提示找不到 distbridge 执行 npm run build
启动失败 / node 不是内部命令安装 Node.js 并重启终端
找不到 bridge 目录设置 AGENTLINK_BRIDGE_ROOT 为 bridge 绝对路径
Hook 没反应主机台点「安装 Hook」后重启 claude
编不出 Windows EXE安装 VS 2019/2022 与「使用 C++ 的桌面开发」
模拟器连不上地址用 10.0.2.2:端口,且 Bridge 已启动
真机连不上同一 Wi‑Fi;填局域网 IP;检查防火墙放行 Node

验证:http://127.0.0.1:9876/health


目录

  • android/ — Flutter(Android App + Windows 主机台)
  • bridge/ — Node.js Bridge 服务
  • bridge/bridge.config.example.json — 配置模板

About

Claude Code 手机协作:Windows 主机台 + Android App。手机审批权限、回答提问,同一会话继续对话。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages