opencode-ricks
v0.1.0
Published
OpenCode plugin that orchestrates multi-model consensus via @ricks.
Maintainers
Readme
ricks
ricks is an OpenCode-native consensus plugin that lets you invoke @ricks to run a multi-model review loop on a single task.
Intro
ricks is inspired by the Council of Ricks from Rick and Morty: multiple independent "Ricks" review the same problem, challenge weak spots, and keep iterating until they align.

In this plugin, that idea becomes a practical harness for OpenCode:
- The primary model creates the initial answer.
- Selected reviewer models evaluate it one-by-one.
- Each reviewer must return either
YES(approve as-is) or a fully revised plan. - Revisions are passed forward to the next reviewer.
- The process repeats across rounds until all selected reviewers return
YESin the same pass (or round limit is hit).
This project is intentionally OpenCode-only: model discovery, provider access, and auth are delegated to OpenCode.
Key capabilities
- Invoke with
@ricksin normal chat flow. - Open setup with
@ricks setup. - Model toggle list with inline reasoning override per model.
- Select all / deselect all flows.
- Persistent project settings in
.opencode/ricks.settings.json. - Continuous observable progress with a live event timeline (agree/disagree/error, per model, per round).
- Final stats summary (approvals/revisions/errors + per-model breakdown).
- Per-round outputs in the final report.
- Setup markdown prefill so users can edit and submit config in one message.
How consensus works
- Initial plan generation
- Primary model (
buildagent) produces a full initial plan for the user task.
- Sequential reviewer pass
- For each selected model in order,
ricksasks: - approve with exactly
YES, or - provide
REASON+ full revisedPLAN.
- Plan handoff
- If reviewer says
YES, plan stays unchanged. - If reviewer revises, that revised plan becomes the current plan for the next reviewer.
- Round completion
- If all reviewers returned
YESin that round, consensus is reached. - Otherwise, next round starts using latest revised plan.
- Final output
- Returns final plan plus summary, stats, timeline, and per-round details.
Install
ricks is published as an npm package: opencode-ricks.
Add it to your OpenCode config:
{
"plugin": ["opencode-ricks"]
}Optional: pin a version explicitly:
{
"plugin": ["[email protected]"]
}Usage
Run consensus on a task:
Ask @ricks for a rollout plan for migrating our monolith to services.Open setup:
@ricks setupSetup shortcuts
@ricks setup select all
@ricks setup deselect all
@ricks setup toggle openai/gpt-5
@ricks setup reasoning openai/gpt-5 high
@ricks setup max rounds 5
@ricks setup strategy normalized
@ricks setup timeout 120000
@ricks setup hide by default on
@ricks setup save as default onOne-shot setup via markdown template
@ricks setup can prefill your input with editable markdown (models/options). Submit it directly to apply all changes at once.
Settings
Stored per project in:
.opencode/ricks.settings.jsonFields include:
selectedModelsmodelVariants(reasoning overrides)maxRetries(internal storage; corresponds to user-facingmax rounds - 1)strategy(exact|normalized|json)timeoutMssaveAsDefaulthideByDefaultinitialized
Runtime config (optional)
You can define defaults in opencode.jsonc:
{
"ricks": {
"models": ["openai/gpt-5", "anthropic/claude-sonnet-4-5"],
"strategy": "normalized",
"maxRounds": 100,
"timeoutMs": 120000
}
}Notes:
- Current default
maxRoundsis100. - Setup-managed settings generally drive normal
@ricksruns. - Only connected/available models are presented in setup and used for execution.
Output shape
A consensus result includes:
- Final answer
- Summary (task, rounds, consensus result)
- Ricks stats
- Timeline (continuous model events)
- Per-round outputs (YES/revision/error by model)
Development
npm install
npm run typecheck
npm run buildFor local development/testing, load the built plugin directly:
{
"plugin": ["file:///absolute/path/to/ricks/dist/index.js"]
}License
MIT
