网页终端

在浏览器里,
打开每一台电脑的终端

家里的 Mac、公司的 Windows、机房的 Linux,装一次客户端就都在同一个网页里。换到 iPad 或手机,接着刚才的终端继续干。

  • 内容端到端加密
  • Windows / macOS / Linux
  • 一行命令安装
后端项目
1mac-mini 2build-01 3win-dev
mac-mini分页导出订单 5h 周 MS
~/shop-api $ claude > 把订单导出接口改成分页 ● 先看现在的导出逻辑 Read internal/export/orders.go ● Update internal/export/orders.go + limit, offset := page.Bounds() - rows := store.AllOrders(ctx) ● 跑一遍测试 Bash go test ./internal/export/... ok shop-api/internal/export 0.41s >
build-01TS
deploy@build-01:~/web$ npm run build vite v6 building for production ✓ 412 modules transformed dist/app.js 154 kB ✓ built in 3.2s
win-devMS
PS C:\work\site> git status On branch main Changes not staged for commit: modified: src/pay.ts PS C:\work\site>
界面示意:工作台里同屏开着三台电脑的终端
  • 所有电脑,一个入口

    不用记 IP、不用开端口。电脑在线,网页里点一下就开终端。

  • 换设备,接着干

    关掉网页终端照样跑。换台电脑、拿起手机,接回的还是同一个终端。

  • 服务器看不到内容

    终端内容在浏览器和你的电脑之间加密,我们的服务器只转发密文。

  • 给 AI 编程准备的

    多个终端同屏盯进度,截图直接粘贴,标题栏上看 Claude 额度还剩多少。

同屏格数
可以点点看;双击任意一格放大
后端项目
1mac-mini 2build-01 3win-dev 4db-test
mac-mini分页导出订单5hMS
● Update internal/export/orders.go + limit, offset := page.Bounds() ● 跑一遍测试 ok shop-api/internal/export 0.41s >
build-01TS
deploy@build-01:~/web$ npm run build ✓ 412 modules transformed ✓ built in 3.2s
win-devMS
PS C:\work\site> git status On branch main modified: src/pay.ts
db-testMS
app=# select count(*) from orders; count ------- 18204
mac-mini写测试MS
● 给分页补 3 个用例 Write orders_test.go
build-01TS
deploy@build-01:~$ tail -f app.log 12:04:11 GET /orders 200 12:04:12 GET /orders 200

工作台

一页最多六个终端,同屏盯着

几台电脑、几个任务同时在跑,不用来回切标签页。

  • 按个数自动排版开几个终端就排成几格,最多 6 格;拖格子之间的缝可以调大小。
  • 双击放大,再双击还原哪一格要细看就放大哪一格,其他终端继续在后面跑。
  • 终端分组把一个项目用到的终端拖成一组,在顶栏一键切换整组。
  • 预览墙终端列表可以切成实时预览卡片,一眼看到每个终端跑到哪了。

手机与 iPad

不在电脑前,也能看一眼、回一句

不用装 App,手机浏览器打开就是完整的终端。

  • 左右滑动切换终端像翻相册一样在运行中的终端之间切换,滑的时候能看到旁边那个终端的画面。
  • 滚动跟手手指拖多少,画面走多少,不是一行一行地跳。
  • 快捷键栏Esc、Tab、Ctrl、方向键都在屏幕上,还有一组 Claude Code、Codex 常用的键。
  • 多处同时看同一个终端电脑上开着的终端,手机上也能同时打开,两边画面一致。
1build-012win-dev
build-01跑测试MS
~/shop-api $ go test ./... ok api 1.92s ok export 0.41s ok store 2.07s PASS ~/shop-api $ git push To github.com:shop/api 3f2a1c4..9be07d2 main
win-devcodexMS
~/web $ codex > 订单页加上分页 • 改 orders/List.tsx + <Pager total={n} /> • 跑一遍 lint ✓ 0 problems
mac-mini MS
~/shop-api $ claude > 把导出接口改成分页 ● 先看现在的导出逻辑 Read export/orders.go ● Update export/orders.go + limit, offset := + page.Bounds() - rows := store.All(ctx) ● 跑一遍测试 Bash go test ./... ok export 0.41s 要把改动提交吗? ❯ 1. 提交 2. 先不提交 >
mac-mini修首页错位 5h 周 Fable MS
~/site $ claude (在网页里按 Ctrl+V 粘贴了一张截图) > 看这张图,首页按钮错位了 …/paste-0412.png ← 路径自动填好 ● 看到了,按钮被标题挤到第二行 Read src/home.css ● Update src/home.css + .cta { flex-wrap: nowrap; } ● 改好了,预览页在这里: dist/index.html ← 点一下,在新标签页里预览 >

点圆圈看详情(示意数字)

5 小时剩 72%2 小时后重置
本周剩 41%周四 9:00 重置
Fable剩 88%周四 9:00 重置

