# 日常使用

这一篇讲每天怎么用：一个键打开总面板，开会话、看状态、回答问题；出了问题怎么说。电脑和手机上怎么连，单独一篇：[电脑和手机上怎么连](connect.md)。第一次用先照 [成员 · 快速开始](quickstart.md) 开出第一个会话。

先记住一句话：**会话跑在 tokenman 的机器上，不在你的电脑上。** 关掉终端、合上笔记本、断网，会话都照常干活；回来敲 `fleet`，一切原样——直接回到你上次看的那个会话（换一台电脑、在手机上也一样）；那个会话已经关掉了，就打开 ⌘P 会话列表，光标停在你最近活跃的会话上，回车即接回；你在所有机器上一个会话都没有时，才给你开一个新会话（设置 `FLEET_VIEW_LAND`：`panel` 默认 · `last` 直接接回最近活跃的 · `new` 每次新开）。想去别的会话，`fleet open <名称>` 或 ⌘P 里选。

## 一个键：总面板

所有事都从一个键开始。下面的表由 tokenman 的按键配置生成，改了默认按键，这里跟着变：

<!-- docs-gen:keys -->
| 在哪 | 按 |
|---|---|
| Mac 上的 iTerm2 | `⌘P` |
| 手机（Termius）或别的终端 | `F12` 或 `⌃] p` |

| 键 | 做什么 |
|---|---|
| `↵` | 切过去 |
| `Tab` | 操作 |
| `↑↓` | 选 |
| — | 打字筛选 |
| `?` | 图例 |
| `esc` | 关 |
| — | 面板里的入口（选中 ↵，或直接打字）：+ 新会话 · $ 命令行（这台机器的 shell，在家目录） · ⏏ 退出 tokenman（会话在后台继续） |
<!-- /docs-gen:keys -->

**状态栏只放品牌、会话名和额度，消息单独一行。** 看台底部的状态栏左边是 tokenman 的名字（o 是橙色）和会话名「tokenman · 修缓存」，不随会话状态变化——会话的状态、单号、在问你的问题都在 ⌘P 面板里看；右边是改动编号（PR）、剩余上下文和额度。机器连不上或走中转时整行变灰。tokenman 要告诉你的事——会话在问你、卡住、做完，告警，没人收的结果，临时提示（比如「暂停开新：内存紧张」）——放在状态栏**下面**单独一行：有没看的才出现，左边是最新一条，右边「✦ 3 · ⌘P」。每条都会自己收起：出错（红 ✖）和没人收的结果（黄 ✓）留 30 秒（看过就立刻收），警告（黄 ▲）6 秒、提示（灰 ∙）3 秒。收起后仍在 ⌘P「✦ 消息」里，直到你看过。点这一行，或打开 ⌘P 第一行 **「✦ 消息」**（或在 ⌘P 里打「消息」），分组列出全部：↵ 看全文，g 跳到那个会话，r 标为已读，没人收的结果按 f 转给编排。换了家，看到的消息和条数一样。在电脑的命令行里 `fleet notices` 也能看。

面板大致长这样（示例数据）。↑↓ 按屏幕顺序移动，待处理事项有独立入口，PIN 保持置顶；普通任务直接排列。普通会话和「更多会话」分别按最近一轮对话活动时间倒序排列，新回复会让旧会话排到组内前方。PIN 保留置顶顺序；单纯状态刷新不改变顺序。

```text
  › 搜索会话
  ✦ 消息
  + 新会话
  $ 命令行
─ PIN
  ↻ K3F9     Codex   修复导出超时                web-app
  ⟳ A7P4     Claude  检查服务可用性              ops
  ! B8D2     Claude  登录页改版                  web-app
  ◷ C9W1     Codex   补充接口测试                api
    D2R6     Claude  升级依赖                    web-app
  ▸ 更多会话
  ⇄ 语言 / Language
  ⏏ 退出 tokenman（会话在后台继续）
  ↵ 切过去  Tab 操作  ↑↓ 选  ? 图例  esc 关
```

