> LinkShell v1.0 现已发布

终端漫游随时随地,自由接管

纯粹的终端桥接方案。长耗时任务留在高性能桌面上,用手机随时接管远端 PTY 会话。

🎁 限时免费体验公网 Gateway 地址:ws://115.191.50.117:8787/ws

立即部署 查看仓库
Android 下载 iOS 敬请期待
LinkShell Logo

只需三步,建立你的终端链路

[1] 安装 CLI

一条命令全局安装。内置网关开箱即用,无需额外部署服务器。

# 全局安装 CLI $ npm i -g linkshell-cli # 初始化配置 $ linkshell setup # 检查环境 $ linkshell doctor ✓ All checks passed

[2] 启动桥接

一条命令启动内置网关并桥接 AI 代理进程,终端直接打印二维码。

同一局域网内,CLI 内置网关直连,零配置。

$ linkshell start Built-in gateway started on port 8787 LAN address: http://192.168.1.10:8787 ➜ Code: 847293

先在公网服务器部署网关,本地 CLI 连接远程网关。

# 服务器端:启动网关 $ linkshell gateway --daemon Gateway listening on 0.0.0.0:8787 # 本地:连接远程网关 $ linkshell start --gateway wss://gw.example.com Connected to remote gateway Public address: https://gw.example.com ➜ Code: 293847

[3] 手机扫码,即刻接管

打开 LinkShell App(iOS / Android),对准终端二维码扫一扫,立刻接管会话。

> scanning QR... > pairing code: 847293 > connected to session #1 > control acquired

原生的终端体感,去中心化的控制。

> 本地 PTY 驱动

繁重的计算过程完全依赖本地机器。保留颜色、光标、readline 输出及信号等完整终端语义。

> 全平台客户端

支持 React Native / Expo 移动端与 Web 页面调试端。纯粹的单一协议,跨平台劫持终端流。

> 强一致性同步

独有的单控制者防冲突模型。避免多端并抢焦点,画面精准对齐不串流。

> 远程桌面

不只是终端。加上 --screen 参数,在手机上实时查看电脑桌面。WebRTC 30fps 丝滑体验,自动降级到截图流兜底。

linkshell start --daemon --provider claude --screen

> 端口转发预览

远程启动 dev server,手机直接预览页面。支持 CSS/JS/图片完整加载、HMR 热更新、PC/手机视图切换和全屏模式。

# 远程终端启动 dev server $ npm run dev ➜ Local: http://localhost:3000 # App 切换到 Browser 标签,输入端口 3000,即可预览

灵动岛,让 AI 触手可及

iPhone 灵动岛实时展示 Claude 工作状态。识别到需要操作时,一键快速响应,无需切回 App。

┌─ compact ──────────────────────────────┐ │ · · · │ ├─ expanded ─────────────────────────────┤ │ Claude Code — Editing App.tsx... │ ├─ action ───────────────────────────────┤ │ Run `npm test`? [deny] [approve] │ └────────────────────────────────────────┘
实时状态 — 思考中、编码中、等待确认,一目了然
快捷操作 — Claude 请求执行命令时,灵动岛直接审批
智能摘要 — 长对话自动提炼关键信息到灵动岛
无感切换 — 从灵动岛一键跳转到完整会话

项目空间,并行掌控

每个会话支持多项目并行。选择项目文件夹,独立执行命令,像在本地一样自如。

$ linkshell status Session #3 | 2 projects active PROJECTS linkshell-app ~/projects/linkshell-app [████████░░] 85% api-server ~/projects/api-server [██████░░░░] 60% ml-pipeline ~/projects/ml-pipeline [████░░░░░░] 40% TERMINALS [1] linkshell-app $ npm test PASS 12/12 [2] api-server $ cargo build Compiling...
多项目并行 — 同一会话内切换不同项目目录
独立终端 — 每个项目拥有独立的命令执行环境
最近项目 — 智能记忆常用项目,一键直达
实时状态 — 并行任务进度一览无余

LinkShell 工作流

不仅是远程命令行桥接;更是打破工位束缚的极客探索。

01. 挂起并离开

编译、构建、拉镜像... 常驻任务在桌面上飞速运转。你可以去喝杯咖啡,LinkShell 默默守护当前状态。

02. 随时审查

随时掏出手机接入会话。审查构建进度,翻看彩色日志输出,体验不到任何画面的延迟衰减。

03. 直接修正

发现报错?内置 xterm.js 拿过焦点,敲下修复命令,然后再次从容地把手机放回口袋。

文档

从安装到部署,你需要知道的一切。

01 架构概览

LinkShell 采用三层架构:本地 CLI 捕获 PTY 输出,通过网关中继转发,最终在移动端渲染完整终端。所有计算留在本地,手机只是一个远程窗口。

┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐ │ CLI (Host) │ <─ WS ─> │ Gateway │ <─ WS ─> │ Mobile App │ │ │ │ │ │ │ │ PTY Bridge │ │ Session Relay │ │ xterm.js Render │ │ Screen Share │ │ Pairing Service │ │ QR Pairing │ │ Scrollback Buf │ │ Control Rights │ │ Multi-Gateway │ └──────────────────┘ └──────────────────┘ └──────────────────┘

