> ## Documentation Index
> Fetch the complete documentation index at: https://docs.avibe.bot/llms.txt
> Use this file to discover all available pages before exploring further.

# 应用与 Dock

> agent 做出的 Show Pages 会变成真正的 app——收进应用库、留在 Dock 里、在窗口中打开。

agent 为你做的每一个 [Show Page](/zh/concepts/show-pages)，其实都是一个它为你做的 app。[Workbench](/zh/concepts/workbench) 就是这么对待它的：把它收进 **应用库**，把常用的留在 **Dock** 里，在一个挨着聊天的窗口里打开它。这把 [Agent OS](/zh/concepts/agent-os) 的念头落成了实——agent 不只是回答你，它把能留下来用的软件递到你手里。

## 两层：已安装与已固定

app 分属两个相互重叠的集合：

* **已安装**——应用库里 **应用** 列表中的一切。内置 app（文件、终端、编辑器，以及应用库本身）始终已安装；Show Page 在你把它添加进来后就成为已安装。
* **已固定**——你留在 **Dock**（底部那条图标栏）里的那个子集。把一个 app 固定就在那儿放一个图标；取消固定会移掉图标，但 app 仍然是已安装。

内置 app 可以随意固定或取消固定，但永远不能从列表里移出。Show Page 可以取消固定（图标没了，但仍已安装），也可以彻底移出（从 **应用** 列表里消失——页面本身原封不动）。Dock 甚至可以是空的；空的时候，它会显示一个打开应用库的快捷入口，所以你永远不会卡住。

右键点任意 Dock 图标，可以 **新建窗口**、**显示所有窗口**、**在新标签页打开**，以及 **从 Dock 取消固定**。拖动图标就能重新排序——你的 Dock 和它的顺序会跟着你跨设备同步。

## 应用库

**应用库** 是一个管理这一切的内置 app。你可以从它自己的 Dock 图标、侧边栏里的 **应用库** 入口、Dock 为空时的快捷入口，或者右键点左下角的 Apps 启动器来打开它。它有两个标签页。

### 应用

已安装的集合——内置 app，加上你添加过的每一个 Show Page。

* **重新排序**——拖动已固定行最前面的抓手；顺序会和 Dock 同步。
* **固定到 Dock / 取消固定**——切换这个 app 是否显示在 Dock 里。无论哪种，行都留在列表里。
* **移出 App**——在 Show Page 行（带 **AI** 徽标）上，把它从 **应用** 列表里拿掉。页面本身原封不动，内置 app 没有移出这一项。
* **点击某一行** 就能打开这个 app。

### ShowPage

完整清单——每个 Agent 会话都有一个 Show Page，所以这里列出的是全部，而不只是你安装过的那些。每一行都显示页面的状态、可见性（私有 / 公开 / 已下线），以及它的访问链接。

* **添加到 App** 把页面作为一个 app 安装（并顺手固定）。安装之后，同一个控件会变成 **移出 App**。
* **点击标题或图标**——悬停时会有一个打开提示——就在一个窗口里打开这个 app。
* **展开某一行** 看它的详情面板，在那里你可以：
  * **重命名** 页面。这会重命名会话，所以新名字到处都会显示。
  * **上传图标**——见下方 [图标](#图标)。
  * 设置 **可见性**，并管理 **分享链接** 和它的自定义后缀。

## 窗口

打开一个 app——点 Dock 图标、点应用库里的一行、⌘K，或用键盘快捷键——就会打开一个 Mac 风格的窗口，你可以拖动、缩放、最小化、最大化、关闭。Show Page 窗口显示的是实时页面，所以 agent 一边改，它就一边更新。

标题栏右侧有两个按钮：

* **打开聊天**——跳回拥有这个页面的会话。窗口会最小化，让聊天到前面来；它的 Dock 图标能把它带回来。你可以一边在 Dock 缩略图里看着页面变化，一边告诉 agent 下一步做什么。
* **在新标签页打开**——在一个完整的浏览器标签页里打开页面。

公开页面在窗口里的打开方式也一样，走的是你自己已登录的视图；你分享给别人的匿名链接仍然在 `/p/<share-id>`。

## 键盘与窗口

* **⌥1**–**⌥9**（Option / Alt）——跳到 Dock 里的第 *N* 个 app。
* **⌥W**——关闭当前聚焦的窗口。输入场景（文本输入框、编辑器、终端）会保留 ⌥W 用于字符输入，所以只有当焦点在别处时它才关窗口。
* **⌘K**——搜索会打开 app 和每一个 Show Page（无论是否已安装）；按回车就把结果作为一个窗口打开。
* 当有窗口开着时关掉浏览器标签页，会触发浏览器自带的「离开此页？」确认，这样你就不会手一抖丢掉一个窗口。

## 图标

一个 app 的图标来自页面自己的文件，按这个顺序解析：

| 优先级 | 图标来自哪里                                             | 说明                                                                                                                                                                                                                                                                 |
| --- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 1   | 工作区 `index.html` 里显式的 `<link rel="icon" href="…">` | href 必须是 **工作区内的相对文件**——SVG、PNG、ICO、JPEG 或 WebP，最大 2 MiB；开头的 `<base href>` 会被采纳。如果这个路径在磁盘上不存在，还会按 Vite 的 publicDir 根映射再试一次 `public/` 下的同名路径——所以 `href="./icon.png"` 配上 `public/icon.png` 也能生效。绝对路径、外部 URL、`data:` URI，以及用 JavaScript 注入的图标都不算——图标必须作为一个文件真实存在于磁盘上。 |
| 2   | 约定的 favicon 文件                                     | 工作区根目录、再到 `public/` 下的 `favicon.<ext>`——按 `svg`、`ico`、`png`、`webp`、`jpg`、`jpeg` 的顺序尝试。                                                                                                                                                                             |
| —   | 以上都没有                                              | 一个取自 app 标题、带颜色的字母图标。                                                                                                                                                                                                                                              |

你也可以从应用库里某个页面的详情面板 **上传** 一个图标——它会作为约定的 `favicon.<ext>` 存到工作区根目录（优先级 2）。一个可用的显式 `<link rel="icon">` 仍然会盖过上传的文件，因为 Avibe 从不改你的 HTML。默认 Show Page 模板的 `<head>` 里有一段注释把这些规则写清楚了，所以给你做页面的 agent 知道该怎么给它配图标——丢一个 `public/favicon.svg` 就够了。

## 在手机上

窗口仅限桌面端，但你的 app 照样跟着你走。底部的 **Apps** 标签——原来 **更多** 所在的位置——会拉出一个和你的 Dock 一致的抽屉：一样的 app、一样的顺序，因为固定是跨设备同步的。点一个 app 就全屏打开；长按就能管理它。原来「更多」里的项目，现在作为一排小标签待在抽屉的底部：**设置**、**账号**、**外观**，以及 **更多…**

## 你直接说就行

你不用手动去装 app，就像你不用手动去「调用」[Show Pages](/zh/concepts/show-pages) 一样。说出你想要的结果，让 agent 把页面做出来，把值得留的留下——agent 做出来的趁手工具，就这样成了你工作方式的一部分，就在你本来操作它的地方。