### 开一个会话

- **开新会话**：选「+ 新会话」按 Enter（在列表最上面，消息下一行），打开「新会话」小框：只有「仓库 ‹›」「Agent ‹›」「开 ↵」三项，打开时已选好、光标在「开」上，所以再按一次 Enter 就开。要换：↑↓ 或 Tab 换项，←→ 换仓库或 Agent（不需要仓库就选「不绑仓库」），在值上按 Enter 回到「开」。默认值：仓库是你正在看的会话的仓库（它没绑仓库时用上次新建选的，「不绑仓库」也算），Agent 是这个仓库上次新建用的；按 `⌘N` 直接打开这个小框，再按 Enter 就开，Escape 关掉。不用写描述——开好后直接在会话里说要做什么。按下「开」，新会话的窗口立刻就到眼前，可以马上打字：窗口里一步步列出启动进度（每一步打勾、写用了几秒，还没到的写平时要几秒，顶上写通常一共几秒）；会话还在后台启动时你打的字都留着，按 Enter 的那句排队，会话一起来就交给它并发出，没按 Enter 的那句放进它的输入框；起不来时原因就写在这个窗口里（按两下 Escape 关掉）。第一句话发出后，顶部、列表里这一行以及它的任务记录会使用这句话的第一行作为标题（最多 30 个字符）；短码任务也一样，后续消息不会再次改名。
- **切到别的会话**：打几个字（标题或单号）筛选，↑↓ 选中会话，Enter 切过去。

操作页、改名这样的询问、新会话小框都是整页：列表区域整块换掉，顶上一行写明对象（那个会话，或「+ 新会话」），下面一项一行，↑↓ 选、↵ 执行，没有浮窗。Escape 回上一层（从改名回到操作页，再按回到列表），回到列表时选中位置不变，再按一次关闭面板。鼠标单击选行，双击进入会话或打开新会话小框；页里的项目可以点击（点仓库或 Agent 再点一次换下一个，点「开」就开）。

小框里选的仓库和 Agent 按看台保存在本机私有文件中，下次打开还是它们。终端 resize 不重置选择，只在放不下时收紧滚动范围。建议至少 48 列；更窄时显示提示，Tab 和 Escape 照样可用，长内容在页内滚动。

### 会话的状态

标题统计仍打开的会话，搜索时显示匹配数/总数；折叠、置顶不改变总数。做完但窗口还开着的计入，已收起的不计入。远端读数失效或未知时用 `+?` 表示未确认部分。选中行只改变背景，状态字符和名称起始列保持不变；Ctrl+T 仍可置顶或取消置顶。底部只显示快捷键、可选图例和短暂反馈。

网页或 Terminal 改过的会话名称会保留到已结束历史，人工名称优先于自动命名。旧会话没有可信名称时显示「会话 + 短码」，仍可辨认和查看，不会因为缺名称消失。

列表默认展开 **10 个会话**（包括当前会话和 PIN），普通会话 **24 小时没有 Turn 更新且未执行**就自动收起。当前会话和 PIN 始终保留；PIN 超过名额时允许超出。顶部「待处理（N）」最多预览 3 条，其余展开查看；底部「更多会话（N）」显示收起的记录和运行中数量，→ 展开、← 收起、Enter 切换。搜索包含所有收起的记录。收起只影响列表，不停止、休眠或删除会话，后台资源策略独立执行。

网页「设置 → 会话列表」可选择展开 5 / 10 / 15 个，超时 12 小时 / 24 小时 / 3 天 / 关闭，随个人账号同步到网页和终端。终端也可用 `fleet config session-list 10 24`；第二个数为小时，`0` 关闭超时收起。新 Turn 活动重新参与排序；操作列表时暂缓重排，已展开的「更多会话」不会因刷新自动关闭。

每行保持同一列顺序：状态位 · 短码（如 `K3F9`）· Agent · 标题 · 仓库。窄屏先隐藏仓库，再隐藏 Agent。**所有状态符号共用左侧一个位置**：