AI 编程

在终端里用 Claude Code、Codex,这些小事都顺了

这些功能是我们自己天天用 AI 写代码时一个个磨出来的。

  • 粘贴图片,自动上传截图后直接 Ctrl+V,图片传到那台电脑上,路径自动填进命令行。拖拽也行,iPad 拖截图也行。
  • Claude 额度圆圈标题栏上的小圆圈显示 5 小时、本周额度还剩多少,有 Fable 额度的账号再多一个圈;用完会变成倒计时。用订阅登录 Claude Code 时显示。
  • 点文件路径直接预览终端里出现的网页、图片、PDF、Markdown 和代码文件路径可以点开,在新标签页里看。
  • 看得到每个终端在干什么Claude Code、Codex 设的会话标题会显示在终端名后面,开了十个终端也分得清。

安全

终端内容端到端加密,服务器看不到

用 MixShell 客户端连接时,你敲的命令、屏幕上的输出、粘贴的图片,都在浏览器和你的电脑之间加密。钥匙只在这两头。

登录要两样东西

密码加动态码(验证器 App 里的 6 位数)。只知道密码登不上。

恢复码在你手里

换浏览器、丢设备时用恢复码找回。恢复码在你本地生成,我们不保存原文。

客户端带签名

安装和自动更新时都会核对发布签名,签名不对的程序装不上。

照实说一点:网页本身的代码由我们的服务器下发,我们用发布清单和完整性校验防止被改,但这一点仍然需要你信任我们。

连接方式

两种连法,可以混着用

电脑列表和终端标题栏上的「MS」「TS」,说的就是这台电脑是怎么连上的。

MixShell 客户端 MS

在电脑上跑一行命令装好,之后开机就在线。大多数人用这个。

怎么接入
在那台电脑上运行一行安装命令
加密
端到端加密,服务器只见密文
关掉网页后
终端继续在电脑上跑,随时接回
附带功能
文件预览、Claude 额度圆圈
更新
客户端自动更新

Tailscale TS

已经在用 Tailscale 的话,填一次凭据,把网络里的电脑直接导进来,不用逐台安装。

怎么接入
填 Tailscale 凭据,导入已有的电脑
关掉网页后
电脑上有 tmux 时终端保活,断线、服务器更新后都能接回
附带功能
文件预览、额度圆圈需要装客户端
限制
Windows 或没有 tmux 的电脑不保活

导入的电脑以后补装客户端,就变成「MS + TS」:两种都能连,默认走客户端。

团队空间 即将上线

和同事共用几台电脑,各看各的权限

这部分还在收尾,现在还不能用。下面是它上线后的样子。

  • 团队和「我的电脑」分开自己的电脑还是自己的,团队的电脑放在团队里,侧栏一键切换。
  • 三种角色所有者、管理员、成员,各管各的事。
  • 按电脑授权可以指定某位成员只能连哪几台电脑。
空间
我我的电脑
后后端组
运运维
林林晓所有者
周周航管理员
陈陈一鸣成员 · 2 台电脑

常见问题

你可能想问

要在电脑上装什么?

在想连的那台电脑上装一个 MixShell 客户端,Windows、macOS、Linux 都支持,一行命令装好,装完开机自动在线、自动更新。用来看终端的那台设备什么都不用装,有浏览器就行。

你们的服务器能看到我的终端内容吗?

用 MixShell 客户端连接时看不到:内容在浏览器和你的电脑之间端到端加密,服务器只转发密文。

关掉浏览器,终端里跑着的程序会停吗?

不会。终端跑在你的电脑上,关网页、刷新、断网都只是断开观看。回来后,在同一台或另一台设备上都能接回同一个终端。

手机上真的能用吗?

能。手机和 iPad 的浏览器直接打开,有专门的快捷键栏,左右滑动切换终端,滚动是跟手的。手机上一次显示一个终端,iPad 可以用多格的工作台。

客户端和 Tailscale 选哪个?

一般选客户端:端到端加密,功能最全。已经有一批电脑在 Tailscale 里、不想逐台安装时,用 Tailscale 导入更省事。两种可以同时用。

可以部署在自己的服务器上吗?

目前只提供在线服务,没有自部署版本。

团队一起用可以吗?

团队空间正在收尾,还没开放。上线后可以把电脑放进团队,按成员、按电脑授权。

开始使用

三步,几分钟

  1. 注册账号

    填邮箱,点邮件里的链接设密码,再用验证器 App 绑定动态码。

  2. 在电脑上跑一行命令

    网页里点「添加电脑」,复制命令到那台电脑的终端里运行。

    $ curl -fsSL https://你的专属地址 | sudo sh

    命令里带一次性安装码,在「添加电脑」里生成,过期作废。

  3. 在浏览器里开终端

    电脑出现在列表里,点一下就开。之后在任何设备上登录,都能看到它。