{"slug": "cross-model-peer-review-for-coding-agents", "title": "Cross-model peer review for coding agents", "summary": "Model Peer v0.8.1, an open-source tool from makedirectory, enables cross-model peer review for coding agents by letting Claude Code, OpenAI Codex CLI, and Google Gemini CLI consult each other as read-only peers, with the primary agent as the hub and reviewers running in parallel. The tool, installable via curl, creates per-project skills and commands, and it never reads or writes AGENTS.md, CLAUDE.md, or GEMINI.md.", "body_md": "**Cross-model peer review for coding agents.**\n\nModel Peer lets Claude Code, OpenAI Codex CLI, and Google Gemini CLI consult one another as independent, read-only engineering peers.\n\n```\nmodel-peer ask codex \"Review this authentication design for bypasses\"\nmodel-peer review\n```\n\nThis is the part that surprises people. **Your agent is the hub.** Each consultation\nspawns another vendor's CLI, read-only, gets one answer, and exits. Nothing persists.\n\n``` php\nPrimary agent\n    |\n    +--> independent peer model --> advisory response\n    |\n    +--> primary agent evaluates the advice\n```\n\nThe peer supplies evidence, not authority. Project rules and invariants still win.\n\n`--depth`\n\ndeliberately relaxes this, and it is opt-in:\n\n``` php\ndepth 1 (default)      primary -> peer -> primary\ndepth >1 (opt-in)      primary -> peer -> peer -> primary\n```\n\nEven then the peer runs nothing. It *asks* Model Peer for the second opinion, and\nModel Peer decides whether to perform it.\n\n`model-peer review`\n\nkeeps its reviewers as leaves unless you pass `--depth`\n\n, and even\nthen a reviewer may only consult a model that is **not** on the panel. Reviewers that\ncan consult each other are not independent observations, which is the whole point of\nthe panel.\n\nThe peer also starts in your working directory with read tools enabled, so you don't paste code into the question — name files and symbols and let it look.\n\nCoding agents can review their own work, but self-review is still self-review.\n\n`model-peer review`\n\nfans your Git diff out to every installed model independently.\nNone of them sees the others' conclusions; only then does a synthesizer reconcile\nthe findings. Because reviewers can't anchor on each other, agreement between them\nis real signal.\n\nReviewers are independent, so they also run in parallel: a review costs roughly the slowest model rather than the sum of them, and Model Peer waits for the whole panel before synthesizing.\n\n``` php\n              +--> Claude --+\n              |             |\ngit changes --+--> Codex ---+--> synthesis\n              |             |\n              +--> Gemini --+\ncurl -fsSL https://raw.githubusercontent.com/makedirectory/ModelPeer/v0.8.1/install.sh | bash\n```\n\nOr clone and run `./install.sh`\n\n. As with any remote shell installer, inspect it\nfirst. Model Peer never asks you to paste an API key — authentication stays with\neach vendor CLI.\n\nInstalling Model Peer globally gives *you* a command. It does not give the coding\nagent in your repository a habit. One command per project fixes that:\n\n```\ncd ~/code/your-project\nmodel-peer init all        # or: init claude / init codex / init gemini\n```\n\nName the agents whose directories it may write. There is no default — a repository gets the CLIs its team actually uses, and nothing else.\n\n```\n  created   .claude/skills/cross-model-review/SKILL.md\n  created   .claude/skills/cross-model-consult/SKILL.md\n  created   .codex/skills/...            (both, per CLI)\n  created   .gemini/skills/...\n  created   .claude/commands/peer-review.md\n  created   .claude/commands/peer-ask.md\n```\n\nTwo skills, because the tool does two things that fire on different cues:\n**review** cross-checks a diff across the whole panel, **consult** gets one peer's\nopinion on one question. Each is a self-contained directory in the place each\nvendor set aside for skills. **Your AGENTS.md, CLAUDE.md, and GEMINI.md are\nnever read, written, or symlinked.**\n\nNow the agent consults a peer on its own — before an architecture decision, on a\nbug that has outlived two hypotheses, on anything security-sensitive — and tells\nyou which model it asked and whether it took the advice. In Claude Code you also\nget `/peer-review`\n\nfor a full cross-model review of the current diff.\n\nCommit those files and your team gets the same behavior. After upgrading Model\nPeer, `model-peer update`\n\nrefreshes them; `model-peer update --check`\n\nverifies\nthem in CI.\n\n→ [In your workflow](https://modelpeer.app/workflow) ·\n[Agent skills](https://modelpeer.app/agent-rules)\n\n```\nmodel-peer ask <claude|codex|gemini> \"<focused question>\"   # consult one peer\nmodel-peer review [\"focus instructions\"]                    # cross-model review\nmodel-peer init <claude|codex|gemini|all>                   # install the skills\nmodel-peer update [--check]                                 # refresh them\nmodel-peer trust                                            # let Gemini load them\nmodel-peer doctor [--probe]                                 # check setup\n```\n\nEvery consultation is bounded (`--timeout`\n\n, 600s default) and reports progress on\nstderr. A reviewer that hangs, fails, or returns nothing is dropped and named rather\nthan taking the whole panel with it.\n\n→ [Usage](https://modelpeer.app/usage) ·\n[CLI reference](https://modelpeer.app/reference)\n\nPeers are launched with the most conservative non-interactive configuration each vendor supports: Plan mode or a read-only sandbox, no file-editing tools, no general shell, and stdin closed. Model Peer stores no credentials.\n\nWhere a vendor reads trust settings from the environment, Model Peer supplies them\nitself rather than inheriting yours. Gemini's `GEMINI_CLI_TRUST_WORKSPACE`\n\nis cleared\nbefore launch: it would otherwise enable MCP servers declared by the workspace, which\nGemini starts as local subprocesses during tool discovery — before any tool policy\napplies. A reviewed repository does not get to configure its own reviewer.\n\nConsultation chains are bounded by `--depth`\n\n(default 1, ceiling 10), and a model is\nnever consulted twice in one chain. Depth is a **limit, not a permission** — raising\nit increases how many models can participate, never what a model can do to your\nsystem. A peer that wants a second opinion asks for one in its reply; Model Peer\nvalidates the request and performs the consultation itself. No peer is given a shell,\nat any depth, and no peer can start a consultation Model Peer did not authorise.\n\n`--timeout`\n\nis one deadline for the whole invocation, not a fresh budget per hop, so\n`--depth 3 --timeout 600`\n\nis a ten-minute operation rather than a possible fifty.\nUnder `review`\n\nthe deadline is per reviewer, and a consultation a reviewer starts\ncomes out of its own budget.\n\nReviews cover untracked files as well as tracked changes, so new code is reviewed rather than merely listed.\n\nThis is defense in depth, not a formal sandbox. Upstream CLI behavior can change —\n`model-peer doctor --probe`\n\nruns one real consultation per CLI and verifies on\ndisk that none of them wrote anything, which is the only way to know it still\nholds after a vendor upgrade.\n\n→ [Safety boundaries](https://modelpeer.app/safety) ·\n[Peer-chain depth](https://modelpeer.app/depth) ·\n[Troubleshooting](https://modelpeer.app/troubleshooting)\n\n```\nmake test     # smoke tests against stub CLIs; no model usage\nmake lint     # syntax check, plus shellcheck when installed\nmake sync     # regenerate install.sh's embedded copy of bin/model-peer\n```\n\n→ [Development](https://modelpeer.app/development) ·\n[Roadmap](https://modelpeer.app/roadmap)\n\nQuestions and ideas are welcome in\n[Discussions](https://github.com/makedirectory/ModelPeer/discussions).\nSecurity issues should go through\n[private reporting](https://github.com/makedirectory/ModelPeer/security) rather\nthan a public issue.\n\nIf a peer caught something before it shipped, I'd genuinely love to hear about it. If a peer told you something confidently wrong — we've never met, and this is the first you're hearing of it. (Peers are advisory. It says so above.)\n\nEither way, if it saved you a review cycle, you can buy me a coffee:\n\nMIT, Copyright (c) 2026 Make Directory Developers, LLC. See [ LICENSE](/makedirectory/ModelPeer/blob/main/LICENSE).\n\nModel Peer is an independent open-source project maintained by Make Directory Developers, LLC. It is not affiliated with, endorsed by, or sponsored by Anthropic, OpenAI, or Google. Claude, Codex, and Gemini are trademarks of their respective owners.", "url": "https://wpnews.pro/news/cross-model-peer-review-for-coding-agents", "canonical_source": "https://github.com/makedirectory/ModelPeer", "published_at": "2026-08-29 12:15:14+00:00", "updated_at": "2026-08-29 12:48:35.216172+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "ai-agents"], "entities": ["Model Peer", "makedirectory", "Claude Code", "OpenAI Codex CLI", "Google Gemini CLI"], "alternates": {"html": "https://wpnews.pro/news/cross-model-peer-review-for-coding-agents", "markdown": "https://wpnews.pro/news/cross-model-peer-review-for-coding-agents.md", "text": "https://wpnews.pro/news/cross-model-peer-review-for-coding-agents.txt", "jsonld": "https://wpnews.pro/news/cross-model-peer-review-for-coding-agents.jsonld"}}