Skip to main content

Cross-vendor multi-model debate and consensus engine for AI response distillation

Project description

Mutual Dissent

pre-commit CI CodeQL Python 3.11+ License: MIT Docs

Cross-vendor multi-model debate and consensus engine for AI response distillation.

Web UI with chat-style debate view, dashboard, and full CLI. Multi-model and single-model multi-agent modes. Direct vendor APIs, replay, cost tracking, and markdown export.


Install

pip install mutual-dissent

Or from source:

git clone https://github.com/richardspicer/mutual-dissent.git
cd mutual-dissent
uv sync --group dev

How It Works

  1. Fan out — Query goes to your panel: multiple vendors (Claude, GPT, Gemini, Grok) or multiple agents of the same model
  2. Reflect — Each agent sees the others' responses and argues back
  3. Synthesize — A user-selected model distills the debate into a final answer
  4. Log — Full debate transcript saved as structured JSON with cost and token data

Usage

# Run a debate
dissent ask "Your query here"

# With explicit panel and options
dissent ask "Your query here" --synthesizer claude --rounds 2 --panel claude,gpt,gemini
dissent ask "Summarize this" --file report.pdf
dissent replay <transcript-id> --synthesizer grok
dissent serve
dissent config test

mutual-dissent also works as the full command name. Full documentation at docs.mutual-dissent.dev.


Transcript Logging

Full debate transcripts are logged as structured JSON — every round, every response, with cost, token, latency, and routing data. Browse and export transcripts via the web dashboard or CLI.

License

MIT

AI Disclosure

This project uses a human-led, AI-augmented workflow. See AI-STATEMENT.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mutual_dissent-0.3.1.tar.gz (774.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mutual_dissent-0.3.1-py3-none-any.whl (73.6 kB view details)

Uploaded Python 3

File details

Details for the file mutual_dissent-0.3.1.tar.gz.

File metadata

  • Download URL: mutual_dissent-0.3.1.tar.gz
  • Upload date:
  • Size: 774.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mutual_dissent-0.3.1.tar.gz
Algorithm Hash digest
SHA256 27ba244777c92292546a9fb04d7058bd84d238f40b6183a50f280531fdb43398
MD5 b86a18356e722c8a98d7b1027479c14b
BLAKE2b-256 f097fb121872596d55d8711ca908d57814bf7aec65a7f6a673a9c5e4bac5c594

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutual_dissent-0.3.1.tar.gz:

Publisher: release.yml on richardspicer/mutual-dissent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mutual_dissent-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: mutual_dissent-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 73.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mutual_dissent-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e08178f7e0d3cc69a840f61d2c0f188a397c062ae971f2eb84002c748161908c
MD5 7a49354ff3811f788a7857f85f7c6ba4
BLAKE2b-256 3a21cc737ff2e86a21856af04d7de69afa11498974d901d5c2c6ce3470b2e569

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutual_dissent-0.3.1-py3-none-any.whl:

Publisher: release.yml on richardspicer/mutual-dissent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page