{"slug": "show-hn-hubo-two-agents-that-implement-and-review-code-until-they-agree", "title": "Show HN: Hubo – two agents that implement and review code until they agree", "summary": "Hubo, a new open-source coding tool inspired by the wuxia technique of ambidexterity, uses two AI agents—one implementing code and one reviewing it—that spar over every change until they reach agreement, at which point only the reconciled result reaches the user. The tool, created by developer h0ngcha0, aims to eliminate blind spots by keeping the reviewer agent read-only and independent, and it supports multiple hosts including Claude Code, Codex CLI, ChatGPT, GitHub Copilot CLI, and OpenClaw.", "body_md": "**双手互搏**\n\n*Two hands spar over every change. Only real decisions reach you.*\n\n[Zhou Botong](https://en.wikipedia.org/wiki/Zhou_Botong) is one of [wuxia](https://en.wikipedia.org/wiki/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** (双手互搏).\n\nHe 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.\n\nIt 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.\n\nHubo puts that little duel inside your coding agent.\n\nThe 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.\n\nWithout 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.\n\nWith Hubo:\n\n```\nyour task\n   ↓\nwork agent ── implementation + evidence ──▶ review agent\n     ▲                                      │\n     └──── fix or reasoned pushback ◀───────┘\n                      repeat\n                         ↓\n              reconciled result — or you\n```\n\nYou see the work only after every concrete finding is resolved, unless the remaining question genuinely requires your judgment.\n\nHubo keeps two persistent roles in the same conversation:\n\n| Hand | Role |\n|---|---|\nWork agent |\nUnderstands the task, changes the code, tests it, and answers every review finding with a fix or evidence-based pushback. |\nReview agent |\nStays independent and read-only, inspects the actual diff and verification evidence, and returns numbered, actionable findings. |\nCoordinator |\nCarries messages between them, preserves unresolved findings across rounds, and stops only at a real exit condition. |\n\nThe loop ends when:\n\n- the reviewer clears the work and every finding is reconciled; or\n- the agents identify a product, requirement, or technical-direction decision that only you can make.\n\nThe 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.\n\nHubo is explicit-only. It does nothing until you invoke it; ordinary coding prompts remain ordinary.\n\nRun these as two separate prompts:\n\n```\n/plugin marketplace add h0ngcha0/hubo\n/plugin install hubo@hubo\n```\n\nThen run `/reload-plugins`\n\nor start a new conversation.\n\n```\ncodex plugin marketplace add h0ngcha0/hubo\ncodex plugin add hubo@hubo\n```\n\nRestart Codex and start a new conversation so the skill is discovered.\n\n```\ncopilot plugin marketplace add h0ngcha0/hubo\ncopilot plugin install hubo@hubo\n```\n\nStart a new Copilot CLI session after installing.\n\n```\nopenclaw plugins install hubo --marketplace h0ngcha0/hubo\n```\n\nRestart the OpenClaw gateway after installing.\n\nInstall Hubo directly into any supported host:\n\n```\nnpx skills add h0ngcha0/hubo --skill hubo -g\n```\n\n**Claude Code:**`/hubo implement the change...`\n\nwhen the short alias is unambiguous, or`/hubo:hubo implement the change...`\n\n.**Codex CLI:** invoke`$hubo:hubo`\n\n, then provide the task.**ChatGPT or Codex desktop:** type`@`\n\n, select**Hubo**, then provide the task.** GitHub Copilot CLI:**`/hubo:hubo implement the change...`\n\n.**OpenClaw:**`/hubo implement the change...`\n\n.\n\nFor example:\n\n```\n/hubo implement optimistic updates for the cart\n```\n\nHubo needs a host that can create and resume two addressable agents and return both agents' results to the coordinator. This repository currently packages adapters for Claude Code, Codex, GitHub Copilot CLI, and OpenClaw.\n\nThe workflow preserves pre-existing worktree changes, keeps the reviewer read-only, accepts justified pushback, and favors root-cause fixes over patches that merely silence a symptom.\n\n[MIT](/h0ngcha0/hubo/blob/main/LICENSE) © 2026 h0ngcha0", "url": "https://wpnews.pro/news/show-hn-hubo-two-agents-that-implement-and-review-code-until-they-agree", "canonical_source": "https://github.com/h0ngcha0/hubo", "published_at": "2026-07-25 22:49:43+00:00", "updated_at": "2026-07-25 23:22:27.948013+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "ai-agents", "generative-ai"], "entities": ["Hubo", "h0ngcha0", "Claude Code", "Codex CLI", "ChatGPT", "GitHub Copilot CLI", "OpenClaw"], "alternates": {"html": "https://wpnews.pro/news/show-hn-hubo-two-agents-that-implement-and-review-code-until-they-agree", "markdown": "https://wpnews.pro/news/show-hn-hubo-two-agents-that-implement-and-review-code-until-they-agree.md", "text": "https://wpnews.pro/news/show-hn-hubo-two-agents-that-implement-and-review-code-until-they-agree.txt", "jsonld": "https://wpnews.pro/news/show-hn-hubo-two-agents-that-implement-and-review-code-until-they-agree.jsonld"}}