| 符号 | 意思 |
|---|---|
| `!` | 需要你回答或批准；切到会话处理 |
| `◷` | 已有启动请求，尚未确认开始运行 |
| `↻` | 正在运行 |
| `⟳` | 已观测到有效的重复计划；单次提醒不算 Loop |

同时符合多项时，按表中顺序只显示一项，其他事实在选中说明里看。普通静止行留空，不显示完成、失败、idle 或 exited 图标；出错原因和结果仍可在详情查看。按 `?` 看图例。只建立了记录、没有受理启动请求的任务，不标待启动；旧节点尚未提供的 Loop 观测也不会靠状态名称猜出来。

问题原话、原生状态、PR、机器和配置提示放在底部说明或详情。单号不常驻行上，但搜索 `4539` 或 `#4539` 仍能找关联任务。失联行淡化，说明运行情况未知；没有运行图标不代表已经停止。

### 一个会话能做的事

选中一行按 **Tab**，打开操作页：进入、打开 PR（有 PR 时）、改名、换 Agent、在网页里打开、**停下（可恢复）**。不适用的操作会隐藏或说明原因。按数字执行，`[` `]` 切换操作对象；Escape 返回列表并保留选择。旧会话保留历史和恢复入口；Agent 已退出但窗口还在时，先「进入」恢复页。置顶使用 `⌃T` 或列表底部入口。

「停下」直接提交当前会话的停止请求，不再经过回收确认或等待 PR 合并。网页任务页的「停止」与 `fleet close` 使用同一停止入口，保留文件和历史。请求失败会说明原因；请求受理不等于远端已经退出。明确显示「待启动」且从未开过会话的任务，可以在操作页或网页点击「取消启动」，也可执行 `fleet close <任务短码>`。如果会话已启动，会提示刷新后停止该会话。取消不要求目标机器在线；停止仍未覆盖所有未来自动唤醒。

停止确认后，在任务操作页选择「继续任务」，再选沿用原 Agent、Claude 或 Codex；命令行使用 `fleet continue T123`，或明确指定 `fleet continue T123 --agent codex`。继续保留同一任务和历史。尚未确认的请求须按原 Agent 选择重试，不能改成另一种启动；缺少用户登录凭据时会给出任务网页链接。打开历史本身不会启动会话。

在终端里也可以用命令做同样的事（`<会话>` 写名字的一部分、`#单号` 都行，认不出是哪个时会列出候选，不会乱猜）：

```sh
fleet ls              # 我的会话：名称 · 单号 · 机器 · 剩余 · 状态 · PR · 回收方式
fleet ls --all        # 连已结束的一起
fleet open 登录页      # 打开客户端并切到这个会话
fleet answer 登录页 保留   # 不进会话直接回答它的问题
fleet close 周报       # 直接请求停止当前会话，保留文件和历史
fleet continue T123 --agent codex  # 明确用 Codex 继续同一任务
fleet quit            # 退出 fleet（见下）
```

## 贴图和拖文件

在电脑上的 tokenman 终端里，直接拖入文件，或按 `Ctrl+V` 粘贴剪贴板图片。传好后会自动插入会话所在机器的路径，多文件也一样，不需要另开上传菜单。普通文字粘贴不变。

准备和上传附件时，终端继续显示输出，也可以调整窗口大小。顶栏依次显示 Preparing（准备）、Uploading（已接收字节和总进度）、Confirming（确认）和 Uploaded（完成）。期间会明确提示输入已暂停：文字、回车和再次拖入的文件都直接丢弃，不缓存、不回放。按 `Ctrl+C` 只取消上传，恢复输入，不打断远端正在做的事。成功后只插入一次确认过的远端路径，不自动回车；失败、切换会话或断线时不插入任何路径，输入恢复后请重新输入。

一次最多 16 个文件，图片每个 10 MiB，其他文件每个 100 MiB，合计 100 MiB。传输最多等 120 秒。若无法确认当前会话，附件会明确失败，普通文字仍可输入。

