Chorus banner
valpere valpere

Chorus

AI community

Description

Cross-agent plugin collection for AI coding CLIs. Delegate tasks and run workflow patterns (council, parallel review, debug) across Claude Code, OpenCode, Gemini CLI, and Codex.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

Chorus

Cross-agent plugin collection for AI coding CLIs. Delegate tasks between Claude Code, OpenCode, Gemini CLI, Codex, Cursor, and Kilo.

![chorus delegation mesh](docs/announcement/infographic.png)

Overview

Chorus connects six AI coding agents through a full delegation mesh. Every agent can delegate to every other agent (see [Known Limitations](#known-limitations) for OpenCode output capture constraints).

From \ To Claude OpenCode Gemini Codex Cursor Kilo
Claude Code self ✅
OpenCode self
Gemini CLI self
Codex self
Cursor self
Kilo self

Installation

Claude Code

claude plugin install https://github.com/valpere/chorus

Adds slash commands:

  • /opencode:run, /opencode:review
  • /gemini:run, /gemini:review
  • /codex:run, /codex:review
  • /claude:setup, /claude:run, /claude:review (second Claude instance)
  • /cursor:run, /cursor:review, /cursor:setup
  • /kilo:run, /kilo:review, /kilo:setup

**Workflow patterns** (orchestrate multiple agents at once):

  • /chorus:council — LLM council: five agents, different roles, you synthesize
  • /chorus:review — parallel code review from all five agents
  • /chorus:debug — parallel root-cause hypotheses for a bug symptom
  • /chorus:second-opinion — quick independent check from one agent (--agent cursor|kilo supported)
  • /chorus:vote — YES / NO / ABSTAIN poll from all five agents, tally returned

OpenCode

opencode plugin @valpere/chorus-opencode

Adds MCP tools:

  • delegate_claude(task: string) → string
  • delegate_gemini(task: string) → string
  • delegate_codex(task: string) → string
  • delegate_cursor(task: string) → string
  • delegate_kilo(task: string) → string
  • check_agents() → string