Skip to content

Tribunal

import { Card, CardGrid } from ‘@astrojs/starlight/components’;

Tribunal assembles every CLI vendor you have installed into a flat panel of peers and puts them to work together — not as a hierarchy where some agents are junior labor, but as independent voices that can disagree with each other.

That disagreement is the signal.

When a Claude-family model, a Codex-family model, and a Kimi-family model all reach the same conclusion independently, you can trust it. When they diverge, Tribunal surfaces the disagreement and explains why each vendor arrived where it did — so you can make an informed call instead of inheriting one model’s blind spots.

Fan one question to N vendors → anonymized cross-critique → single cited verdict. **Available now.** [How it works →](/tribunal/council/) Each vendor attempts the same coding task in isolation → round-robin diff review → ranked merge. **Available now.** [How it works →](/tribunal/forge/) N parallel attempts → rubric scoring → verified winner before any commit. **Available now.** [How it works →](/tribunal/race/) One task through a plan → architect → implement → review pipeline, each phase run by a different vendor, persisted to `.ptah/specs`. **Available now.** [How it works →](/tribunal/relay/)

Tribunal builds its panel automatically from the CLI vendors installed on your machine. It picks one agent per vendor family to maximize diversity:

Vendor familyCLI agent used
Anthropicptah-cli (Claude)
OpenAIcodex
GitHubcopilot
Moonshotptah-cli (Kimi)
Z.AIptah-cli (GLM)
Ollama Cloudptah-cli (Ollama Cloud)
OpenRouterptah-cli (OpenRouter)
Cursorcursor

If a vendor isn’t installed, it doesn’t appear on the panel. The composition is data-driven — add a new vendor and it joins the next Tribunal automatically.

Tribunal and the everyday orchestration workflow solve different problems. Use the right tool for the job:

DimensionOrchestrationTribunal
StructureHierarchical (orchestrator → senior leads → CLI helpers)Flat peer panel (all vendors at the same level)
Use caseDeliver a feature — plan, implement, review, shipEvaluate an approach, make a judgment call, or get a second opinion
OutputWorking code, tests, migrationsCouncil: verdict with citations. Forge/Race: ranked implementation
Vendor relationshipCLI helpers are junior labor, subordinate to the orchestratorAll vendors are peers; no single vendor “owns” the task
When disagreement happensOrchestrator arbitrates and continuesDisagreement is the primary signal — Tribunal surfaces and explains it
Best for”Build X”, “Refactor Y”, “Add tests for Z""Which approach is sound?”, “Second opinion on this”, “Let the models debate”

Tribunal activates in response to natural language. Trigger phrases that start a Council:

  • “Convene a council on this”
  • “Get a second opinion from the panel”
  • “Have the models debate this approach”
  • “Multi-vendor review of X”
  • “What do the other vendors think?”

Trigger phrases that start a coding move — Forge, Race, or Relay:

  • “Forge this across the panel” / “Race the models on this”
  • “Relay this task across the panel” — plan, build, and a different vendor reviews
  • “Orchestrate this with CLI vendors instead of sub-agents”

You can also select the Tribunal Conductor harness explicitly from the harness picker to start a structured Tribunal session.

Tribunal is available in the Ptah Electron desktop app and via ptah-cli in headless mode. It requires at least one non-default CLI vendor installed (Codex, Copilot, Moonshot, Z.AI, or similar) to form a multi-vendor panel. VS Code extension users can access Council through ptah-cli if it’s installed on their PATH.