02 CLI 命令参考

linkshell start

启动桥接会话。自动启动内置网关,桥接 AI 代理进程并生成配对二维码。

FLAGS --daemon 后台守护模式运行 --provider 指定 AI 提供者 (claude / codex / custom) --screen 启用远程桌面共享 --port 指定网关端口 (默认 8787)

linkshell gateway

单独启动网关服务器。适用于独立部署网关到远程服务器的场景。

FLAGS --port 指定监听端口 --host 指定绑定地址 --daemon 后台守护模式运行

linkshell setup

交互式初始化配置。引导你完成网关地址、AI 提供者等基础设置。

linkshell doctor

环境诊断工具。检查 Node.js 版本、依赖完整性、网络连通性等。

linkshell status

查看当前运行状态。显示活跃会话、网关连接状态和守护进程信息。

linkshell stop

停止守护进程。优雅关闭桥接会话和内置网关。

03 部署方式

根据你的网络环境选择合适的部署方式。

本地直连(最简单)

CLI 内置网关,同一局域网内手机直连电脑。零配置,开箱即用。

$ npm i -g linkshell-cli $ linkshell start --daemon
手机和电脑需在同一 Wi-Fi 下
无需任何服务器,开箱即用
延迟最低,数据不出局域网

远程服务器 [推荐]

将网关部署到公网服务器,配合 Nginx 反向代理 + HTTPS,跨网络访问。

# 服务器端 $ linkshell gateway --daemon # 本地 $ linkshell start --gateway wss://your.server

Docker 部署

使用 Docker Compose 一键部署网关。最低要求 1 核 512MB 内存。

$ docker compose up -d
支持跨网络、4G/5G 随时接入
推荐 Nginx 反代 + Let's Encrypt HTTPS
数据仅经过你自己的服务器中继

04 远程桌面

启动时加上 --screen 参数,App 端会出现 Desktop 标签页,实时查看电脑桌面。

$ linkshell start --daemon --provider claude --screen Screen sharing enabled Mode: WebRTC (30fps) | Fallback: Screenshot stream
WebRTC 模式 — 默认以 30fps 实时推流桌面画面,延迟极低
截图流兜底 — 网络条件不佳时自动降级为截图流模式,保证可用性
自动切换 — 无需手动配置,运行时根据网络质量自动选择最优方案
App 端切换 — 在 App 内切换 Terminal / Desktop 标签,随时查看桌面

05 端口转发

在远程终端启动 dev server 后,直接在手机上预览页面。通过 Gateway 中继 HTTP 请求,支持完整的 Web 应用预览。

# 远程终端启动 dev server $ npm run dev ➜ Local: http://localhost:3000 # App 切换到 Browser 标签(globe 图标),输入端口 3000 ➜ Preview: http://gateway:8787/tunnel/{sessionId}/3000/
完整加载 — HTML、CSS、JS、图片等所有资源通过 tunnel 代理
HMR 支持 — WebSocket 热更新自动转发,Vite / Next.js / webpack 均可
视图切换 — 一键切换 PC / 手机视图,桌面模式以 1024px 宽度渲染
全屏预览 — 隐藏所有 UI,沉浸式查看页面效果

需要 linkshell-cli ≥ 0.2.53 / gateway ≥ 0.2.17

06 协议与可靠性

16
消息类型 (Zod)
ACK
双层缓冲确认
1000
回滚缓冲区
15s
心跳检测

可靠性保障

指数退避自动重连(CLI 和 App 双端)
会话持久化(主机断连后保持 60 秒)
空闲会话 30 分钟自动清理
协议版本协商,向前兼容

控制模型

单控制者模型,防止多端输入冲突
控制权请求 / 释放 / 转移机制
6 位配对码 + QR 码安全配对
CORS 和速率限制保护

07 常见问题

Q: 需要公网服务器吗?

不需要。CLI 内置网关,同一局域网内手机可以直连电脑。如果需要跨网络访问,才需要将网关部署到公网服务器。

Q: 支持哪些 AI 代理?

目前支持 Claude Code、OpenAI Codex,以及任意自定义 Shell 进程。通过 --provider 参数指定。

Q: 手机 App 在哪里下载?

iOS 版本通过 TestFlight 分发,Android 版本可从 GitHub Releases 下载 APK。正式版本上架后会在此更新。

Q: 数据安全吗?会经过第三方服务器吗?

本地直连模式下数据完全在局域网内传输。远程模式下数据经过你自己部署的网关中继,不经过任何第三方服务器。

Q: 远程桌面功能如何工作?

使用 --screen 参数启动后,通过 WebRTC 以 30fps 实时传输桌面画面。网络条件不佳时自动降级为截图流模式。

Sponsors

感谢以下赞助商对 LinkShell 的支持。

AI18N Unified AI API Gateway

Buy Me a Coffee

如果 LinkShell 对你有帮助,可以请作者喝杯咖啡。

准备好你的第一次漫游了吗?

放弃冗长的云端迁移。仅需几十秒进行网关转接,把完整的本地开发环境装进口袋。

立即部署