GitHub 火线榜

GitHub 火线榜 · 仓库档案

devswha/ovis

Ovis (formerly herdr web UI): free, open-source browser and phone client for herdr. Chat and live terminal for Claude Code, Codex and every agent pane, remote PCs over SSH, web push alerts (简介来自仓库自身文档。)

数据截至 10月24日devswha

最好成绩

#81

黑马榜 · 被雪藏的爆发候选

1418

累计 Star

202

Fork 总数

3

近 30 天在榜天数

把上榜徽章放进你的 README · devswha/ovis[![把上榜徽章放进你的 README](https://git.vaiox.xyz/api/badge/devswha/ovis.svg)](https://git.vaiox.xyz/zh/repo/devswha/ovis)

项目文档

Ovis

Ovis,herdr 的浏览器和手机客户端。

Ovis

English · 简体中文 · 日本語 · 한국어

官网 · 安装 · 体验演示 · 快速入门 · 常见问题 · 文档

MIT 许可证 GitHub 星标数 最新版本 herdr 0.9.0+ 可安装的 PWA


herdr-web-ui.mp4

同一个 Claude Code 会话:从 herdr 终端到浏览器的终端和聊天,再到手机,在手机上紧挨着它启动一个新的 worktree · 实机录制,无剪辑

在手机上使用 Claude Code 和 Codex。

herdr 的浏览器与手机客户端。无论在电脑还是手机上,都能以聊天方式阅读并回复你电脑上正在运行的同一批智能体会话,需要时可切换到终端。

实机录制。浏览器的 Chat 中是 Claude Code 的回复;点击 Terminal,同一窗格显示为 Claude Code 自己的终端,可以看到它在 src/server.test.ts 中添加测试“unknown refund is 404”的修改。在手机上,在 tests 标签页的终端里,按键栏的 ↑ 调出 bun test,按键栏的 Enter 运行它:5 pass,0 fail。
切换到实时终端
点一下,聊天就变成该窗格真正的终端;在手机上,按键栏的 ↑ 调出测试命令,再按旁边的 Enter 重新运行。
实机录制。浏览器显示 herdr 的布局:侧边栏中的四个工作区,每行末尾显示其智能体的状态(Claude 已完成的 checkout-api 是绿点,Codex 正在工作的 web-dashboard 是转动的弧,infra 和 release 没有标记),checkout-api 有 payments 和 dev 两个标签页。点击 dev 标签页,显示它的第一个窗格 tests,其中 bun test 为 4 pass;标签页的窗格菜单列出分屏的两个窗格 tests 和 git,点击 git 显示其 git log,同时 checkout-api 那一行显示 git。在手机上,☰ 打开同样状态的同样四个工作区,轻点 checkout-api 打开 Claude 的聊天:“What does this repo do? Answer in one line.”及其回答。
浏览器里的 herdr 布局
工作区、标签页、分屏窗格,以及每个智能体的状态都在:点一下标签页,选择分屏中的窗格,在手机上切换工作区。
实机录制。浏览器中 Claude 在处理 checkout-api 时,手机显示的是另一个工作区的终端。Claude 询问要用哪种速率限制时,手机上弹出“checkout-api Needs input”提醒,轻点后问题以卡片形式打开;浏览器中,checkout-api 那一行和 Agents 下它的那一行都显示红色问号,同一张卡片在聊天中等待。
智能体需要你时,立刻知道
即使在看别的工作区,Claude 一提问就会弹出提醒,点一下即可打开它的问题。
实机录制。手机上,checkout-api 的空聊天问道“What should Claude do in checkout-api?”。用 + 按钮附上一张合计显示为 $NaN 的收据截图并插入其路径,然后输入“Fix this, with a test.”并发送。带截图的消息出现在手机和电脑的聊天中时,镜头拉远,再推近电脑的聊天。完整视频中,Claude 随后运行第一条命令,读取 src/routes/receipt.ts 和 src/server.ts。
从手机发送截图
+ 按钮把它上传到窗格的文件夹并插入路径,Claude 会读取这张图。
实机录制。在浏览器的终端中,Claude Code 写出了 bench/p95.svg;点击它回答中的路径,图表在文件查看器中打开;在手机聊天中轻点同一路径,则全屏打开。
打开智能体生成的文件
在终端里点击路径,或在聊天里轻点路径,文件就地打开。
实机录制。在手机上打开 checkout-api 的 ⋯ 菜单 → New worktree,表单中分支 worktree/clear-field-23e0 已自动填好;选择 Claude Code 并轻点 Create worktree。镜头移到浏览器,checkout-api 的文件夹已展开,新的检出以 Claude 标记嵌套在其下;随后这一行显示为 worktree-clear-field-23e0 上方的 Claude Code,Agents 列表中也多了第四个智能体。
分出第二个智能体
在手机上点 ⋯ → New worktree:分支已自动填好,选一个智能体,它就在第一个旁边启动。

每段片段都是同时录制电脑和手机的真实操作,实时、无剪辑。点击可播放完整视频。

  • 聊天与终端,共用一个窗格 — 阅读 Claude Code、Codex、omp、omo、gjc、pi、Hermes 的原生会话记录,以及可明确识别的 OpenCode 和 Devin CLI 会话。Linux 上的 Grok 和实验性的 Antigravity(agy)也按下文所述条件提供支持,一键即可切换到同一窗格的终端。智能体工作时可将消息排队到下一轮发送,也可以用 Send now 立即发送。支持的智能体 →
  • 轻点即可批准 — 支持的审批请求、问题和计划菜单会显示为卡片,发送回答前会先确认提示仍然有效。不支持卡片的请求需在终端中回答。
  • 需要你时及时提醒 — 实时显示每个窗格的状态;应用打开时提醒会从顶部滑下;智能体需要输入或完成任务时发送推送通知,即使应用已关闭也能收到。
  • 安装到手机 — PWA 在键盘上方提供按键栏(Esc、Tab、Ctrl、Alt、Shift、Enter 和方向键),可在 Settings(设置)中调整顺序或添加自定义组合键;Tailscale 地址以二维码显示。手机设置 →
  • 开口代替打字 — 在聊天或终端输入行中语音输入,可选择中文等识别语言,并识别混在其中的英语代码术语;文字只放进输入框,不会自动发送给智能体。使用你自己的 OpenAI API 密钥,或浏览器的语音识别。录音等对外传输的详情见语音输入。
  • 查看仓库改动 — 从文件浏览器打开工作区、暂存区或提交之间的比较,逐个阅读文件差异,不会修改仓库。
  • 沿用现有工作流 — 智能体由 herdr 管理,本应用负责连接;在 Settings(设置)中更新应用,无需停止智能体,每次更新带来的变化以更新说明列出。新标签页和 worktree 可从行的 ⋯ 菜单创建。全部功能 →

安装

curl -fsSL https://ovis.sh/install.sh | sh

支持基于 glibc 的 Linux(x64、arm64)和 macOS(Intel、Apple Silicon);不支持 Alpine/musl 或 32 位 ARM。需预先安装 curl、Git 和 tar;如果没有 Bun,还需要 Bash 和 unzip。所需版本为 herdr 0.9.0+、Bun 1.4+ 和 Node 18+。安装程序为当前用户安装缺少的工具、升级旧版 Bun,并在 Node 缺失或低于 18 时安装 Node 22,然后将应用安装为 herdr 插件。如果已安装的 herdr 低于 0.9.0,请先自行更新并重启 herdr,再重新运行安装程序。

使用默认监听地址且 Tailscale 正在运行时,HTTPS 配置成功后会提供 tailnet 内的地址和二维码。未配置访问令牌时,如果 tailscale serve 报告的登录名与这台电脑的所有者相同,你自己的设备通常无需验证码即可进入。如果自己的手机仍被要求配对,OVIS_TAILSCALE_SERVE_ONLY=1 只会在 Tailscale 确认整个 tailnet 由一个登录名拥有、没有带标签的节点,且 serve 是此端口唯一访问途径时,允许没有登录信息的连接。公共代理、隧道或其他转发服务也能访问该端口时,切勿启用此设置(访问与安全)。

Windows x64 请在 PowerShell 中运行:

irm https://ovis.sh/install.ps1 | iex

需要 Git for Windows。安装程序会为当前用户补齐 herdr 和 Bun,然后安装同一个插件,无需 Node 或 WSL。要在手机上使用,请在 herdr 中打开 Phone setup。在 herdr 支持 Windows 终端附加之前,Windows 上的终端是一个可以输入、网格固定的屏幕镜像。

安装程序输出:安装 Bun、Node 和 herdr 插件,然后通过 tailscale serve 提供应用访问地址,并显示供手机扫描的二维码。

已安装 herdr 0.9.0+、Bun 1.4+ 和 Node 18+(Windows 无需 Node)?只需安装插件:

herdr plugin install devswha/ovis

旧版 herdr 必须先更新并重启。INSTALL.md 说明了各步操作及失败时的处理方法。

在 herdr 运行时,使用安装程序打印或打开的地址,通常是 127.0.0.1:7317;默认端口被占用时,插件会选择并记住其他端口。如果只安装了插件,请在 herdr 中运行 Start Ovis。首次安装到有桌面环境的电脑时,安装程序会自动打开浏览器;点击地址栏中的 Install(安装) 即可添加应用。安装后的应用属于这个确切地址,请继续使用同一地址,不要在 127.0.0.1 和 localhost 之间切换。安装前设置 OVIS_NO_OPEN=1 可跳过自动打开浏览器。选择一个窗格,或点击 New workspace(新建工作区) 启动智能体。在手机上使用时,扫描安装程序的二维码(也可从 herdr 的 Phone setup 查看),并将应用添加到主屏幕。快速入门 →

服务器默认监听 127.0.0.1。如需从其他设备访问,请参阅手机设置和访问与安全。

常见问题

可以在手机上使用 Claude Code 或 Codex 吗?

可以。在电脑上的 herdr 窗格里运行智能体,本应用就会在手机浏览器中显示同一个窗格:智能体自己的会话记录显示为聊天,审批和提问显示为可点按回答的卡片,随时可以切换到实时终端。它可以作为 PWA 安装到主屏幕,并在智能体需要你时发送推送提醒。手机设置 →

聊天视图支持哪些智能体?

Claude Code、Codex、omp、omo、gjc、pi 和 Hermes 从各自的会话存储读取记录。GJC 聊天和完成提醒通过 Web UI 的原生 GJC 扩展识别当前会话,不依赖 SDK broker 或 CLI 查询。安装该扩展并重启 GJC 即可启用;无法明确识别会话时显示终端,并使用 herdr 自身的状态。OpenCode 从支持的 2.x 和 1.x SQLite 表结构中读取 herdr 报告的会话;开始界面、缺少会话 ID,以及不支持、无法读取或超出大小限制的存储则显示终端。Devin CLI 在 herdr 或运行中的进程明确指出其会话时(例如 devin --resume <id>)显示为聊天,直接运行 devin 则显示终端。

Grok 聊天仅支持 Linux,并要求进程只持有一个会话,且与 herdr 报告的会话一致;macOS、Windows 或身份不明确时显示终端。Antigravity(agy)是实验性支持,通过运行中进程持有的会话锁定位记录,而非猜测会话。Linux 已通过原生环境验证,macOS 尚未验证,Windows 仅显示终端。对于不支持或无法读取的记录,也会显示终端。支持的智能体 →

它会取代 herdr 自带的 TUI 吗?

不会。两者同时连接到同一批终端,所以窗格在桌面、浏览器和手机上都保持实时。不需要停止或交接任何东西。 TUI 与浏览器 →

必须使用 Tailscale 吗?

不必。Tailscale、SSH 隧道、VPN 或自行配置的 HTTPS 代理都可以提供访问电脑的通路。单独安装 Portal 2.6.1+ 后,还可通过可选的 Portal 集成管理公网 HTTPS 地址;它需要 OVIS_TOKEN、可信中继,并关闭 OVIS_TAILSCALE_SERVE_ONLY。安装应用和推送提醒需要 HTTPS 或 localhost 等安全上下文;基本浏览也可以使用局域网中的普通 HTTP 地址。其他方式 →

我的代码或对话会离开我的电脑吗?

会话文件保留在运行各个智能体的电脑上,内容会发送到你连接的浏览器。本应用没有自有的云端中继或账号服务。可选的语音输入会将录音(启用文字整理时还包括文本)发送给配置的服务商;浏览器语音识别也可能使用浏览器厂商的服务。启用用量显示后会连接服务商 API;更新、远程电脑设置和推送提醒也可能使用外部服务。启用 Portal 后,连接会经过你选择的中继,它能看到连接元数据并持有该地址的证书,因此请只使用可信中继。

匿名使用计数默认启用。在应用内显示说明并留出 10 分钟等待时间后,应用可发送安装或更新计数,包含随机安装 ID、版本(更新时包括旧版本)、操作系统、CPU 架构、安装方式和白名单内的设置快照。自定义文本和账号标识会被省略或概括,不收集代码、对话或文件。仓库中的接收端会在 Cloudflare 提供国家/地区代码时记录该代码,但不保存 IP 地址。活动计数包含打开应用当天(UTC)的智能体类型;同一天出现新类型时可更新当日计数。可在 Settings → About → Anonymous usage counts 中查看内容并关闭,也可设置 OVIS_TELEMETRY=0 或 DO_NOT_TRACK=1。智能体自身如何连接模型,取决于它的配置。数据传输与访问 →

随机 ID 可关联同一安装的计数,并不保证完全匿名。

支持 Windows 吗?

支持,在 Windows x64 上无需 WSL。在 herdr 支持 Windows 终端附加之前,终端是一个可以输入、网格固定的屏幕镜像。

它与 collie、roamgate、herdr-remote 有什么不同?

这些项目也提供 herdr 的手机或浏览器客户端。本应用直接读取智能体自己的会话记录,将每轮工作过程折叠为聊天;其他电脑可从侧边栏通过 SSH 加入。它提供仓库差异查看,也能管理单独安装的 Portal 隧道,但只连接 herdr,不捆绑隧道程序。需要 tmux、zellij 或 Telegram 时,可比较其他客户端的支持范围。完整对比 →

它与 Happy、Paseo、CloudCLI UI 有什么不同?

这些项目有各自启动或管理智能体会话的方式。本应用使用你已经运行的 herdr 窗格,让 TUI 和浏览器继续访问同一个终端。如果你不使用 herdr,可以比较这些项目的部署方式和智能体支持情况。完整对比 →

文档

从用户指南开始:快速入门 · 支持的智能体 · 功能 · 手机 · 远程电脑 · 访问与安全 · 配置 · 键盘快捷键 · 常见问题。

深入了解:工作原理 · 聊天记录 · 终端流量控制 · 应用更新 · 更新日志。

致谢

本项目基于 herdr 构建,灵感来自 chatmux,并使用了 xterm.js、React、Bun 和 Lucide。

感谢所有贡献者,包括 @Yoonwoo-Ha。

智能体操作指南

正在协助他人安装应用?请遵循 INSTALL.md。修改仓库时,请遵循 CONTRIBUTING.md、审查规则和 AGENTS.md。

开发

git clone https://github.com/devswha/ovis.git
cd ovis
bun install

bun run server      # API + WebSocket on :7317
bun run dev         # Vite on :5173; run in a second terminal
bun run typecheck
bun run test:unit   # no herdr needed
bun test           # isolated herdr test session
bun run test:ui    # browser regression checks

提交改动请参阅 CONTRIBUTING.md,测试、媒体素材和发布流程请参阅开发文档,界面规范请参阅 DESIGN.md。安全问题请按 SECURITY.md 私下报告。

许可证

MIT。Copyright © 2026 devswha.

当前上榜

  • 81

    黑马榜 · 被雪藏的爆发候选

    1418 星 · 202 fork · 星 / 天

    黑马 →

近 30 天势头

累计 Star 走势

名次走势

同榜竞速 · 名次近邻

← 回到榜单