LinkShell 让你在手机上远程查看和控制电脑上的 Claude Code / Codex / Gemini / Copilot 终端会话,也可以用 Agent Workspace 直接操作 Claude Code 与 Codex 的结构化对话。
只需要一条命令:
npm install -g linkshell-cli
linkshell start --daemon --provider claude电脑和手机在同一 WiFi 下,一条命令搞定:
linkshell start --daemon --provider claudeCLI 会自动启动内置 Gateway,检测局域网 IP,打印 QR 码。手机扫码即连。App 断开不影响后台进程。
需要一台有公网 IP 的服务器做中转。
在服务器上:
# 方式 1:用 CLI 直接跑(推荐)
npm install -g linkshell-cli
linkshell gateway --daemon --port 8787
# 方式 2:用 Docker
git clone https://github.com/LiuTianjie/LinkShell
cd LinkShell
docker compose up -d在你的电脑上:
linkshell start --daemon --gateway wss://your-server.com:8787/ws --provider claude# npm(推荐)
npm install -g linkshell-cli
# Homebrew (macOS)
brew install LiuTianjie/linkshell/linkshell
# 一键安装
curl -fsSL https://liutianjie.github.io/LinkShell/install.sh | shlinkshell upgrade自动检测安装方式(npm 或 brew),拉取最新版本。
linkshell setup它会问你:
- Gateway 地址(留空则使用内置 Gateway,推荐局域网用户留空)
- 默认 Provider(选 claude、codex 或 custom)
- 显示名称
配置保存在 ~/.linkshell/config.json。
检查环境是否就绪:
linkshell doctor# 后台启动(推荐)
linkshell start --daemon --provider claude
# macOS:允许闲置睡眠(默认会阻止睡眠,避免锁屏后断连)
linkshell start --daemon --provider claude --no-keep-awake
# 启用远程桌面查看(需要 ffmpeg)
linkshell start --daemon --provider claude --screen
# 前台启动
linkshell start --provider claude
# 桥接 Codex
linkshell start --daemon --provider codex
# 桥接 Gemini / GitHub Copilot
linkshell start --daemon --provider gemini
linkshell start --daemon --provider copilot
# Agent Workspace(自动检测 Claude Code / Codex)
linkshell start --daemon --agent-ui
# 桥接任意命令
linkshell start --daemon --provider custom --command bash
# 指定端口
linkshell start --daemon --provider claude --port 9000
# 连接远程 Gateway
linkshell start --daemon --gateway wss://your-server.com:8787/ws --provider claude
# 查看状态和日志
linkshell status
tail -f ~/.linkshell/bridge.log
# 停止
linkshell stop启动后你会看到:
Built-in gateway started on port 8787
LAN address: http://192.168.1.12:8787
Pairing code: 847293
Session: a1b2c3d4-...
Expires: 2026-04-01T10:30:00Z
Scan to connect:
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
...
打开 LinkShell App:
- 扫描 CLI 显示的 QR 码(推荐)
- 或手动输入 Gateway 地址 + 6 位配对码
- 或从会话列表直接选择
连接后你可以:
- 查看终端输出(完整颜色和格式)
- 输入命令
- 使用特殊键(Esc、Tab、Ctrl+C 等)
- 断开后自动重连
除了手机 App,任何 Gateway 都会在自己的地址上同源提供一个网页版控制台——和手机端是同一个 Agent + 终端界面。CLI 自带这个网页(内置网关也有),无需单独部署。
直接用浏览器打开 Gateway 地址即可:
- 局域网:
linkshell start后打开 CLI 显示的局域网地址,如http://192.168.1.10:8787 - 自托管网关:打开你部署的域名,如
https://gateway.example.com - 官方网关(Pro):打开官方网关地址
打开后默认连接的就是「提供这个页面的网关」(web 跟随 gateway)。你会看到该网关下的会话列表,点进任意会话即可进入 Agent 控制台或终端。
登录是可选的,不是访问门槛:
- 局域网 / 自托管:无需登录,凭设备信任(首次连接 TOFU)即可使用
- Pro 用户:右上角登录后,无需扫码即可看到归属你账号的所有官方网关会话(
/sessions/mine)
提示:网页也可以指向另一个网关——在页面里修改 Gateway 地址即可,配置会本地持久化(适合把本地打开的页面连到远程网关调试)。
Agent Workspace 是 Terminal 之外的结构化对话界面。开启后,App 底部会出现 Agent 标签,可以选择主机、provider 和工作目录,发送 prompt,查看 assistant 消息、tool call、命令执行、文件变更、计划、权限请求、结构化补充输入和子 Agent 活动,并在需要时取消当前 turn。
推荐直接让 CLI 自动检测:
linkshell start --daemon --agent-ui当前支持:
- Codex:默认使用
codex app-server --listen stdio:// - Claude Code:优先使用
@anthropic-ai/claude-agent-sdk,未安装时回退到claude --print --output-format stream-json --input-format stream-json - Custom:使用自定义 ACP/Agent 命令
如果需要手动覆盖 provider 或命令:
linkshell start --daemon --provider codex --agent-ui --agent-command "codex app-server --listen stdio://"
linkshell start --daemon --provider claude --agent-ui --agent-provider claude
linkshell start --daemon --agent-ui --agent-provider custom --agent-command "<your-acp-adapter>"CLI 会把可用 provider、模型列表、默认模型、reasoning effort、permission mode 等 capabilities 同步给 App,所以手机端模型选择会随本机 CLI 能力动态变化。
Agent Workspace 不替代 Terminal。若本机 Agent provider 不可用,App 会显示不可用说明,终端、远程桌面和浏览器预览仍会照常工作。
| 命令 | 说明 |
|---|---|
linkshell start |
启动桥接会话(支持 --daemon 后台运行) |
linkshell stop |
停止所有后台进程 |
linkshell status |
查看运行状态 |
linkshell gateway |
启动独立 Gateway(支持 --daemon) |
linkshell gateway stop |
停止后台 Gateway |
linkshell gateway status |
查看 Gateway 状态 |
linkshell setup |
交互式配置向导 |
linkshell doctor |
环境检查和连通性诊断 |
linkshell upgrade |
升级到最新版本 |
linkshell login |
登录账户(启用高级网关) |
linkshell logout |
退出登录 |
常用 start 选项:
| 选项 | 说明 |
|---|---|
--provider <name> |
终端 provider:claude / codex / gemini / copilot / custom |
--command <cmd> |
覆盖 provider 命令;custom 必填 |
--agent-ui / --no-agent-ui |
启用或关闭 Agent Workspace channel |
--agent-provider <name> |
Agent provider:codex / claude / custom |
--agent-command <cmd> |
自定义 ACP/Agent 命令 |
--screen |
启用远程桌面 |
--no-keep-awake |
macOS 上允许闲置睡眠 |
默认不会因为闲置睡眠而断开。linkshell start 在 macOS 上会自动开启保活,等价于在 bridge 进程运行期间执行 caffeinate -i -w <bridge-pid>:系统不会进入 idle sleep,但屏幕仍然可以熄灭,电脑也仍然可以锁屏。
如果你想省电、允许系统睡眠,可以用:
linkshell start --daemon --provider claude --no-keep-awake
# 或
LINKSHELL_KEEP_AWAKE=0 linkshell start --daemon --provider claude如果是手动合盖、断网或系统强制休眠,连接仍可能中断;电脑唤醒后 CLI 会继续按现有重连策略恢复。
对。如果你的电脑和手机在同一局域网,直接 linkshell start --provider claude 就行,CLI 会自动启动内置 Gateway。
只有跨网络(比如在外面用手机连家里电脑)才需要在公网服务器上部署独立 Gateway。
node-pty 需要编译原生模块。如果全局安装时报错,试试:
npm install -g linkshell-cli --build-from-source需要先安装 Claude Code CLI:
npm install -g @anthropic-ai/claude-codelinkshell start --provider gemini 和 linkshell start --provider copilot 会从 PATH 查找对应 CLI。如果你用 nvm、Homebrew 或自定义安装目录,先确认命令在当前 shell 中可执行:
which gemini
which github-copilotdaemon 模式下环境变量可能比交互式 shell 更少,必要时用 --command /absolute/path/to/cli 指定完整路径。
- 确认手机和电脑在同一 WiFi
- 确认 CLI 打印的 LAN 地址手机能访问
- 如果用远程 Gateway,确认防火墙开放了端口
- 在 App 的服务器管理里点 "Test" 测试连通性
LinkShell 会自动重连:
- 短暂断网(几秒):自动恢复,不丢失输出
- 较长断网(几十秒):重连后从上次确认点重放输出
- 超过重连上限:自动进入慢速探测模式(每 30 秒检测一次),Gateway 恢复后自动重连,无需手动操作
- 超过 60 秒:host 会话可能被清理,需要重新启动 CLI
目前只支持单设备控制。第一个连接的设备自动获得控制权。
- Gateway 只做消息转发,不存储终端内容
- Agent Workspace timeline 会缓存在手机本地 AsyncStorage,便于恢复历史对话
- 配对码 10 分钟过期
- 会话空闲 30 分钟自动清理
- 建议远程模式使用 HTTPS(wss://)
- 当前不支持端到端加密