harnss
一个桌面应用统一管理 Claude Code、Codex 和所有 ACP 兼容 AI 编程 Agent,多引擎并排运行,工具调用可视化
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
一个桌面应用统一管理 Claude Code、Codex 和所有 ACP 兼容 AI 编程 Agent,多引擎并排运行,工具调用可视化
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:Harnss 应用主界面 — 多引擎并排运行,带丰富的工具调用可视化效果
你有没有过这样的经历:同时开着 Claude Code 写后端、用 Codex 调试前端,任务列表越堆越长,切换工具时还得重新复制上下文,整个人的精力都被消耗在了「管理 AI」而不是「让 AI 干活」上?Harnss 正是为解决这个痛点而生的桌面应用——它把主流 AI 编程工具整合进一个统一的 GUI,让你像切换浏览器标签页一样丝滑地在不同 AI Agent 之间穿梭,所有工具状态、文件改动、终端输出一目了然。
Harnss 由独立开发者 Dejan Zegarac(GitHub @OpenSource03)开发维护,项目名称是 "Harness"(驾驭、约束)的变体,寓意「驾驭你的 AI 编程 Agent」。作者曾在多个 AI 编程工具之间反复横跳,深感切换成本之高,于是花数月时间打造了这款统一界面。
项目采用 MIT 开源许可证,目前处于 v0.22.0-beta.2 的早期开发阶段,README 中明确标注正在筹划一次大规模重构以提升可维护性和生产可用性。代码结构相对干净、历史包袱少,重构后的潜力值得期待。
这是 Harnss 最核心的差异化能力。不同于大多数 AI 编程工具只是单一 CLI 工具,Harnss 通过 @agentclientprotocol/sdk 接入 ACP(Agent Client Protocol),同时通过 @anthropic-ai/claude-agent-sdk 接入 Claude Code,并通过 Codex 原生集成支持 OpenAI Codex:
每个 Agent 运行在独立的 Session 中,拥有独立的上下文历史和文件系统状态。用户可以在 Spaces(项目空间)中组织多个 Project,每个 Project 下可开启多个并行的 Agent Session。切换时上下文不丢失,体验接近 IDE 的多标签页。
传统 AI Agent 的工具调用在终端里就是一行行冰冷的 JSON,而 Harnss 实现了丰富的前端渲染:
这种可视化对于需要审计 AI 行为、理解 AI 决策过程的开发者来说尤为有价值。
Model Context Protocol(MCP)是新兴标准,让 AI Agent 可以连接外部工具和数据源。Harnss 对 MCP 的支持相当成熟:
Harnss 将 Git 操作深度嵌入工作流:Stage / Unstage / Commit / Push 全部在 GUI 内完成,分支浏览和 Commit 历史查看,支持 Git Worktree 管理,还能从 staged diff 自动生成符合规范的 AI Commit Message。
图2:内置多标签页 PTY 终端 + 嵌入式浏览器,所有工作流在一个窗口内完成
图3:ACP Agent 注册表浏览界面,一个 UI 掌控所有兼容 Agent
Harnss 采用经典 Electron 三进程架构:
| 进程 | 技术栈 | 职责 |
|---|---|---|
| Main Process | TypeScript + Node.js | 窗口管理、IPC 路由、系统集成、Claude SDK 生命周期管理 |
| Preload | TypeScript | 安全桥接层,contextBridge 暴露受限 API 给 Renderer |
| Renderer | React 19 + TypeScript | 完整 UI 渲染、状态管理、用户交互 |
Main Process 中导入了 12+ 个 IPC 模块(spaces、projects、sessions、terminal、git、mcp、settings 等),职责划分清晰。
前端采用 React 19 配合 Zustand 5 状态管理,UI 框架使用 shadcn/ui(基于 Radix UI)+ Tailwind CSS 4。亮点库包括 Monaco Editor(代码编辑)、@xterm/xterm(终端模拟)、Konva(Canvas 可视化)、react-markdown(Markdown 渲染)、mermaid(架构图)和 motion(动画)。
electron-builder 配置中 asar 解压了 Claude Agent SDK 的多个关键文件(cli.js、WASM 模块、vendor 资源)。这说明 Claude Agent SDK 以 Node.js 子进程方式运行,WASM 模块需要从 ASAR 包外读取——Harnss 通过 afterPack 钩子精确控制包体大小。
package.json 中依赖了 electron-liquid-glass(来自 darkkatarsis/electron-liquid-glass),这是 macOS Sequoia 15 引入的 Liquid Glass 窗口效果的第三方移植,仅在 macOS 和 Windows 上生效。这是一个有争议的依赖,可能随上游变化出现兼容性问题。
Harnss 集成了 PostHog 进行产品分析,初始化为「opt-out」模式,即默认不采集,等用户手动同意后才开启。
Harnss 没有提供 Dockerfile 或 docker-compose,这是有意为之的设计——Electron 应用天然是桌面 GUI,容器化意义有限。不过 electron-builder 配置了完整的跨平台打包流程:
| 平台 | 格式 |
|---|---|
| macOS | DMG / ZIP |
| Windows | NSIS EXE |
| Linux | AppImage / deb |
如果需要从源码构建,则需要 Node.js >= 18、pnpm >= 9 和平台原生构建工具。开发模式下通过 pnpm dev 启动 Vite 热重载 + Electron 并行开发服务器。
图4:MCP 工具调用的精美卡片式渲染,连 Jira 问题也带专用 UI
Harnss 背后反映的是一个更大的趋势:AI Agent 的工具正在从终端走向图形界面。随着 Claude Code、Codex 等 AI 编程工具的成熟,用户对「多 Agent 协作管理」「工具调用可视化」「上下文持久化」的需求急剧增长,Harnss 恰好填补了这个空白。从 GitHub Star 增长曲线来看(入库时 309★,当前 311★),Harnss 处于快速成长期,如果即将到来的重构能提升稳定性,有潜力成为 AI 编程工作流的必备工具之一。
图5:Spaces 中多项目并行管理,每个项目有独立的 Agent Session 状态