手机上怎么用
打开 Pairfob 后先看到电脑上的会话列表。点一张卡片,打开的就是电脑上那个会话,不是副本,也不是截图。
宽屏(大约平板横屏或桌面浏览器)会走双栏:左边列表,右边会话。手机是一屏一张。从会话左缘右滑可以回到列表。
列表
默认 按工作区 分组,也就是按项目目录。列表右上角的 工作区 按钮打开 分组方式:
- 工作区 — 按 Herdr 工作区分组(默认)
- Agent — 按 Agent 种类分组
- 全部 — 不分组,一条列表
同一个面板里还有 全部展开 / 全部折叠。卡片和分组按你最近点开的顺序排,状态变化不会挪动位置。
分组后点标题可以展开或折叠。默认只展开第一组,其余先收着。有 置顶 时,置顶和它下面那一组默认展开。
有会话在等你时,列表顶部会出现 需要你 一栏,列出这些会话,点一下直接进去。
卡片大字只放一个身份:有会话名就用会话名;没有的话,若工作区名不是当前目录名,就用工作区名;再否则用终端里像任务的标题(会去掉 Thinking / Waiting for response 和末尾的 - grok)。都没有时,有 Agent 就写 claude,纯终端写 终端。下一行永远是坐标,顺序是 claude · pairfob(Agent · 目录 · 非默认标签页),不重复大字里已经有的词,也不展示 main。不会拿内部 ID 当名称。
- 会话名:这一块终端画面的名字;改它只影响当前会话
- 标签页名:装着一个或多个会话的标签页;改它会影响整个标签页的识别
- 工作区名:最外层项目容器的名字;按工作区分组时就是分组标题
| 状态 | 意思 |
|---|---|
| 等你 | agent 在等确认或输入,卡片更醒目 |
| 工作中 | 正在跑 |
| 本轮结束 | 这一轮做完了 |
| 等待输入 | 空着,等你给下一件事 |
| 空闲 | 连着但没在忙 |
| 启动中 | Agent 正在启动 |
| 未知 | 电脑没有报告状态,或暂时确认不了 |
已连接但列表为空时,说明 Herdr 里还没有会话,可以新建一个或在电脑上打开终端。只有页面明确显示 电脑上的 Herdr 没在运行 时,才需要打开 Herdr;也可以在电脑上执行 pairfob doctor 确认状态。
新建 在电脑支持时出现:手机上在右下角,宽屏时在左栏顶部。列表长按或会话 ··· 里的 新建标签页,以及会话 ··· 里的 分屏,用同一份 Agent 种类列表:可以选一个 Agent,也可以选 终端。电脑没有列出 Agent 种类时,对话框仍然能开,结果是一个纯终端会话。正在新建的 Worktree 会出现在列表上方,完成前可以取消。
点卡片进去。长按(电脑上右键)可以 置顶、在同一工作区再开一页、改名或关闭这份会话。置顶的会话出现在列表最上面的 置顶 分组,不再留在原来的工作区或 Agent 组里;再长按 取消置顶。标签页已经有可见名字、或正在分屏时,才会出现改标签页名;关整个标签页只在分屏时出现。按工作区时,长按分组标题可以 在这个工作区新建标签页、改工作区名,或 关闭这个工作区;其他分组方式下,工作区改名和关闭在卡片长按菜单最底下。电脑支持新建标签页时,新建入口才会出现。分屏仍在点进会话后的 ··· 里。
画板(卡片长按里的 看标签页布局、会话 ··· 里的 在画板中查看 也能进)照电脑上的样子画出当前标签页:每一格的位置和大小都和 Herdr 里一致,格子里是那一格的真实画面,跟着捏合(电脑上 Ctrl + 滚轮)一起缩放;每格顶部的标题条显示 Agent、名字和状态。点标题切换工作区,下面一排是这个工作区的标签页;+ 新建标签页(长按是 再开一个),长按标签页可以改名、新建或关闭。这里切换工作区或标签页不会抢走电脑上的焦点。
点一格就打开那个会话;在一格上竖着拖动,会滚动那一格在电脑上的画面。长按一格(电脑上右键,或点标题条上的 ···)是这一格的操作:分屏…、调整大小、交换位置…、在电脑上铺满、改名和关闭。也可以直接拖格子之间的分隔线调整大小,或长按一格、拖到相邻的格子上交换位置。这些操作会立刻改变电脑上的分栏;每项要电脑支持才会出现,重新连接期间画板只能看、不能改。宽屏时画板在右侧,左栏照常是会话列表;画布获得焦点后也能用 Herdr 的键:方向键选格,Shift + 方向交换,Option + 方向调整大小,v / - 分屏,z 铺满,x 关闭,0 适配。
手机底部是 会话 / 画板 / 设置 三个标签,有会话在等你时 会话 上会显示数字。宽屏时这些入口在左栏顶部一排:新建 / 电脑 / 画板 / 设置。
点进会话
默认用 自动:P2P 直连、浏览器支持 WebGL2 且未开启省流时进入真终端,否则进入控制。电脑上已经打开的会话仍在电脑上运行,不是远程桌面,也不是浏览器里再开一个终端。
标题栏:
- 左:返回列表(手机)。有其他会话在等你时,返回键上会显示数量
- 中:Agent 图标、会话名和状态。只是显示,不能点;换会话请回列表,或从左缘右滑
- 右:文件夹 查看文件与更改,然后
···会话操作(怎么看、怎么输入,以及改这一格的名字、关掉这一格)
停止正在工作的 Agent 在输入框右侧的按钮上,见下面的 控制。
四个选项在 ··· 最上面切换。某个会话里改过,只记住那一个。设置里可以改点开会话时的默认。
| 模式 | 做什么 |
|---|---|
| 自动 | 打开会话时选择:P2P 直连、支持 WebGL2 且未开启省流时用终端,否则用控制 |
| 控制 | 查看终端画面,用系统键盘和按键垫操作这个会话 |
| 终端 | 真终端。vim、全屏 TUI 才需要。手机默认保持 80 列、左右滑动;适应屏幕 会把电脑上的终端缩到手机宽度。上下滑仍是远端滚动 |
| 对话 | 和 Agent 发消息。任务从这里发,不在 ··· 菜单。每一轮的执行过程收在一张过程卡里,运行中展开,结束后收成一行结果。Claude Code、Codex、Grok、Pi、Cursor、Hermes、opencode 的会话可用;后三种要等 Agent 把会话存下来才能进入,Cursor 是在发出第一条消息之后。Cursor 不记录步骤结果,所以它的步骤只显示“已结束”,不区分成功或失败。Hermes 需要电脑上有 sqlite3;opencode 1.2 及以后的版本暂时读不了 |
控制里:
- 底部输入框用系统键盘,听写和自动更正都可用,可以写多行。手机键盘的回车默认换行,写完点 发送;想让回车直接发送,在设置里打开 回车键发送。外接键盘上 Enter 发送、Shift+Enter 换行
- 输入框右侧的按钮随情况变化:
- 有草稿:发送,文字进终端并按下 Enter
- 没有草稿、Agent 正在工作:停止。点一下向终端发送 Esc;如果它还在工作,按钮变成 强制停止,再点一次才发送 Ctrl+C,而且只发一次。有草稿时长按 发送 也能停止
- 其他时候:Enter(↵),向终端发送回车
- 组字 / 实时 在
···→ 输入与显示 → 输入 里切换,只影响这个会话;实时模式下输入框里会标出 实时 - 终端里的确认选项保留原样;按提示用按键垫的 ↑/↓ 选择,再按 Enter 确认。需要输入字母或文字时,按终端提示输入
- 点某一行可以 复制、复制路径、引用 到输入框,或 选择… 文本
- 上滑或页↑是给当前画面翻页,不是拉取历史
- 字号会记住
- 长行可以自动折行,也可以关掉
- 按键垫第一排是 Esc、方向键和退格。点
···展开后,可以在 按键 和 命令 之间切换:按键里有 控制(Ctrl、Alt、Shift、Cmd、Tab、Shift+Tab、Enter、Ctrl+C 等)和 选择与编辑 两页;命令里是 Agent 的斜杠命令(/clear这类;点一下会放到草稿开头,实时输入时直接写进终端,都不会替你按回车,Pairfob 也不解释)和你自己的常用指令,可以新建、编辑、拖动排序
对话模式里 Agent 等你时,这一轮会出现 需要你确认 卡,显示终端里的提示。提示是编号选项时(Claude Code、Codex 的批准列表),可以直接在卡上选一项再点 发送选择:发送前电脑会核对终端画面没有变,变了就重新读取,让你再选一次,不会自动重发。其他提示只显示终端里的最后几行。任何时候都可以点 去终端处理 切到 控制;确认前先读清操作和当前选项。
电脑和手机操作的是同一个终端中的确认框,一边完成确认后,另一边会看到更新后的状态。如果手机看不到提示,先在电脑上处理,并反馈手机所在模式、Agent / 扩展版本和脱敏录屏。
查看文件与更改
会话顶栏的文件夹不是 Worktree 菜单,打开的是这一格的工作区。顶部显示当前分支和领先的提交数:
- 文件 — 目录列表和文本预览
- 更改 — 未提交的 Git 状态,分成 已暂存的更改 和 更改 两组;点文件看 diff
- diff 页可以在 已暂存 和 工作区 之间切换,打开文件 看全文,底部 上一个 / 下一个 逐个翻改动的文件
- 点 diff 的一行写批注,再 发给 Agent
- 分支列表只读;切换工作走 Worktree
电脑端 daemon 还不支持时,页面会说明。
上传附件
点输入框左侧的附件按钮 添加附件,用系统的选择器选文件、照片或拍照;也可以直接粘贴。入口只在电脑端支持附件上传时出现;如果看不到,先确认已连接,并更新电脑端 Pairfob。
上传并交给 Agent
- 选好的文件出现在输入框上方的附件栏。图片可以先编辑,每张都能在 智能压缩 和 原图 之间切换。
- 已经是 P2P 直连 时会自动开始上传;还没直连时,附件栏提示 需要直连才能上传,点 连接。
- 写好说明,点 发送。已上传的附件路径会按附件栏的顺序附在正文后面一起发出;还有附件在上传时,按钮显示 等待上传 N%,传完自动发送,点一下可以取消等待。有附件传不完时会提示,可以 重试、连接,或 不带它发送。
- 想把某个路径放在正文里的指定位置,对这个附件选 放进正文。
文件保存到当前会话的电脑工作区。只上传不会发送任务,也不会按下终端 Enter;只有你点 发送 时才一起发出。文件传递不依赖运行的是哪种 Agent;Agent 能否读取 PDF、识别图片或解析 Office 文档,取决于它自己的模型和工具。
文件类型与大小
PDF 可以上传,并按原文件传输。 系统选择器不限制扩展名,也可选择文本、Markdown、JSON、图片、Office 文档、压缩包和音视频等。文件能上传不代表 Pairfob 提供该格式的预览或解析。
电脑端使用受控文件名保存附件。浏览器正确识别的 PDF 会保存为 .pdf;未专门映射或未识别的类型可能保存为 .bin,内容不变。
| 限制 | 当前值 |
|---|---|
| 每个会话的附件队列 | 最多 5 个文件 |
| 实际上传的单个文件 | 不超过 20 MiB |
| 同一队列的实际上传总量 | 不超过 40 MiB |
| 本机保留的源文件总量 | 不超过 80 MiB |
符合条件的 JPEG 照片可以先选择最大 40 MiB 的源文件,但压缩后的实际文件仍须满足上传限制。PDF 和其他普通文件在选择时就限制为 20 MiB。本机保留容量不是上传额度;如果压缩失败或选择原图后仍超限,需要先减小文件。
图片智能压缩
图片默认用 智能压缩,在 P2P 就绪、开始上传时处理,不是在选中时立即压缩:
- 大于 256 KiB 的普通 JPG/JPEG 照片会尝试压缩,最长边不超过 2048 像素;由 JPEG 照片编辑生成的 PNG 也可能进入这一流程。
- 普通 PNG、WebP、AVIF、HEIC/HEIF、GIF 和 SVG 保留原图;识别为截图的文件名也会跳过自动压缩。
- 选择 原图 时跳过这一步压缩,并保留已经做过的编辑。
- 文件不超过 256 KiB、压缩失败或节省不足 10% 时保留原图。
预览 → 信息 里会显示实际节省的大小,或保留原图的原因。文字截图、报错信息和细小图表可以点 改为原图。
断线、检查状态与继续上传
文件上传只走 P2P。 Relay 可以查看会话,但不能开始、继续或检查上传。P2P 不可用时,未发送的队列任务会停下;已有的图片准备结果可以复用。直连恢复后,还没开始的文件会自动上传;显示 暂停 的文件点 继续上传,失败的点 重试,上次没传完的点 全部继续。
结果不确定时(例如取消后电脑没有确认),文件上会改为 检查状态:需要时先建立直连,然后只查询电脑已收到的进度,不会自动续传。刷新页面后,浏览器会尝试恢复本机保存的未完成附件;若浏览器存储不可用或记录已被清理,则无法保证恢复,请按页面提示处理。
点开附件的 预览,再点 信息,可以看到大小、保存路径,以及 压缩、校验、本机保存、发送 等各阶段的耗时。本机保存 是浏览器在写入本机恢复记录,排在该文件的网络发送之前。
会话操作里可能出现的操作
点会话标题栏右侧 ···。电脑当时做不到的项不会出现。改标签页名、改工作区名、关闭整个标签页、关闭这个工作区在列表长按菜单里,不在这里。
| 分组 | 可能有 |
|---|---|
| 模式 | 自动、控制、终端(vim / TUI)、对话 |
| 快捷格 | 复制文本、新标签、分屏、重命名 |
| 输入与显示 | 输入:组字 / 实时、字号、长行自动折行(控制)、宽度:适应屏幕 / 80 / 100 / 120 列(终端)。对话模式下不显示 |
| 会话 | 布局(拖动分隔线调大小、长按这一格拖到别处交换、铺满)、Worktree(列表、新建、打开)、Agent 信息、关闭会话 |
对话把一轮里的思考和工具收进一张过程卡。卡头先说结果:等你确认、改了哪些文件、共几步和用时。中途失败又被 Agent 继续处理的步骤只在列表里标出,停在失败的一步时卡头才会说明。运行中展开显示最近几步,结束后收成一行;步骤多时可以只看失败或编辑的步骤。点任一步打开详情,看命令或参数和输出,可以复制,也可以 上一步 / 下一步 翻看。完成的回答下面可以 复制,代码块可以单独 复制代码;线程很长时 加载更早内容。
网页不会任意执行命令、删 worktree,也不会把电脑窗口抢到前台。
设置
手机上点底部的 设置;宽屏时在左栏顶部。
- 电脑卡片:上面是电脑名,下面一条从 这台手机 到 电脑 的连线,线上是当前路径和往返时延(没连上时是 未连接)。点这张卡片进入这台电脑的页面,里面的 网络路线 有 自动 / 仅 P2P / 仅 Relay:自动优先直连,不通时用中继;仅 P2P 只尝试直连,不通时暂走中继并在后台继续重试(再点一次立即重试);仅 Relay 只用中继。这个选择会留在这台浏览器上。同一页还有 已配对设备、导出连接诊断 和 解除这台手机的配对。切换电脑 打开 电脑 列表,在那里点 添加电脑 再配一台,不会替换现在这台。手机上点会话列表顶部的电脑名,也能打开同样的 电脑 面板;宽屏在存了两台以上时,左栏会出现 电脑
- 订阅余量:这台电脑已登录账号的额度(Codex、Claude Code、GitHub Copilot、Cursor、Grok、Antigravity)。每个服务一行,带进度条和剩余百分比;全部余量 里看各窗口,那一页可以 刷新余量。没有数据或已过期时不会显示成零
- 语言:跟随浏览器,或固定 中文 / English。只作用于这台设备上的 Pairfob。文档右上角有自己的语言菜单,两者记的是同一个
pairfob_lang偏好 - 模式:点开会话时默认用 自动,也可以固定为 控制 / 终端 / 对话。某个会话里再切换,只记住那一个
- 输入:新会话默认用组字(写完点发送)还是实时(边打边进终端)。会话里
···→ 输入与显示 再切换,只影响那个会话 - 回车键发送:默认关,手机键盘回车换行,用发送键发送;打开后回车直接发送。外接键盘始终是 Enter 发送、Shift+Enter 换行
- 通知:见 通知。开启后,Agent 等你处理或完成任务时会通知这台手机;电脑端没开推送时,这一行会说明,点 怎么开启 展开设置步骤
- 已配对设备(在电脑页面里):名称、在线或离线、最近使用、通知。当前设备标成 这台手机。其他设备可以点 解除;已解除的不再列出
- 导出连接诊断(在电脑页面的 诊断 里):连接出问题时导出最近的连接事件,见 常见问题
- 更新电脑端:列表上会提醒,设置里 电脑端版本 一行可以 检查更新 / 更新电脑端(用户服务安装才支持从手机更新)。确认后会短暂断开再连上。不会自动安装。命令行见 命令行
- 解除这台手机的配对:在电脑页面最下面。之后必须重新配对
丢失的手机如果还能打开 Pairfob,也可以从设置里解除其他设备。立刻在电脑上 pairfob forget 那台手机,见 多台设备。
命名 Herdr 会话
如果电脑上跑着不止一个 Herdr 服务(herdr --session <name>),手机可以在它们之间切换。当有命名会话正在运行,或当前选择的是命名会话时,会话列表顶部会显示当前 Herdr 会话的胶囊按钮(宽屏时在左栏),设置里也有 Herdr 会话 一行。选中的命名服务停止后,切换入口仍保留,方便返回默认会话。点任意一处即可换一个;列表会标出哪些正在运行。
命名 Herdr 会话默认开启。如果 HERDR_SOCKET_PATH 设置为非默认路径(即不是 ~/.config/herdr/herdr.sock),而 PAIRFOB_MULTI_SESSION 未设置或为空,多会话功能保持关闭。设置 PAIRFOB_MULTI_SESSION=1 可在固定 socket 时开启;其他非空值保持关闭。
要关闭这个功能,在电脑上用你平时安装时的同一个 shell 运行:
PAIRFOB_MULTI_SESSION=0 pairfob service installservice install 会按当前 shell 的环境变量重写用户服务,所以安装时设过的其他变量(例如 HERDR_SOCKET_PATH)也要一起导出,否则会丢失。之后这个设置在重启和 pairfob update 后都保留。要重新开启,不带它再运行一次 pairfob service install。
每次运行都会列出原服务定义的环境里被移除或改动的内容,包括手工加进去的条目。只有 service install 自己写入的变量才显示值。原服务定义无法读取比较时,会在状态目录里保留一份副本,并打印它的路径。
目前的限制:
- Pairfob 只会自动启动配置的默认服务,命名服务需要自行启动。只使用命名会话时,电脑重启后会多出一个空的默认服务;设置
PAIRFOB_HERDR_AUTOSTART=0可关闭自动启动 - 通知只来自默认 Herdr 会话
- 不支持这个功能的旧版电脑端不显示切换入口
另一个窗口
同一台已配对设备上,另一个浏览器窗口打开 Pairfob 时,旧窗口可能提示「另一个窗口接管了这台手机」。只用一个打开的页面。
加到主屏幕
见 开始使用。iOS 建议用 Safari 添加到主屏幕后再日常使用。