## 在代码仓库里干活

交给仓库的任务，会话在**自己的一份代码副本**里改，不碰别人的；做完自己开 PR，检查通过后自己合并，然后告诉你结果。任务仍在原来的列表位置；打开 PR 看改了什么。

你不用盯着它。要换方向，切过去直接说；要停止执行，使用「停下」。需要你回答时，行首显示 `!`。

## 关掉电脑、换电脑、在手机上看

会话跑在 tokenman 的机器上：关掉终端、合上笔记本、换一台电脑或在手机上打开，都还是那一套会话。怎么连、关掉后怎么回来，见 [电脑和手机上怎么连](connect.md)。

## 任务记录：T 号

你在 「+ 新会话」行交出去的每件事，tokenman 都先记一笔，编号 **T** 开头（比如 `T42`）。记下的是你的原话、交给了哪台机器、哪个会话、现在什么状态。

- 任务只有这一个号：它归你，不归哪个仓库。交给仓库的任务在那个仓库里改代码、开 PR——GitHub 只放代码和 PR，没有另一张单子。
- 入口网页的 **会话** 页沿用同样的 PIN、普通任务和更早会话结构。一行打开网页对话，详情保留任务描述、原生观测、PR 和历史；任务页不再提供网页终端切换。
- 历史结果仍在详情里，但不再作为列表中的「已完成」图标。会话消失不表示完成，未知观测也不表示已停。读取失败时保留已有内容并说明原因；重试读取不会启动工作。
- 需要原生终端交互时，在 iTerm2 中打开这个任务。网页独立的个人 Shell 仍保留；旧任务 `?view=term` 链接会打开同一任务的网页对话。
- 跟同事说「T42 那件事」，对方在会话页搜编号就能找到。

### 先看设计页，再开任务

装了 fleet-epic 插件时，在会话里说 `/fleet-task-plan <主题>`（比如「批次报告送不到你手里」），它先把这件事写成一页设计页：现象、原因（证据折叠在下面）、目标与范围、改法、可能出的问题、需要你定的事、上线证据。页面私密，推到你微信。你看完直接说要改哪条，它改同一页；点头就按页开一个任务，页面顶上标出任务号，执行会话照页去做。

## 回收：会话什么时候关

停放只结束空闲的智能体进程，窗口、编号、对话和工作区都留着；说话后接回原对话。回收才关闭窗口，先记可接回的历史，工作区留着。后台自动整理与明确点击「停下」独立。

新任务统一采用普通空闲停放规则（`idle:2h`），不因由谁创建、在哪个界面打开或使用哪个 Agent 而改变。PIN 只影响列表排序，不阻止停放或赋予保留特权。未交回结果不再触发提醒或自动关闭。

Hub 管理的受控任务自动整理只做安全停放，保留任务绑定、窗口、历史和工作区；停放确认后释放原生进程与运行容量。旧会话已有的 `keep`、`merged` 等策略保留，不批量改写；明确的「不自动关」仍阻止自动回收，但允许安全停放，也不阻止你主动停下。旧会话的停放保留期到期，仍须满足原有的历史可恢复条件；旧外壳不能停放时不会伪装成已经释放资源。显式测试探针保留其专用策略，标题文字不会把普通任务变成探针。

设置 `fleet.session.park_idle` 默认 **5m**；`park_idle_unattended` 当前也是 **5m**（缓存实测后的保守值，可调为 **1m**）；`park_presence` 默认 **15m**；`fleet.session.reap_parked` 默认 **3d**。内存紧时可提早停放。正看着、输入框有草稿、在答、开着选择框或有后台任务时不停。`fleet doctor --park` 给每个窗口列出来源、停放/回收规则、下一步 UTC 时间和保留原因。

窗口的说明行会写出「先不停放：有人正在看 / 输入框有草稿 / 后台的活还在跑 / 选择框还开着 / 旧外壳尚不支持」。doctor 同样显示拒停原因，不把被保护条件挡住的停放时间当成承诺。

