HarnessHub
Health Uyari
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Basarisiz
- exec() — Shell command execution in spikes/native-hosts/measure.mjs
- process.env — Environment variable access in spikes/native-hosts/measure.mjs
- process.env — Environment variable access in spikes/relay/bench/bench-git.ts
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
One chat for every coding harness on your Mac: Claude Code, Codex, OpenCode, Hermes, OpenClaw and more, each with its own install, login and models.
One chat for Claude Code, Codex, OpenCode, Hermes, OpenClaw and the other coding harnesses already on your Mac.
Each one keeps its own install, its own login and its own models.
Quickstart · Why · How it works · Harnesses · Docs · 中文
https://github.com/user-attachments/assets/9a2af277-9fa9-48e8-9d26-08b61bc80ca8
HarnessHub in 52 seconds, with sound: OpenCode plans, Claude Code builds, Codex reviews, DeepSeek Harness verifies, OpenClaw reports back · download the 1080p MP4
[!NOTE]
Pre-release, macOS only. HarnessHub runs from source on your own Mac. There is no published release yet, and the interface is in Chinese for now. Every claim below links to the evidence it rests on; what is not done yet is listed just as plainly.
Why HarnessHub
You already have more than one coding harness. Claude Code in one terminal, Codex in another, OpenCode or Hermes or OpenClaw somewhere else. Each has its own window, its own way to pick a model, its own approvals and its own history. The moment a task outgrows one of them, you copy the context by hand into the next.
HarnessHub puts all of them behind one conversation:
- Ask any harness, from one place. Pick Claude Code for one message and Codex for the next. The conversation, its history and your draft stay where they are.
- Nothing is emulated. HarnessHub drives the program you installed, through its own interface (ACP, Codex's app-server, OpenClaw's gateway). It uses your login and the models that harness already offers. It never creates an empty profile and never rewrites your global model settings.
- Native features come through as they are. Models, thinking levels, modes and commands are read from each harness. Approvals, questions, plans, tool calls with diffs, sub-agents and usage show up in the chat the way that harness reports them.
- Your harnesses, kept up to date. HarnessHub finds what is installed through official channels, and can install, upgrade or uninstall each harness the way its vendor documents, with every command shown before it runs.
Everything stays on your machine. The page is served on 127.0.0.1, signed in with a one-time link, and the data lives in a SQLite database you own.
Highlights
One conversation
|
Native, per harness
|
Your Mac, managed
|
How it works
flowchart LR
You["You<br/>browser on 127.0.0.1"] --> Hub
subgraph Hub["HarnessHub"]
direction TB
S["Public conversation<br/>SQLite · commit, then publish"]
R["Runtime<br/>switching · approvals · cancel · resume"]
D["Drivers<br/>ACP · Codex app-server · OpenClaw gateway"]
S --> R --> D
end
D --> CC["Claude Code"] & CX["Codex"] & OC["OpenCode"] & DS["DeepSeek Harness"] & HE["Hermes Agent"] & CL["OpenClaw"]
CC & CX & OC & DS & HE & CL -.-> M["Their own logins<br/>and models"]
The conversation is HarnessHub's; each harness keeps its own native session underneath. Facts are committed to the database before they are shown, so a reload replays exactly what happened and an unknown outcome is never re-run on its own. When you switch, the next harness is given a handoff packet: the conversation so far, folded to a bounded budget, with what was left out said plainly. A harness that returns to a native session it already has receives only what it has not seen yet, and a conversation with one harness gets nothing added at all. Vendor SDK types stay inside the drivers; the rest of the code never branches on which harness it is talking to.
Supported harnesses
HarnessHub focuses on seven harnesses (ADR-046) and adapts to each one's latest official release (ADR-053). The capability matrix tracks 27 native features per harness, each with its source and evidence.
| Harness | Driven through | Native features done in HarnessHub (of 27 tracked) |
|---|---|---|
| Claude Code | ACP, via claude-agent-acp bound to your own claude |
22 of 27 |
| Codex | Codex app-server | 20 of 27 |
| OpenCode | ACP (opencode acp) |
16 of 27 |
| Hermes Agent | ACP, attached to your running gateway | 16 of 27 |
| DeepSeek Harness | ACP, through dsh's own profile |
13 of 27 |
| OpenClaw | ACP plus your own OpenClaw gateway | 10 of 27 |
| WorkBuddy | Planned: the embedded CodeBuddy CLI on WorkBuddy's own data (ADR-048) | not yet |
"Wired" means implemented in HarnessHub; the matrix records separately which of them passed with the real harness on this Mac. Cursor, Gemini CLI and Pi have drivers too but are frozen outside the focus. The catalog describes 45 products; being listed there does not mean a harness can be driven.
Quickstart
Requirements: macOS, Node.js 24 or later, pnpm 10.12.3, and at least one harness from the table above, installed and signed in the official way.
git clone https://github.com/wyzz973/HarnessHub.git
cd HarnessHub
pnpm install --frozen-lockfile --ignore-scripts
pnpm build && pnpm web:build
pnpm web --cwd /path/to/your/project --data-dir data --port 4317
Open the one-time link it prints. The token is exchanged for a local cookie and removed from the address bar; the service listens on 127.0.0.1 only. Closing the page does not cancel a reply, and Ctrl+C waits for running work to wind down and keeps the history. The service owns its --data-dir while it runs.
pnpm discover # official installs found here, with channels and versions
pnpm chat --harness codex --data-dir data --cwd /path/to/project
pnpm sessions list --data-dir data --json # public conversations
pnpm sessions check-upgrade --data-dir data # before an upgrade: what it would do, read-only, nothing written
pnpm sessions restore-backup --data-dir data # after an upgrade: put the backup back as the library (service stopped; deletes nothing)
In pnpm chat, :harness opencode switches harness, :cancel stops the current turn and :history prints the public history. See engineering status for every command and flag.
Status
HarnessHub is pre-release. To keep the claims honest, the project separates designed, implemented, passing synthetic tests and passing with the real harness:
| Tested | pnpm check (build, web build, boundary, wording and tooling checks), pnpm test (996 passing) and the browser suite pnpm test:web run on macOS arm64 |
| Real harnesses | Recorded per feature in the capability matrix and the verification records; some features are blocked by plan or quota limits on the test account and are marked as such |
| Relay | The handoff packet between harnesses passes synthetic tests; in real-harness smoke tests (on storage v12), OpenCode → DeepSeek Harness → OpenCode passed end to end, and Claude Code → Codex passed its handoff, while Claude Code (on haiku), back on its own session, misread a delta that was correct. The business store is now v13: it migrates v12 data and has the relay tables, which nothing writes yet. Delivery records, calibrated budgets and an omission view in the interface build on them (ADR-055) |
| Designed | Long-lived native hosts instead of one process per turn (ADR-056) |
| Not planned | Windows and Linux (ADR-044) |
| Later | Managing model providers centrally; for now each harness uses the models it is configured with |
| About the film | The relay, the conversation and its numbers are illustrative. The five legs follow what each harness is known for; sending the summary to a phone is OpenClaw's own messaging feature and has not been verified through HarnessHub |
Documentation
The documentation is in Chinese.
| Topic | Start here |
|---|---|
| Overview and reading order | docs/README.md · engineering status |
| What this release can do | Feature list of the minimum usable version, with its evidence and limits |
| Decisions | ADR index, 49 records |
| Contracts and invariants | contracts · invariants |
| Evidence | capability matrix · verification records |
| Plan | tasks · test matrix, generated from plan/ |
Development
pnpm check # build, web build, boundary checks, UI wording, tooling tests
pnpm test # unit, integration, protocol and recovery tests against real files and processes
pnpm test:web # the web page in a real browser (needs: pnpm exec playwright install chromium)
AGENTS.md, development and testing hold the rules every change follows: one owner per file, contracts before code, facts committed before they are published, and no test that stands in for the real harness without saying so.
License
MIT. Brand icons come from Lobe Icons (MIT) and other sources listed in web/THIRD_PARTY_ASSETS.md; product names and marks belong to their owners and are used only to identify the harnesses HarnessHub works with. HarnessHub is not affiliated with Anthropic, OpenAI, DeepSeek, Nous Research, Tencent, the OpenCode or OpenClaw projects, or the GitHub organization HarnessHub.
The project's engineering name is HarnessGateway, which is why the package is called harness-gateway. The earlier control-plane edition of HarnessHub is kept on the archive/control-plane branch.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi