{"id":39263464,"url":"https://github.com/caiopizzol/conclave","last_synced_at":"2026-02-26T01:55:39.225Z","repository":{"id":332795371,"uuid":"1134987389","full_name":"caiopizzol/conclave","owner":"caiopizzol","description":"Multi-model code review command for Claude Code. Run AI reviews locally before pushing.","archived":false,"fork":false,"pushed_at":"2026-01-16T19:45:23.000Z","size":97,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-22T15:49:02.629Z","etag":null,"topics":["ai","claude-code","cli","code-review","codex","developer-tools","gemini","multi-model"],"latest_commit_sha":null,"homepage":"https://caiopizzol.github.io/conclave/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/caiopizzol.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-15T13:40:15.000Z","updated_at":"2026-01-16T19:45:27.000Z","dependencies_parsed_at":"2026-01-19T01:01:26.260Z","dependency_job_id":null,"html_url":"https://github.com/caiopizzol/conclave","commit_stats":null,"previous_names":["caiopizzol/conclave"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/caiopizzol/conclave","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caiopizzol%2Fconclave","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caiopizzol%2Fconclave/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caiopizzol%2Fconclave/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caiopizzol%2Fconclave/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/caiopizzol","download_url":"https://codeload.github.com/caiopizzol/conclave/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caiopizzol%2Fconclave/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28779996,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T13:55:28.044Z","status":"ssl_error","status_checked_at":"2026-01-26T13:55:26.068Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","claude-code","cli","code-review","codex","developer-tools","gemini","multi-model"],"created_at":"2026-01-18T00:31:56.621Z","updated_at":"2026-02-26T01:55:39.216Z","avatar_url":"https://github.com/caiopizzol.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg height=\"200\" alt=\"conclave-logo\" src=\"https://github.com/user-attachments/assets/9bfb9226-fef1-45c8-bc6f-2c0aa98487c5\" /\u003e\n\n[![GitHub release](https://img.shields.io/github/v/release/caiopizzol/conclave)](https://github.com/caiopizzol/conclave/releases)\n\nMulti-model AI collaboration for [Claude Code](https://claude.com/claude-code). Get consensus-driven code reviews and second opinions from multiple AI models in parallel.\n\n## Commands\n\n| Command | Purpose |\n|---------|---------|\n| `/review` | Multi-model code review on your staged changes |\n| `/consult` | Get a second opinion when stuck on a problem |\n\n## How It Works\n\n```\n/review                              /consult \"why is this broken?\"\n   │                                    │\n   ├── Codex ───► reviews diff          ├── Codex ───► reads conversation\n   ├── Gemini ──► reviews diff          ├── Gemini ──► reads conversation\n   ├── Claude ──► reviews diff          ├── Claude ──► reads conversation\n   └── ...                              └── ...\n   │                                    │\n   ▼                                    ▼\n   Consensus: issues flagged            Synthesis: consensus suggestions,\n   by 2+ models highlighted             unique perspectives, disagreements\n```\n\n**Why multiple models?**\n- Different training data → different blind spots\n- 2+ models flagging the same issue → stronger signal\n- Diverse perspectives surface better solutions\n\n## Inspiration\n\nInspired by [LLM Council](https://github.com/karpathy/llm-council) — the idea that multiple LLMs reviewing the same problem surfaces stronger signals than any single model.\n\n## Installation\n\n```bash\ngit clone https://github.com/caiopizzol/conclave ~/dev/conclave\ncd ~/dev/conclave\nbun run register\n```\n\nTo unregister:\n\n```bash\nbun run unregister\n```\n\n## Configuration\n\n### Tools (`~/.config/conclave/tools.json`)\n\n```json\n{\n  \"persistence\": {\n    \"enabled\": true,\n    \"required\": false,\n    \"data_dir\": \"~/.local/share/conclave/reviews\"\n  },\n  \"tools\": {\n    \"codex\": {\n      \"enabled\": true,\n      \"scope\": [\"review\", \"consult\"],\n      \"command\": \"codex exec --full-auto -m gpt-5.3-codex -c model_reasoning_effort=\\\"xhigh\\\" -\",\n      \"model\": \"gpt-5.3-codex\",\n      \"description\": \"OpenAI Codex CLI\"\n    },\n    \"claude-opus\": {\n      \"enabled\": true,\n      \"scope\": [\"consult\"],\n      \"command\": \"claude --print\",\n      \"model\": \"opus\",\n      \"description\": \"Claude Code (Opus)\"\n    },\n    \"gemini\": {\n      \"enabled\": true,\n      \"scope\": [\"review\", \"consult\"],\n      \"command\": \"gemini -o text\",\n      \"model\": \"gemini-3-pro-preview\",\n      \"description\": \"Google Gemini CLI\"\n    }\n  },\n  \"prompts\": {\n    \"review\": \"~/.config/conclave/prompt.md\",\n    \"consult\": \"~/.config/conclave/consult-prompt.md\"\n  }\n}\n```\n\n#### Tool Fields\n\n| Field | Required | Description |\n|-------|----------|-------------|\n| `enabled` | Yes | Whether to use this tool |\n| `scope` | No | Array of commands: `[\"review\"]`, `[\"consult\"]`, or `[\"review\", \"consult\"]`. If omitted, tool is used for all commands |\n| `command` | Yes | CLI command to run |\n| `model` | No | Model to use (injected via `--model` or `-m` flag) |\n| `description` | No | Human-readable description |\n\nYou can define multiple entries for the same provider with different models (e.g., `claude-opus` and `claude-sonnet`).\n\n#### Persistence Fields\n\n| Field | Default | Description |\n|-------|---------|-------------|\n| `enabled` | `true` | Save review results to disk for later analysis |\n| `required` | `false` | If `true`, halt on persistence failure instead of continuing |\n| `data_dir` | `~/.local/share/conclave/reviews` | Directory for saved review data |\n\nReview results are saved as JSON files containing raw model outputs, timestamps, and investigation results. This enables:\n- Tracking review history across PRs\n- Analyzing model performance over time\n- Recovering from context compaction\n\n**Supported models:**\n\n| Tool    | Models                                                                                                                         | Documentation                                                  |\n| ------- | ------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------- |\n| Codex   | `gpt-5.3-codex`, `gpt-5.2-codex`, `gpt-5.1-codex-mini`, `gpt-5.1-codex-max`                                                    | [Codex Models](https://developers.openai.com/codex/models/)    |\n| Claude  | `opus`, `sonnet`, `haiku` (aliases) or full names like `claude-opus-4-5-20251101`                                              | [CLI Reference](https://code.claude.com/docs/en/cli-reference) |\n| Gemini  | `gemini-2.5-pro`, `gemini-2.5-flash`, `gemini-3-pro-preview`, `gemini-3-flash-preview`                                         | [Gemini CLI](https://geminicli.com/docs/cli/model/)            |\n| Qwen    | `coder-model` (default), `vision-model`                                                                                        | [Qwen Code Docs](https://qwenlm.github.io/qwen-code-docs/)     |\n| Mistral | Config-based (`~/.vibe/config.toml`)                                                                                           | [Mistral Vibe Docs](https://docs.mistral.ai/mistral-vibe/)     |\n| Grok    | `grok-code-fast-1`, `grok-4-1-fast-*`, `grok-4-fast-*`, `grok-3`, `grok-3-mini`                                                 | [xAI API Models](https://docs.x.ai/docs/models)                |\n| Ollama  | Cloud: `minimax-m2.5:cloud`, `glm-5:cloud`, `kimi-k2.5:cloud`, or any model from [library](https://ollama.com/library). Local: `qwen2.5-coder:7b` | [Ollama Library](https://ollama.com/library) |\n\n\u003e **Note:** Ollama models use `ollama run` directly. Cloud models (`:cloud` suffix) require an Ollama account — sign up at [ollama.com](https://ollama.com). Local models (e.g., `qwen2.5-coder:7b`) run on your machine and require ~8GB+ RAM for 7B models.\n\n\u003e **Note:** Mistral and Grok use command-line argument passing (not stdin), which has a ~200KB limit on macOS. Very large diffs may cause these tools to fail while other tools succeed.\n\n\u003e **Note:** Grok uses the community CLI ([`@vibe-kit/grok-cli`](https://github.com/superagent-ai/grok-cli)) until xAI releases the official \"Grok Build\" CLI.\n\n### Prompts\n\nCustomize prompts for each command:\n\n| File | Template Variables |\n|------|-------------------|\n| `~/.config/conclave/prompt.md` | `{{branch}}`, `{{target_branch}}`, `{{diff}}` |\n| `~/.config/conclave/consult-prompt.md` | `{{history_file}}`, `{{question}}`, `{{cwd}}` |\n\n### Authentication\n\n| Tool    | Install                                                                       |\n| ------- | ----------------------------------------------------------------------------- |\n| Codex   | `npm install -g @openai/codex`                                                |\n| Claude  | Built-in                                                                      |\n| Gemini  | `npm install -g @google/gemini-cli`                                           |\n| Qwen    | `npm install -g @qwen-code/qwen-code`                                         |\n| Mistral | `pipx install mistral-vibe`                                                   |\n| Grok    | `bun add -g @vibe-kit/grok-cli`; `export GROK_API_KEY=\"key\"` in `~/.zshrc`    |\n| Ollama  | [ollama.com/download](https://ollama.com/download); cloud: `ollama login`; local: `ollama pull \u003cmodel\u003e` |\n\n## Usage\n\n### Code Review\n\n```bash\n# Review staged changes\ngit add -p\n/review\n```\n\n### Second Opinion\n\n```bash\n# When stuck on a problem\n/consult \"why is the table rendering broken after paste?\"\n\n# When going in circles\n/consult \"I've tried X, Y, Z but none work\"\n\n# Validate an approach\n/consult \"is this the right way to handle state here?\"\n```\n\n`/consult` passes your Claude Code conversation history to external models, so they can see what's already been tried and avoid suggesting the same things.\n\n## Philosophy\n\nMore models ≠ better. The value is **consensus**:\n\n- 1 model flags issue → might be noise\n- 2+ models flag same issue → likely real\n- Different perspectives → surface blind spots\n\nConclave surfaces what matters.\n\n## Workflow\n\n`/review` follows a state machine pattern with checkpoints to ensure reliability:\n\n```\n[INIT] → [GATHERING] → [SPAWNING] → [TOOLS_COMPLETE]\n                                          │\n                                    ⛔ CHECKPOINT\n                                          │\n                                    [PERSISTED] → [SYNTHESIZING] → [INVESTIGATING] → [COMPLETE]\n```\n\nThe ⛔ checkpoint ensures review data is persisted before synthesis. If `persistence.required` is `true`, the workflow halts on persistence failure.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaiopizzol%2Fconclave","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaiopizzol%2Fconclave","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaiopizzol%2Fconclave/lists"}