想改自动回收方式，可以让会话修改自己的设置；精简后的 Tab 操作页不再列「改回收方式」。已有的「不自动关」继续有效，不因旧完成结果失效。

## 额度和用量

面板顶上那一行只说你正在看的这个会话：剩多少上下文、用的哪个模型（比如 `剩余 62% · Opus 5.5 · high`）。灰色表示这个读数是 5 分钟以前的。

上下文快满时，仓库任务的会话会自己交接给一个新会话接着做；空白会话里你也可以直接说「交接一下」。

## 可选：把常用动作设成单独的键

tokenman 只用 ⌘P（手机 `F12` 或 `⌃] p`）一个键，其余都在面板里：新会话、命令行、退出 tokenman 都是面板里的一行，选中按 ↵，或在搜索框打几个字（如「命令行」「退出」）直达；退出会先问一句。⌘K 清屏、⌘T 新标签、⌘N 新窗口、⌘Q 退出都还给 iTerm2。习惯了旧的快捷键，可以在自己电脑的 `~/.config/claude-fleet/fleet.conf` 里加回来：

```ini
[client]
FLEET_KEYS_EXTRA="next=cmd+down prev=cmd+up new=cmd+n"
[common]
FLEET_KEYS_PHONE_EXTRA="ctrl+]n=next ctrl+]b=prev"
```

可以设的动作（这张表也是生成的）：

