Remote Terminal (Mobile)
把 VS Code 终端「镜像」到手机浏览器:在沙发上、通勤路上,用手机继续和终端里的 Claude Code 等 AI CLI 对话、下达指令、查看进展。
- 双端同屏:终端真实显示在 VS Code 面板里,手机与 PC 看到完全相同的画面(xterm.js 渲染,ANSI 彩色 / TUI 重绘保真)
- 为 AI CLI 优化的手机输入:原生输入条(中文输入法 / 语音听写可用)+ 快捷键工具条(Esc、Ctrl+C、Tab、Shift+Tab、方向键…),专为 Claude Code 交互式 TUI 设计
- 扫码即用:VS Code 内弹出二维码,手机扫码即连,PWA 可添加到主屏幕
- 断线秒恢复:基于服务端屏幕快照,刷新 / 重连后立即恢复当前画面
- 多会话:多个终端标签,手机端可切换
快速开始
- 命令面板执行 Remote Terminal: 启动远程终端会话
- 执行 Remote Terminal: 显示配对二维码 打开连接面板
- 手机扫码(局域网需开启
remoteTerminal.lanMode,或直接使用 Tailscale)
局域网访问(手机与电脑同一 Wi-Fi)
最简单的零依赖方案,无需安装任何额外软件:
- 设置中开启
remoteTerminal.lanMode(或 settings.json 加 "remoteTerminal.lanMode": true),服务即从仅本机 127.0.0.1 改为绑定 0.0.0.0
- 重新执行 Remote Terminal: 显示配对二维码,面板会生成局域网地址二维码(
http://<电脑局域网 IP>:8377/#token=…),手机扫码即连
注意事项:
- 两台设备必须在同一网段:公司/公共 Wi-Fi 常开启 AP 隔离(客户端互访被禁),连不上时优先怀疑这一点,可改用 Tailscale
- 多网卡 / 开着 Clash 等代理:插件自动跳过代理 TUN(如 Clash 的 198.18.x)、Docker/虚拟机桥、Tailscale 等虚拟网卡并按路由表选出真实 Wi-Fi IP;若仍选错,面板会列出备选 IP,也可用
remoteTerminal.lanHost 手动指定
- 防火墙:首次启动如系统弹出放行询问,请允许 VS Code 监听 8377 端口(macOS:系统设置 → 网络 → 防火墙)
- 明文 HTTP:局域网模式不加密(凭 256-bit token 鉴权),浏览器视为非安全上下文,网页麦克风按钮不可用——语音输入请用系统键盘自带的听写,或改用 cloudflared 隧道(HTTPS)
- 已安装 Tailscale 的用户无需开启此项:插件自动绑定 Tailscale 虚拟 IP,更安全(仅同 tailnet 设备可达)
公网访问(不在同一 Wi-Fi / 手机走 5G)
方案一:Tailscale(首选)
PC 与手机各安装 Tailscale 并登录同一账号即可——零端口暴露、全程 WireGuard 加密。插件会自动检测 Tailscale 虚拟 IP 并在连接面板中生成对应二维码,无需开启局域网模式。
进阶:如需 HTTPS(启用网页麦克风按钮),可手动执行 tailscale serve --bg http://127.0.0.1:8377。
方案二:cloudflared 一键隧道(次选)
安装 cloudflared(macOS:brew install cloudflared),执行 Remote Terminal: 启动公网隧道。插件自动建立临时加密隧道(*.trycloudflare.com,HTTPS,麦克风可用)并生成二维码。
注意:隧道 URL 每次启动都会变化,安全性由 256-bit token 保障。
安全
- 256-bit 随机 token 鉴权(VS Code SecretStorage 存储),失败限速 + 连续失败锁定,可一键撤销重新生成
- 服务默认仅绑定
127.0.0.1;Tailscale 模式额外绑定其虚拟 IP(仅同 tailnet 可达);公网一律走加密隧道,插件自身永不裸露公网
排障
- 隧道刚建立时手机打开报错(530/1033):边缘节点传播需 1–2 秒,刷新即可
- 隧道建立失败:部分网络封锁 QUIC(UDP 7844),可尝试在终端手动运行
cloudflared tunnel --url http://127.0.0.1:8377 --protocol http2 验证
- 提示「只读镜像模式」:node-pty 原生模块加载失败(通常为 VS Code 升级导致 ABI 失配),请更新插件到匹配版本;该模式下手机端仅可查看输出
- 麦克风按钮不显示:浏览器要求 HTTPS(secure context)。局域网明文 HTTP 下请使用系统键盘自带的语音听写,或改用 cloudflared 隧道
配置项
| 配置 |
默认 |
说明 |
remoteTerminal.port |
8377 |
内嵌 HTTP/WebSocket 服务端口 |
remoteTerminal.lanMode |
false |
绑定 0.0.0.0 允许同 Wi-Fi 设备访问(使用 Tailscale 无需开启) |
remoteTerminal.lanHost |
自动探测 |
局域网二维码使用的本机 IP,多网卡/VPN 环境探测不准时手动指定 |
remoteTerminal.followMobileSize |
false |
终端尺寸跟随手机屏幕(手机优先) |
remoteTerminal.cloudflaredPath |
自动探测 |
cloudflared 可执行文件路径 |
系统要求
VS Code ≥ 1.93;macOS / Windows / Linux(x64 / arm64),请安装与平台匹配的 VSIX。
| |