hermes-conduit:为hermes打造的纯原生iOS客户端

hermes-conduit:为hermes打造的纯原生iOS客户端

💡 原文中文,约2300字,阅读约需6分钟。
📝

内容提要

Hermes Conduit 是一款为 Hermes Agent 打造的纯原生 iOS 客户端,基于 SwiftUI 构建,支持 iPhone 和 iPad。它可直接连接 Hermes 仪表盘,实现流式聊天、工具调用、会话管理、推送通知等功能,无广告无追踪。需 iOS 17 及以上,通过 WebSocket 通信,支持多账户和 Face ID 锁。

🔎

延伸解读

连接方式与网络要求

Conduit 直接连接 Hermes 原生仪表盘(默认端口 9119),而非 WebUI。若服务器不在本地网络,需通过 Tailscale 或反向代理使手机可访问。这意味着用户需具备一定的网络配置能力,且连接稳定性依赖网络环境。

推送通知的折中方案

由于 iOS 限制,App 无法维持后台长连接,推送通知依赖轻量级中继服务。默认使用共享中继(push.milim.dev),也可自建。用户需在服务端安装配套插件并完成配对,这增加了配置步骤,但换来了无需持续前台运行的体验。

功能完整性与移动端适配

App 功能与桌面客户端基本一致,包括流式聊天、工具调用、会话分支、文件浏览等。移动端特有推送通知和 Face ID 锁,但语音模式依赖本地识别,可能受设备性能影响。整体上,它并非简化版,而是完整功能的移动延伸。

Q&A

Hermes Conduit 是什么?

Hermes Conduit 是一款为 Hermes Agent 打造的纯原生 iOS 客户端,基于 SwiftUI 构建,支持 iPhone 和 iPad,可让用户直接连接并控制自己的 Hermes Agent,提供免费、无广告、无追踪的移动端体验。

Hermes Conduit 有哪些主要功能?

主要功能包括:流式聊天和 Markdown 渲染、查看工具调用和推理过程、语音模式、图片/PDF/文本附件上传、会话分支/置顶/归档、Slash 命令、工作区文件浏览、能力面板(开关技能/工具/MCP 服务器)、多账户登录、推送通知、应用内工具调用审批、Face ID 应用锁等。

Hermes Conduit 的系统要求是什么?

需要 iOS 17 或更高版本,支持 iPhone 和 iPad。服务端需要运行 Hermes Agent 实例,并启用原生仪表盘(默认端口 9119)。

如何连接 Hermes Conduit 到 Hermes 服务端?

在 App 登录界面输入 Hermes 仪表盘地址(如 http://your-server-ip:9119)和凭证即可。注意 Conduit 连接的是原生仪表盘而非 WebUI,若服务器不在本地网络,需通过 Tailscale 或反向代理使其可访问。

Hermes Conduit 的推送通知是如何工作的?

由于 iOS 限制,App 无法维持后台长连接,因此推送通知依赖轻量级中继服务。需要在 Hermes 实例上安装通知插件(hermes plugins install kaishi00/hermes-conduit-notifier --enable),然后在 App 的 Settings > Notifications 中配对。默认使用共享中继 push.milim.dev,也可自建。

如何从源代码构建 Hermes Conduit?

步骤:克隆仓库 git clone https://github.com/kaishi00/hermes-conduit.git,进入目录,安装 XcodeGen(brew install xcodegen),运行 xcodegen generate 生成项目,打开 Conduit.xcodeproj,在 Xcode 中设置开发团队后构建运行。需要 Xcode 16 及以上和 iOS 17 SDK。

Hermes Conduit 的技术架构是怎样的?

UI 框架为纯 SwiftUI,目标平台 iOS 17+。使用 XcodeGen 生成项目。通信方式:登录认证后,通过 WebSocket 连接到 Hermes 仪表盘的 /api/ws 端点,所有 RPC 调用都通过仪表盘路由,不直接联系 Gateway。核心文件包括 HermesClient.swift(WebSocket 客户端和 RPC 层)和 AppState.swift(状态管理)。

🏷️

标签

➡️

继续阅读