<!-- docs-gen:keys-extra -->
| 名字 | 做什么 | Mac 上（⌘） | 手机上（⌃] 再按） |
|---|---|---|---|
| `next` | 下一个会话，右侧立刻跟过去 | `⌘↓` | `⌃] n` |
| `prev` | 上一个会话 | `⌘↑` | `⌃] b` |
| `back` | 后退：回到刚才看的会话（没有任务列表时：上一台机器） | `⌘[` | `⌃] h` |
| `fwd` | 前进 | `⌘]` | `⌃] l` |
| `new` | 新会话：直接打开「新会话」小框，仓库默认是你正在看的会话的（否则上次用的），Agent 是这个仓库上次用的；↵ 就开 | `⌘N` | `⌃] c` |
| `dispatch` | 派一件事：一行标题 + 仓库（默认上次用的）+ 可选交给 Codex，↵ 建单并开工；任何窗口都能按，不经过模型 | `⌘T` | `⌃] t` |
| `quit` | 退出当前客户端连接，会话照常在机器上运行；敲 fleet 重新进入 | `⌘Q` | `⌃] q` |
| `home` | 任何画面：家里这台机器的命令行（在 $HOME 下），不需要会话、不需要 hub；再按一次回来 | `⌘\` 或 `⌃\` | — |
<!-- /docs-gen:keys-extra -->

不用 iTerm2（比如 Ghostty、系统自带的终端）时 ⌘ 键到不了 tokenman，用 `F12` 或 `⌃] p`（先按 ⌃]，再按 p）打开面板。iTerm2 里 F12 不开面板，照旧归会话。

## 出了问题怎么说

- **连不上、打不开**：先看 [故障排查](../troubleshooting.md)。需要别人帮你看时，在终端敲 `fleet doctor --json`，把输出发给管理员。
- **常见疑问**：[常见问题](../faq.md)。

无仓库的编排会话也可以在列表菜单中换成 Codex。原会话要先结束当前回合；有原生定时任务时，面板会请它核对当前任务、准备交接笔记，再完成切换。准备期间原会话继续运行；登录、目录信任或任务信息不全时会说明原因。会话内的循环巡检与单次提醒分别保留时间和到期规则，已删除的任务不会接续。项目中的 Claude 持久提醒也会跟过去：tokenman 先存好一份暂不生效的副本，原会话再用自己的调度器删掉原提醒，等原会话退出后副本才生效，所以提醒会在切换后的对话里按时、只到一次。原会话自己做不到时（比如额度用光），只有确认没有别的 Claude 可能改写这个项目的任务表，切换才会接过提醒；否则会说明是哪个进程挡着，原会话和提醒继续运行。不要求你查找或手工导出 JSON。可信节点会补齐 HOME 的目录信任，保留你明确设置的不信任或关闭预信任的选择。未发送的输入会保留为草稿。

Codex 会话自行交接时会核对并沿用当前账号，临时代理目录不会被当作另一个账号。提示交接已准备好后，仍要等当前回合正常结束才会切换；账号不可用或目录映射无法核实时会说明原因，原会话继续保留。

已接受的远端任务会先核实所选代理，再交付首条输入。启动核实失败或连接丢失回执时，tokenman 会保留任务等待恢复，不会自动换代理或再开一份。继续会话会沿用原对话；明确换代理时，确认原会话停止后才接受下一次尝试，切换结果不明时须先恢复。

## 网页对话的连接

进入会话时，页面先确认是否可以发送；确认中或暂时断线时可以继续写草稿，恢复后再发送，草稿不会自动发出。真正只读的登录或不支持网页续聊的旧会话仍不能发送，页面会说明只读原因。

网页对话经入口转发到你家里的节点；入口和你的节点之间保持一条常开的通道，每次请求在里面走一个来回，不用每次重新连。对话仍只在你家里的节点上跑，对话与额度规则不变；本机网页照常使用。

发送后断线时，页面会重新读取原来的对话，并提示消息可能已送达。先查看恢复的内容，再决定是否重试；页面不会自动重复发送消息、停止请求或回答。

入口会在国内存一份你的对话（你说的话、回复的文字、每个工具步骤的一行；工具的输出不存），加密存放，只有你能看。打开对话时页面先显示这一份，标「同步中」，等你家里的节点答复后换成它的、标「已同步」；家里的节点连不上时也能看历史，标「同步中 · 家机器暂时连不上」。这一份 90 天没更新就删掉；在「设置 → 对话历史」里可以关掉，关掉立即删除。

## 私人实时开发预览

部署启用后，Task 详情的「实时预览」可打开自己正在开发的 HTTP/API/WebSocket 应用，
包括 SSE 和热更新（HMR）。首次打开先登录，只有任务所有者可访问。节点离线时
显示离线。默认租约 2 小时，可在详情中续期或关闭；关闭也会断开已有长连接，不停止应用。

平常的用法是对任务里的 Agent 说「把开发服务起起来，给我一个预览链接」。它用
`preview` 工具的 `action: dev` 加上你的开发命令（`npm run dev`、`next dev`、
`uvicorn …`）在后台启动，服务能应答后把链接给你。运行期间租约自动续期；
`action: stop` 同时停掉服务和预览。在那台机器自己的终端里，同一件事是
`fleet preview dev -- npm run dev`，Ctrl+C 停止。

开发服务照常监听本机回环端口。只有当命令自己的进程在监听那个端口时，预览才把请求转过去；
机器上任何别的进程占着那个端口，预览一律回答「还没起来」。Vite 和 Next.js 原样可用，
热更新也能用。会检查 Host 头的框架（Django、Rails、webpack-dev-server）需要放行预览的
主机名。主机名在环境变量 `FLEET_PREVIEW_HOST` 里，`fleet-preview` 技能给出每个框架
要加的那一行。

自己开 Unix socket 的服务也可以直接注册：`fleet preview register app.sock`、`list`、
`renew <id>`、`close <id>`，socket 放在账号自己的 `~/.fleet-preview/`（目录 0700、
socket 0600）。

每账号最多 3 个预览、32 个并发请求（包括 WebSocket），与任务并发数独立。
没有配置独立预览域名时，页面显示尚未启用。

实时预览用于运行中的服务；保存的 HTML/Markdown 成果仍从原有 Space / 活页入口打开。
试用账号也需要有效的托管登录和自己的 Task；仅有聊天试用、没有 Task 的账号暂不支持注册。


查看 [服务健康](health.md)，了解入口可用性、首次回复速度和近期事件。
