Consult
Multi-agent consensus system. N LLM agents with domain-specific prompts analyze your problem in parallel, critique each other's outputs, iterate until approval threshold is met, then a synthesis agent produces one unified answer.
When to Use This
Single LLM calls optimize for one dimension. Use this when:
- The problem spans multiple domains (security + performance + data modeling)
- You want structured disagreement before commitment
- The cost of a bad architecture decision exceeds the cost of slower, more expensive analysis
- You're making decisions that are expensive to reverse
Don't use this for simple questions. It's 3-10x the cost and latency of a single API call.
Installation
pip install getconsult
export ANTHROPIC_API_KEY=sk-ant-...
How It Works
┌──────────────────────────────────────────────────────────────────┐
│ WORKFLOW │
├──────────────────────────────────────────────────────────────────┤
│ │
│ 1. PARALLEL ANALYSIS │
│ N agents with domain-specific system prompts │
│ analyze the problem concurrently │
│ │
│ 2. PEER REVIEW │
│ Each agent reviews each other agent's output │
│ (N agents = N*(N-1) pairwise reviews) │
│ │
│ 3. META REVIEW │
│ Cross-cutting analysis: integration gaps, │
│ unstated assumptions, conflicting recommendations │
│ │
│ 4. REVISION │
│ Agents incorporate peer + meta feedback, update solutions │
│ │
│ 5. APPROVAL VOTING │
│ Each agent votes on each other's revised solution │
│ APPROVE (1.0) / CONCERNS (0.7) / OBJECT (0.0) │
│ │
│ 6. RESOLUTION │
│ ≥80% aggregate approval → consensus │
│ <80%, iterations remain → back to step 2 │
│ <80%, max iterations reached → orchestrator decides │
│ │
│ 7. SYNTHESIS │
│ Presentation agent produces ONE unified answer: │
│ - Merges convergent recommendations │
│ - Highlights resolved trade-offs │
│ - Notes remaining caveats from peer review │
│ - Provides actionable next steps │
│ │
└──────────────────────────────────────────────────────────────────┘
Output: Single synthesized recommendation, not N separate answers.
Usage
consult -p "problem statement" [options]
Examples
# Zero-downtime schema migration with constraints
consult -p "Migrating 200M row PostgreSQL table from UUID to bigint PKs. \
47 foreign key references, 12 indexes, 3k QPS. Cannot lock table. \
Current plan: add column, backfill, swap. Backfill estimated 9 hours. \
What's wrong with this plan and what's the alternative?"
# Production debugging with incomplete information
consult -p "Kubernetes pods OOMKilled. Container limit 4Gi, JVM heap 2Gi, \
G1GC on OpenJDK 17. RSS grows to 3.8Gi over 6 hours. Native memory \
tracking shows 800MB unaccounted. Happens in prod not staging (same image). \
What are we missing?"
# Multi-domain architecture decision
consult -p "Event sourcing vs state-based for order service. \
100k orders/day, need 7-year audit trail, eventual consistency acceptable \
for reads, strong consistency required for inventory decrements. \
Team has zero ES experience. What are the actual trade-offs we'll hit?"
With Expert Selection
# Default: backend, database, infrastructure
consult -p "..."
# Security-focused (security, backend, infrastructure)
consult -p "..." -e security_focused
# Custom combination
consult -p "..." -e "database_expert,performance_expert,security_expert"
With Multiple Iterations (Pro)
# 3 revision cycles
consult -p "..." -i 3
# 90% agreement threshold
consult -p "..." -t 0.9
With Context (Pro)
# Include diagram
consult -p "Review for single points of failure" -a architecture.png
# Continue previous session
consult -p "Now add caching layer" --memory-session project-x
CLI Reference
consult -p "problem" [options]
Required:
-p, --problem TEXT Problem statement
Expert Selection:
-e, --experts TEXT Set name or comma-separated types
Sets: essentials, architecture, security_focused,
performance, full_stack, data_platform, ai_system
Types: database_expert, backend_expert, security_expert,
performance_expert, infrastructure_expert,
software_architect, frontend_expert, cloud_engineer,
ml_expert, data_expert
Analysis:
-m, --mode [single|team] single = one provider, team = all three (Pro)
--provider NAME anthropic, openai, or google
-i, --max-iterations N Max revision cycles (default: 1, Pro: up to 5)
-t, --consensus-threshold F Approval threshold (default: 0.8)
Output:
--markdown Save to ~/.consult/outputs/
--markdown-filename TEXT Custom filename
-c, --copy Copy to clipboard
Context:
--memory-session NAME Session identifier (Pro)
-a, --attachments FILES Images/PDFs to include (Pro)
Info:
--status Tier, limits, usage
--list-experts Available experts and sets
--dry-run Validate without API calls
--version Version
Expert Types
| Type | Domain |
|---|---|
database_expert |
Schema, queries, consistency, migrations |
backend_expert |
API design, service boundaries, error handling |
security_expert |
Auth, validation, threat modeling, compliance |
infrastructure_expert |
Deployment, scaling, monitoring, reliability |
performance_expert |
Profiling, caching, bottleneck analysis |
software_architect |
System design, trade-offs, patterns |
frontend_expert |
UI architecture, state, rendering |
cloud_engineer |
Cloud services, IaC, containers, networking |
ml_expert |
ML pipelines, training, inference, MLOps |
data_expert |
Pipelines, ETL, streaming, warehousing |
Expert Sets
| Set | Composition |
|---|---|
essentials |
backend, frontend |
architecture |
architect, database, cloud |
security_focused |
security, backend, infrastructure |
performance |
performance, backend, database |
full_stack |
backend, frontend, database, infrastructure |
Consensus Mechanism
Each agent votes on each other agent's solution:
| Verdict | Score | Meaning |
|---|---|---|
| APPROVE | 1.0 | No blocking issues |
| CONCERNS | 0.7 | Acceptable with caveats |
| OBJECT | 0.0 | Blocking problems |
3 agents = 6 pairwise votes. Aggregate = mean of all votes.
After consensus (or orchestrator resolution), a synthesis agent produces one unified answer incorporating all expert perspectives. You get a single recommendation, not N separate outputs.
Tiers
BYOK: you provide API keys, pay providers directly.
| Free | Pro ($9/mo) | |
|---|---|---|
| Queries/day | 3 | 100 |
| Queries/hour | 2 | 20 |
| Max experts | 2 (-e essentials required) |
10 |
| Max iterations | 1 | 5 |
| Team mode | No | Yes |
| TUI | No | Yes |
| Sessions | No | Yes |
| Attachments | No | Yes |
| Export | No | Yes |
License Key
export CONSULT_LICENSE_KEY="CSL2_pro_..."
# or
echo "CSL2_pro_..." > ~/.consult/license
Configuration
# ~/.consult/.env
ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-... # optional
GOOGLE_API_KEY=... # optional
# Model overrides (defaults are cost-optimized)
ANTHROPIC_MODEL=claude-sonnet-4-20250514
OPENAI_MODEL=gpt-4o
Performance
| Configuration | Latency |
|---|---|
| 2 experts, 1 iteration | 45-90s |
| 3 experts, 1 iteration | 90-150s |
| 3 experts, 3 iterations | 180-300s |
Latency dominated by sequential LLM calls per phase. Agents within each phase run in parallel.
Data Storage
~/.consult/
├── .env # API keys (chmod 600)
├── license # License key
├── sessions/ # Session state (Pro)
├── outputs/ # Exports (Pro)
├── cache/ # Rate limit tracking
└── logs/ # Debug logs (keys redacted)
Security
- API keys never logged or persisted outside .env
- Session files use hashed identifiers
- Logs redact sensitive patterns
- No telemetry or phone-home
Issues
Bug reports and feature requests: github.com/1x-eng/consult-issues
License
Proprietary. See LICENSE.
Personal and internal business use permitted. Commercial distribution or SaaS integration requires separate license.
Built on AutoGen.
Release files for getconsult 0.7.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| getconsult-0.7.1.tar.gz | 221.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| getconsult-0.7.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 471.6 kB
Release files / getconsult-0.7.1.tar.gz
| Download URL | getconsult-0.7.1.tar.gz |
|---|---|
| Size | 221.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3ffadc89d3fb960e5bf9263714469e7839507b9d48a32b9c45190aaac829a882
|
|
BLAKE2b-256 checksum How to use checksums |
93cf4895c751714db72dfc1f38f96fe1a918da10267b9080ba7805b22b208d6a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Dec 15, 2025.
Transparency logRelease files / getconsult-0.7.1-py3-none-any.whl
| Download URL | getconsult-0.7.1-py3-none-any.whl |
|---|---|
| Size | 249.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
80982803fc139c03778ea904c14782f6440e9936f870159047d8a1b80d4a80f8
|
|
BLAKE2b-256 checksum How to use checksums |
fccb63ecabd19c90aaf904fa28d0ee94c0f6e558c741e2399c9cd2815378bc0c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Dec 15, 2025.
Transparency log