---
title: "在手机上使用编程 agent 的 Web UI"
description: "通过 TSLink 在手机上打开编程 agent 的界面或开发服务器。配置私有访问，核实准确地址，并在用完后移除分享。"
url: "https://tslink.md/zh/docs/agent-ui-phone"
locale: "zh"
product_version: "0.1.1"
source: "https://github.com/anydoor7/tslink/blob/v0.1.1/docs/agent-quickstart.md"
---

> Documentation index: https://tslink.md/zh/llms.txt · Installed binary is authoritative: `tslink manifest`.

按端口分享正在运行的开发服务器，或用 `tslink share ./report.html` 只分享一个报告文件；在获准访问的 Tailscale 手机上打开，用完后移除分享。文件流程见[私有分享一份 HTML 报告](https://tslink.md/zh/docs/private-html-report.md)。

## 开始前的准备

在发布机器上[安装 TSLink](https://tslink.md/zh/docs/installation.md)，并让 HTTP UI 或开发服务器已在 daemon 可达的地址运行。发布机器不需要另装 Tailscale 应用。启用 MagicDNS 和 HTTPS，并在 tailnet 策略中允许连接。参见[首次私有分享](https://tslink.md/zh/docs/quickstart.md)、[Tailscale HTTPS 设置](https://tailscale.com/docs/how-to/set-up-https-certificates)及[访问控制](https://tailscale.com/docs/features/access-control/acls)。

任何在 daemon 可达端口上提供 HTTP 服务的 agent UI 或开发服务器都适用，例如 OpenCode、Vite 或 Next.js 的开发服务器。TSLink 只转发请求，不负责启动、配置或登录这个应用。

## 发布 agent 正在使用的端口

使用应用实际选择的端口。以 3000 为例：

```bash
tslink share localhost:3000 --name agent-ui --json
```

保存返回的 `data.name`：请求的名称可能附加数字后缀。之后的每条命令都使用这个实际名称。分享操作可能安装或启动 TSLink 后台服务，但不会启动目标开发服务器。参见[应用管理](https://tslink.md/zh/docs/services.md)和[daemon 生命周期](https://tslink.md/zh/docs/daemon.md)。

Agent 可以使用 CLI `--json` 或 MCP 的 `share`、`unshare`。MCP 注册和移除分享需要 `owner`，远程 MCP 也一样；`app-operator`、`people-manager` 和 `viewer` 不能创建或删除分享。本地 stdio MCP 默认是 owner。CLI 使用启动它的操作系统用户权限，不使用 MCP 角色。参见[MCP 配置](https://tslink.md/zh/docs/mcp-server.md)和[MCP 角色](https://tslink.md/zh/docs/mcp-scopes.md)。

## 完成注册并复制准确地址

若 `status` 为 `needs_login`，把返回的 `auth_url` 交给所有者。命令已经成功，正在等待有人完成注册，这时还没有可用的应用地址。由人完成注册及必要的设备审批，再把下面的 `<returned-name>` 替换为保存的实际名称：

```bash
tslink url <returned-name> --wait --json
tslink status --urls --name <returned-name> --json
```

使用准确返回的 endpoint，并在手机上取得真实响应后再认定预览可用。参见[注册与获取地址](https://tslink.md/zh/docs/quickstart.md)和[Tailscale tsnet 认证](https://tailscale.com/docs/features/tsnet)。

## 在手机上打开

手机需要浏览器，以及已安装、已连接并登录的 Tailscale，不需要安装 TSLink。`tslink share` 不做按人检查：tailnet 策略允许访问该节点的任何设备都能打开这个 UI。如果只想让自己的账号访问，改用 `tslink add agent-ui --proxy localhost:3000 --allow you@example.com` 注册，或在 MCP `share` 工具中传入 `allow`。Tailnet 外的接收者还需要接受应用节点邀请。参见[人员分享](https://tslink.md/zh/docs/people-sharing.md)、[Tailscale iOS](https://tailscale.com/docs/install/ios)、[Android](https://tailscale.com/docs/install/android)和[设备分享](https://tailscale.com/docs/features/sharing)。

## 检查登录、实时更新和主机设置

保留 UI 自己的认证和工具权限。TSLink 代理应用功能，不会授权另一个 MCP 服务器的工具。参见[MCP 托管](https://tslink.md/zh/docs/mcp-hosting.md)和[访问边界](https://tslink.md/zh/docs/architecture.md)。

TSLink 的 HTTP 代理会转发 WebSocket upgrade，SSE 等流式响应也不受上传超时限制，热更新和 agent 的实时输出都能到达手机。`share` 默认把 Host 头改写为本地目标，浏览器的 Origin 保持原样。如果应用检查 Origin，或在使用 `--preserve-host` 时检查允许的主机名，请把 `tslink url` 返回的准确地址加入允许列表。在手机上用这个地址打开应用，确认登录、实时更新和布局都正常后再投入使用。参见[反向代理](https://tslink.md/zh/docs/architecture.md#%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86)、[应用配方与 WebSocket](https://github.com/anydoor7/tslink/blob/v0.1.1/docs/apps.md)和[请求限制与流式响应](https://github.com/anydoor7/tslink/blob/v0.1.1/docs/sharing.md)。

## 移除预览

只移除返回的实际名称：

```bash
tslink remove <returned-name> --json
```

MCP 对应工具是 `unshare`。移除会删除注册，daemon 随后协调状态并关闭节点。远端设备删除取决于凭据和所有权证明；它不会停止 agent 或后端、卸载 daemon，也不能收回已下载的数据。如需停止开发服务器，请单独操作，并检查清理结果。参见[应用移除](https://tslink.md/zh/docs/services.md)和[MCP 角色](https://tslink.md/zh/docs/mcp-scopes.md)。

以上 Tailscale 官方来源访问日期：**2026-10-07**。产品行为依据 TSLink v0.1.1。
