Show HN: Hubo – two agents that implement and review code until they agree

hongchao1 pts0 comments

GitHub - h0ngcha0/hubo: Two agents spar over one codebase until every review finding is reconciled. · GitHub

/" data-turbo-transient="true" />

Skip to content

Search or jump to...

Search code, repositories, users, issues, pull requests...

-->

Search

Clear

Search syntax tips

Provide feedback

--><br>We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel

Submit feedback

Saved searches

Use saved searches to filter your results more quickly

-->

Name

Query

To see all available qualifiers, see our documentation.

Cancel

Create saved search

Sign in

/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up

Appearance settings

Resetting focus

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

h0ngcha0

hubo

Public

Notifications<br>You must be signed in to change notification settings

Fork

Star

main

BranchesTags

Go to file

CodeOpen more actions menu

Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit

History<br>20 Commits<br>20 Commits

.agents/plugins

.agents/plugins

.claude-plugin

.claude-plugin

.codex-plugin

.codex-plugin

.github/plugin

.github/plugin

assets

assets

skills/hubo

skills/hubo

LICENSE

LICENSE

PRIVACY.md

PRIVACY.md

README.md

README.md

README.zh-CN.md

README.zh-CN.md

TERMS.md

TERMS.md

View all files

Repository files navigation

Hubo

双手互搏

Two hands spar over every change. Only real decisions reach you.

简体中文

Zhou Botong is one of wuxia's great eccentrics: a legendary martial artist with the temperament of a mischievous child. When ordinary practice becomes too ordinary, he invents something delightfully absurd — the Technique of Ambidexterity (双手互搏).

He teaches each hand to act independently. One hand attacks; the other answers. Each uses a different martial art. The same person becomes both opponents, and the sparring continues until neither hand can surprise the other.

It sounds like a party trick. It is actually a discipline: split creation from criticism, give both sides room to think, and let disagreement expose what either side would miss alone.

Hubo puts that little duel inside your coding agent.

The name comes from 互搏 (hùbó): to spar with each other. Not two agents politely taking turns, and not a reviewer saying “looks good” from the doorway. Two hands spar over every change. Only real decisions reach you. They exchange evidence until the code — not either agent's ego — wins.

Before / after

Without Hubo, an agent implements the feature, runs a test, reviews its own reasoning, and hands the result to you. The author, tester, and reviewer all share the same blind spots.

With Hubo:

your task<br>work agent ── implementation + evidence ──▶ review agent<br>▲ │<br>└──── fix or reasoned pushback ◀───────┘<br>repeat<br>reconciled result — or you

You see the work only after every concrete finding is resolved, unless the remaining question genuinely requires your judgment.

How it works

Hubo keeps two persistent roles in the same conversation:

Hand<br>Role

Work agent<br>Understands the task, changes the code, tests it, and answers every review finding with a fix or evidence-based pushback.

Review agent<br>Stays independent and read-only, inspects the actual diff and verification evidence, and returns numbered, actionable findings.

Coordinator<br>Carries messages between them, preserves unresolved findings across rounds, and stops only at a real exit condition.

The loop ends when:

the reviewer clears the work and every finding is reconciled; or

the agents identify a product, requirement, or technical-direction decision that only you can make.

The reviewer may spawn specialists. The worker may delegate implementation. But at the top level the shape remains the same: one hand makes, one hand tests the making.

Hubo is explicit-only. It does nothing until you invoke it; ordinary coding prompts remain ordinary.

Install

Claude Code

Run these as two separate prompts:

/plugin marketplace add h0ngcha0/hubo

/plugin install hubo@hubo

Then run /reload-plugins or start a new conversation.

Codex

codex plugin marketplace add h0ngcha0/hubo<br>codex plugin add hubo@hubo

Restart Codex and start a new conversation so the skill is discovered.

GitHub Copilot CLI

copilot plugin marketplace add h0ngcha0/hubo<br>copilot plugin install hubo@hubo

Start a new Copilot CLI session after installing.

OpenClaw

openclaw plugins install hubo --marketplace h0ngcha0/hubo

Restart the OpenClaw gateway after installing.

skills.sh

Install Hubo directly into any supported host:

npx skills add h0ngcha0/hubo --skill hubo -g

Usage

Claude Code: /hubo implement the change... when the short alias is unambiguous, or /hubo:hubo implement the change....

Codex CLI: invoke $hubo:hubo, then provide the...

hubo plugin h0ngcha0 codex agent agents

Related Articles