On This Page

Getting Started

Run your first council query in under a minute. No setup required.

  1. Type your question

    Enter any high-stakes question into the query box on the home page. Be specific: include context, constraints, and what kind of recommendation you need. For example: "Should we migrate our monolith to microservices given a 6-person engineering team and $2M ARR?"

  2. Choose a panel

    Select a panel of expert agents from the dropdown. Each panel is a curated group of AI specialists tuned for a specific domain. The Default Panel (Strategist, Risk Analyst, Devil's Advocate) works for most general questions. Pick a specialized panel for domain-specific queries.

  3. Review the results

    Each agent delivers an independent analysis with a recommendation, confidence score, key considerations, and risks. A synthesis step combines all opinions into a single decision document with an executive summary, action plan, and risk matrix. Expand any agent card to see their full reasoning.

Free-tier queries run on self-hosted Qwen 3 32B models with no third-party API calls. Upgrade to Pro to bring your own API keys for Claude, GPT, Gemini, and other premium models.

Panels

A panel is a curated group of expert AI agents that deliberate on your query in parallel. Each panel is designed for a specific domain or decision type.

How panels work

When you run a council, every agent on the selected panel independently analyzes your query using their unique expertise, analytical framework, and persona. Each agent has a weight that determines how much influence they have on the final synthesis. Some agents are marked required, meaning they always participate and may hold veto authority (for example, the Safety Officer).

Available panels

Default Panel

Fast 3-agent council for general business decisions. Strategist, Risk Analyst, Devil's Advocate.

Quick Take

The fastest council -- 2 agents for a rapid decision gut-check with red-teaming.

Full Advisory Panel

The most comprehensive council with 8 expert agents for high-stakes decisions.

Software Engineering

Architecture, tech stack, build-vs-buy, technical debt. Architect, TDD Engineer, DevOps, Security, PM, QA.

Product Management

Roadmap, pricing, go-to-market. Product Manager, UX Researcher, Data Scientist, Marketing, Sales.

Healthcare

Clinical decision support with Attending Surgeon, Clinical Pharmacist, and specialist agents.

Biotech Advisory

Drug development, clinical trials, regulatory submissions. 7 specialists from trials to post-market.

Military

Strategic military advisory using ranked authority. Strategist, Intelligence Analyst, and doctrine frameworks.

Sales Strategy

Deal strategy, pipeline, pricing, competitive positioning. Sales Director, Engineer, Negotiation Expert.

IT Operations

Infrastructure, security, and operations. IT Director, Cybersecurity, DevOps/SRE, Network, DR, Risk.

Personal Finance

Holistic financial planning: tax, investment, risk, legal, and behavioral perspectives.

Startup Launch

Stress-test a new venture from five angles: VC, Marketing, Legal, Technical, and Financial.

Real Estate

Investment analysis from multiple professional disciplines for rigorous investment theses.

Policy Debate

Multi-perspective policy analysis with equally weighted conservative, progressive, and economist viewpoints.

Crisis Response

Rapid-response council for active or imminent organizational crises requiring decisive action.

Manufacturing

Production and operations advisory. Systems Engineer, QA Manager, and process specialists.

Technology

Technology strategy with Systems Engineer, CISO, and senior technical leadership.

Event Planning

Full-spectrum advisory for large-scale conferences, festivals, galas, and corporate events.

Sports Strategy

Franchise decisions, player acquisition, contract negotiations using analytical frameworks.

Plant-Based Products

Sustainable food product strategy from farm to consumer. Agricultural, culinary, and market perspectives.

Plus specialized geopolitical scenario panels. New panels are added regularly.

Workflows

Workflows are multi-step decision pipelines with human review between each stage. Unlike a single council query, workflows chain multiple councils together in a structured sequence.

Councils vs. workflows

A council is a single round of multi-expert deliberation: you ask a question, agents analyze it in parallel, and a synthesis combines their opinions. A workflow is a sequence of councils and processing steps that tackle a complex process end-to-end.

For example, a "Due Diligence" workflow might run four stages: financial analysis, legal review, technical assessment, and a final synthesis. Each stage can use a different panel, and you can review and refine between stages.

When to use workflows

Use a workflow when your decision requires multiple phases that build on each other, when you need human review checkpoints, or when the process is standardized enough to template. Examples:

Running a workflow

Select the "Workflows" tab in the main interface. Browse available templates, pick one, and fill in your context. The workflow guides you through each stage, showing progress and letting you adjust inputs between steps.

Custom Agents

Create expert agents tailored to your organization's specific domain knowledge and decision-making needs.

What defines an agent

Every agent is a Markdown template with YAML frontmatter. The frontmatter defines metadata (name, role, expertise tags, default weight), and the body is a system prompt that shapes the agent's persona, analytical framework, and output style.

Creating a custom agent

In the web interface, go to the Agents page and click "Create Agent." You can define:

Sharing and forking

Agents can be shared via the marketplace. You can fork any public agent, customize it, and add it to your panels. All agents support version tracking.

API Reference

Integrate Meta Council into your existing tools and workflows with the REST API. All endpoints accept and return JSON.

Auto-generated machine-readable spec available at /openapi.json (OpenAPI 3.1). Use it to generate client libraries in any language.

Base URL

https://meta-council.com/api

All paths below are relative to this base. The Developer API (v1) uses /api/v1 instead.

Authentication

Two methods are supported. Use whichever fits your integration:

MethodHow to obtainHeader format
JWT token POST /api/auth/login with email + password Authorization: Bearer <jwt_token>
API key Settings > Developer API in the web UI, or POST /api/v1/keys Authorization: Bearer mc_<key>

API keys use the mc_ prefix and are shown only once at creation time. Store them securely.

Rate limits

TierCouncil runs / hourOther endpoints
Free360 / min
Pro20300 / min
EnterpriseUnlimitedUnlimited

Rate limit info is returned in response headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset (Unix timestamp).

Response format

All responses are JSON. Successful responses return a top-level object. Errors return {"detail": "error message"} with an appropriate HTTP status code. See Error Handling below.

Council API

The core product. Start a multi-expert council session, poll for results, and retrieve agent/panel metadata.

POST /api/council/run

Start a new council session. Agents analyze your query in parallel, then a synthesis step combines their outputs. Returns immediately with a session ID for polling.

Request body
FieldTypeRequiredDescription
querystringYesThe question or decision to deliberate on. Be specific: include context, constraints, and desired output.
panelstringNoPanel slug. Defaults to "default". Use "auto" for AI-powered panel selection or "dynamic" for MMR-based agent matching (Pro+). See GET /api/panels for options.
model_overridestringNoOverride the model for all agents in this run (e.g. "claude-sonnet-4-20250514", "gpt-4o"). Requires a matching provider API key in your settings.
council_idstringNoID of a saved custom council to run instead of a named panel. Takes precedence over panel.
is_privatebooleanNoIf true, the session is private (only accessible by you). Default: false (sessions are public and shareable via URL).
Response 200
FieldTypeDescription
session_idstringUnique session identifier. Use this to poll for results.
statusstringAlways "running" on initial response.
# Start a council session curl -X POST https://meta-council.com/api/council/run \ -H "Authorization: Bearer mc_your_key_here" \ -H "Content-Type: application/json" \ -d '{ "query": "Should we acquire CompanyX for $50M given our $2M ARR and 6-person team?", "panel": "default", "is_private": true }' # Response { "session_id": "ses_a1b2c3d4", "status": "running" }

GET /api/council/sessions/{session_id}

Poll a running session for status updates and results. Call this every 1-3 seconds until status is "completed" or "failed".

Session status values
StatusMeaning
runningAgents are analyzing the query in parallel. The agents object shows per-agent progress.
synthesizingAll agents finished. The synthesis model is combining results into a unified recommendation.
completedDone. The synthesis and agents fields contain full results.
failedAn error occurred. Check the error field for details.
Response (completed) 200
FieldTypeDescription
session_idstringSession identifier.
statusstringOne of: running, synthesizing, completed, failed.
querystringThe original query submitted.
panelstringPanel slug used for this session.
synthesisobjectThe combined recommendation (see Synthesis object below). Only present when status is "completed".
agentsobjectMap of agent name to agent result object (see Agent object below).
durationnumberTotal session duration in seconds.
Synthesis object
FieldTypeDescription
executive_summarystring2-3 paragraph summary of the recommendation with the key decision and reasoning.
detailed_analysisstringFull analysis combining all agent perspectives, typically 500-2000 words.
consensus_pointsstring[]Points where the majority of agents agree.
dissenting_viewsstring[]Notable disagreements or minority opinions from specific agents.
risk_matrixobject[]Array of risks, each with risk, likelihood (low/medium/high), impact (low/medium/high), agent (who flagged it), and mitigation.
recommended_actionstringClear, actionable next steps based on the council's combined analysis.
Agent result object
FieldTypeDescription
namestringDisplay name of the agent (e.g. "Chief Strategist").
rolestringAgent's professional role and perspective.
modelstringLLM model used for this agent's analysis.
weightnumberAgent's influence weight in the synthesis (typically 1.0, safety_officer is 2.0).
statusstring"running", "completed", or "failed".
recommendationstringThe agent's recommendation (e.g. "PROCEED WITH CONDITIONS").
confidencenumberConfidence score from 0.0 to 1.0.
reasoningstringDetailed analysis and reasoning behind the recommendation.
key_considerationsstring[]Most important factors the agent weighed.
risksstring[]Risks identified by this agent.
dissenting_pointsstring[]Points where this agent disagrees with the likely consensus.
durationnumberTime in seconds this agent took to respond.
tokensnumberTotal tokens used by this agent (prompt + completion).
# Poll for results curl https://meta-council.com/api/council/sessions/ses_a1b2c3d4 \ -H "Authorization: Bearer mc_your_key_here" # Response (completed) { "session_id": "ses_a1b2c3d4", "status": "completed", "query": "Should we acquire CompanyX for $50M?", "panel": "default", "duration": 18.4, "synthesis": { "executive_summary": "The council recommends proceeding with caution...", "detailed_analysis": "After analysis from three perspectives...", "consensus_points": [ "The acquisition target has strong product-market fit", "Current valuation is within acceptable range" ], "dissenting_views": [ "Risk Analyst flags integration complexity as underestimated" ], "risk_matrix": [ { "risk": "Integration timeline exceeds 12 months", "likelihood": "medium", "impact": "high", "agent": "Risk Analyst", "mitigation": "Hire dedicated integration PM before closing" } ], "recommended_action": "Proceed to LOI with a 10% holdback..." }, "agents": { "Chief Strategist": { "name": "Chief Strategist", "role": "Strategic advisor", "model": "claude-haiku-4-5-20241022", "weight": 1.0, "status": "completed", "recommendation": "PROCEED WITH CONDITIONS", "confidence": 0.82, "reasoning": "The acquisition aligns with...", "key_considerations": ["Market position", "Team retention"], "risks": ["Integration complexity"], "dissenting_points": [], "duration": 6.2, "tokens": 2840 } } }

GET /api/panels

List all available panels with their agent compositions, descriptions, and metadata. Use the returned slugs as the panel parameter in POST /api/council/run.

# List panels curl https://meta-council.com/api/panels \ -H "Authorization: Bearer mc_your_key_here"

GET /api/agents

List all 284+ available agents with their metadata, expertise tags, default weights, and descriptions. Useful for building custom panels or understanding which specialists are available.

# List agents curl https://meta-council.com/api/agents \ -H "Authorization: Bearer mc_your_key_here"

GET /api/council/platform-status

Check the current default model being used by the platform. Returns the active model name and whether the platform is using the primary model or a fallback.

# Check platform status curl https://meta-council.com/api/council/platform-status \ -H "Authorization: Bearer mc_your_key_here"

GET /api/council/model-specs

Get context window sizes and capabilities for all supported models. Useful for determining which models fit your query length requirements.

# Get model specifications curl https://meta-council.com/api/council/model-specs \ -H "Authorization: Bearer mc_your_key_here"

Workflow API

Multi-step decision pipelines with human checkpoints. Chain multiple council sessions together in a structured sequence.

GET /api/workflows/templates

List all available workflow templates (built-in and custom). Returns template name, slug, description, step count, and category for each.

# List workflow templates curl https://meta-council.com/api/workflows/templates \ -H "Authorization: Bearer mc_your_key_here"

GET /api/workflows/templates/{slug}

Get full details for a specific workflow template, including all steps, panels used per step, example queries, and estimated duration.

# Get template details curl https://meta-council.com/api/workflows/templates/due-diligence \ -H "Authorization: Bearer mc_your_key_here"

POST /api/workflows/start

Start a new workflow session from a template. The first step begins immediately. Use the returned session ID to poll for progress and advance through checkpoints.

Request body
FieldTypeRequiredDescription
templatestringYesWorkflow template slug (e.g. "due-diligence", "tdd-coding").
contextstringYesUser-provided context and goal for the workflow. This is injected into every step.
model_overridestringNoOverride the model for all steps.
# Start a due diligence workflow curl -X POST https://meta-council.com/api/workflows/start \ -H "Authorization: Bearer mc_your_key_here" \ -H "Content-Type: application/json" \ -d '{ "template": "due-diligence", "context": "Evaluating acquisition of CompanyX, a B2B SaaS company with $5M ARR" }' # Response { "session_id": "wf_x7y8z9", "status": "running", "current_step": 0, "total_steps": 4 }

GET /api/workflows/sessions/{session_id}

Poll a workflow session for status. Returns current step, completed step results, and whether a human checkpoint is pending approval.

# Poll workflow progress curl https://meta-council.com/api/workflows/sessions/wf_x7y8z9 \ -H "Authorization: Bearer mc_your_key_here"

POST /api/workflows/sessions/{session_id}/advance

Approve or reject a checkpoint in a workflow. When a step completes, the workflow pauses at a checkpoint for human review. Call this to advance to the next step or reject and re-run the current step with adjusted context.

Request body
FieldTypeRequiredDescription
actionstringYes"approve" to advance to the next step, or "reject" to re-run the current step.
feedbackstringNoOptional feedback or adjusted context. Injected into the next step's prompt.
# Approve a checkpoint and advance curl -X POST https://meta-council.com/api/workflows/sessions/wf_x7y8z9/advance \ -H "Authorization: Bearer mc_your_key_here" \ -H "Content-Type: application/json" \ -d '{"action": "approve", "feedback": "Focus more on regulatory risk in the next step"}'

POST /api/workflows/parse-goal

Submit a natural language goal and get a recommended workflow template match. Useful for building chat-style interfaces where users describe what they want to accomplish.

Request body
FieldTypeRequiredDescription
goalstringYesNatural language description of what the user wants to accomplish.
# Match a goal to a workflow curl -X POST https://meta-council.com/api/workflows/parse-goal \ -H "Authorization: Bearer mc_your_key_here" \ -H "Content-Type: application/json" \ -d '{"goal": "I need to do a thorough evaluation of a company we might buy"}'

POST /api/workflows/templates

Create a custom workflow template. Define the steps, panels, checkpoint rules, and context injection for each stage. Pro tier required.

# Create a custom workflow template curl -X POST https://meta-council.com/api/workflows/templates \ -H "Authorization: Bearer mc_your_key_here" \ -H "Content-Type: application/json" \ -d '{ "name": "My Custom Process", "slug": "my-custom-process", "description": "A 3-step evaluation pipeline", "steps": [...] }'

PUT /api/workflows/templates/{slug}

Update an existing custom workflow template. You can only update templates you own.

DELETE /api/workflows/templates/{slug}

Delete a custom workflow template. Built-in templates cannot be deleted.

Workflow Schedules API

Schedule workflows to run automatically on a recurring basis. Useful for periodic reviews, monitoring, and automated reporting.

GET /api/workflows/schedules

List all your workflow schedules with their configuration, next run time, and status.

# List workflow schedules curl https://meta-council.com/api/workflows/schedules \ -H "Authorization: Bearer mc_your_key_here"

POST /api/workflows/schedules

Create a new workflow schedule. Specify the template, context, and cron expression for recurring execution.

Request body
FieldTypeRequiredDescription
template_slugstringYesWorkflow template to execute on schedule.
contextstringYesContext passed to the workflow on each run.
cronstringYesCron expression (e.g. "0 9 * * 1" for every Monday at 9am).
enabledbooleanNoWhether the schedule is active. Default: true.
# Schedule a weekly competitive analysis curl -X POST https://meta-council.com/api/workflows/schedules \ -H "Authorization: Bearer mc_your_key_here" \ -H "Content-Type: application/json" \ -d '{ "template_slug": "competitive-analysis", "context": "Review competitor landscape for our SaaS product", "cron": "0 9 * * 1" }'

PUT /api/workflows/schedules/{schedule_id}

Update an existing workflow schedule. Change the cron expression, context, or enable/disable it.

DELETE /api/workflows/schedules/{schedule_id}

Delete a workflow schedule. Any currently running instance will complete, but no new runs will be triggered.

History & Sharing

Access past council sessions and their full results. Public sessions are accessible at /s/{session_id} in the browser.

GET /api/history

List your past council sessions with metadata (query, panel, timestamp, status). Paginated. Returns most recent first.

# List session history curl https://meta-council.com/api/history \ -H "Authorization: Bearer mc_your_key_here"

GET /api/history/{session_id}

Get the full results of a past session -- the same data that powers the /s/{session_id} shareable link. Includes the complete synthesis, all agent results, and metadata.

# Get full session results curl https://meta-council.com/api/history/ses_a1b2c3d4 \ -H "Authorization: Bearer mc_your_key_here"

Settings & Keys

Manage your account settings, provider API keys, model preferences, and developer API keys.

GET /api/settings

Get your current settings including configured provider API keys (masked), default model preference, and synthesis strategy.

# Get current settings curl https://meta-council.com/api/settings \ -H "Authorization: Bearer mc_your_key_here"

PUT /api/settings

Update your settings. Set provider API keys (Anthropic, OpenAI, Google, etc.), default model, and other preferences. Keys are stored encrypted.

# Set your Anthropic API key and default model curl -X PUT https://meta-council.com/api/settings \ -H "Authorization: Bearer mc_your_key_here" \ -H "Content-Type: application/json" \ -d '{ "keys": {"anthropic": "sk-ant-..."}, "default_model": "claude-sonnet-4-20250514" }'

POST /api/v1/keys

Generate a new developer API key. Requires JWT auth (not API key auth). The key is returned once and cannot be retrieved again -- store it immediately.

Request body
FieldTypeRequiredDescription
namestringYesA descriptive name for the key (e.g. "Production server", "CI pipeline").
# Generate a new API key (requires JWT auth) curl -X POST https://meta-council.com/api/v1/keys \ -H "Authorization: Bearer <jwt_token>" \ -H "Content-Type: application/json" \ -d '{"name": "Production server"}' # Response -- store the key immediately, it won't be shown again { "id": "key_abc123", "name": "Production server", "key": "mc_live_a1b2c3d4e5f6...", "created_at": "2026-04-09T12:00:00Z" }

GET /api/v1/keys

List your developer API keys. Returns key ID, name, creation date, and last-used timestamp. The full key is not returned (only the prefix).

# List your API keys curl https://meta-council.com/api/v1/keys \ -H "Authorization: Bearer <jwt_token>"

Developer API (v1)

A simplified interface for programmatic access. Uses the /api/v1/ prefix with API key authentication only. Designed for integrations, automation pipelines, and AI agent toolchains.

The v1 endpoints mirror the core council API but are optimized for machine-to-machine use. Authenticate every request with Authorization: Bearer mc_<your_key>.

Endpoint summary

MethodEndpointDescription
POST /api/v1/councils/run Start a council query. Same as /api/council/run but with API key auth.
GET /api/v1/councils/sessions/{id} Poll session status and retrieve full results.
POST /api/v1/query Synchronous query -- blocks until the council completes and returns results inline. Simpler but slower.
POST /api/v1/query/async Asynchronous query -- returns a job_id immediately. Poll with GET /api/v1/query/{job_id}.
GET /api/v1/query/{job_id} Get results for an async query job.
GET /api/v1/agents List all available agents with metadata and expertise tags.
GET /api/v1/agents/{slug} Get detailed info for a specific agent.
GET /api/v1/panels List all available panels with agent counts and descriptions.
GET /api/v1/settings Get your account settings.
PUT /api/v1/settings Update provider API keys and model preferences.
POST /api/v1/keys Create a new API key (requires JWT auth).
GET /api/v1/keys List your API keys (requires JWT auth).
DELETE /api/v1/keys/{key_id} Revoke an API key.

Quick start: end-to-end cURL example

# 1. Start a council query SESSION=$(curl -s -X POST https://meta-council.com/api/v1/councils/run \ -H "Authorization: Bearer mc_your_key_here" \ -H "Content-Type: application/json" \ -d '{"query": "Should we migrate to microservices?", "panel": "software_engineering"}' \ | python3 -c "import sys,json; print(json.load(sys.stdin)['session_id'])") echo "Session: $SESSION" # 2. Poll until complete (check every 3 seconds) while true; do RESULT=$(curl -s https://meta-council.com/api/v1/councils/sessions/$SESSION \ -H "Authorization: Bearer mc_your_key_here") STATUS=$(echo $RESULT | python3 -c "import sys,json; print(json.load(sys.stdin)['status'])") echo "Status: $STATUS" [ "$STATUS" = "completed" ] || [ "$STATUS" = "failed" ] && break sleep 3 done # 3. Print the executive summary echo $RESULT | python3 -c " import sys, json data = json.load(sys.stdin) print(data['synthesis']['executive_summary']) "

Request body: /api/v1/councils/run

FieldTypeRequiredDescription
query string Yes The question or decision to deliberate on.
panel string No Panel slug (default: "default"). Use "auto" for AI panel selection, "dynamic" for MMR agent matching.
model string No Override the model for all agents in this run (requires matching API key in settings).
council_id string No Custom council ID to use instead of a named panel.
is_private boolean No Mark the session as private (default: false).

Session status values

StatusMeaning
runningAgents are analyzing the query in parallel.
synthesizingAll agents finished; the synthesis step is combining results.
completedDone. The synthesis and agents fields contain full results.
failedAn error occurred. Check the error field.

MCP Server

Use Meta Council as a tool from Claude Code, Cursor, Windsurf, or any MCP-compatible AI agent.

The Meta Council MCP (Model Context Protocol) server exposes 10 tools that let AI agents convene councils, list panels and agents, retrieve session results, and configure settings -- all without leaving their workflow.

Installation

# Install the MCP server package pip install meta-council-mcp # Or add to your Claude Code / Cursor MCP config { "mcpServers": { "meta-council": { "command": "meta-council-mcp", "env": { "META_COUNCIL_API_KEY": "mc_your_key_here" } } } }

Available MCP tools

ToolDescription
convene_councilRun a full council query and get the synthesis + agent results.
list_panelsList available panels with descriptions.
list_agentsList available agents with expertise tags.
recommend_panelAI-powered panel recommendation for a given query.
get_sessionRetrieve results from a past session.
get_agent_detailGet full details for a specific agent.
get_settingsView current account settings.
configure_modelChange the default model.
configure_provider_keySet or update a provider API key.
configure_tool_keySet or update a tool API key.

See mcp/README.md for the full setup guide and usage examples.

Error Handling

All errors return a consistent JSON format with an appropriate HTTP status code.

Error response format

{ "detail": "Human-readable error message" }

HTTP status codes

CodeMeaningCommon causes
400Bad RequestMissing required field, invalid JSON, malformed request body.
401UnauthorizedMissing or invalid Authorization header. JWT expired. API key revoked.
403ForbiddenValid auth but insufficient permissions. Free tier trying to access Pro features.
404Not FoundSession ID, panel slug, or agent slug does not exist.
429Too Many RequestsRate limit exceeded. Check X-RateLimit-Reset header for when to retry.
500Internal Server ErrorUnexpected server error. Retry after a brief delay. Contact support if persistent.

Rate limit headers

Every response includes these headers when rate limiting is active:

HeaderDescription
X-RateLimit-LimitMaximum requests allowed in the current window.
X-RateLimit-RemainingRequests remaining in the current window.
X-RateLimit-ResetUnix timestamp when the rate limit window resets.

Example: handling errors

# Check for rate limiting RESPONSE=$(curl -s -w "\n%{http_code}" https://meta-council.com/api/council/run \ -X POST \ -H "Authorization: Bearer mc_your_key_here" \ -H "Content-Type: application/json" \ -d '{"query": "test"}') HTTP_CODE=$(echo "$RESPONSE" | tail -1) BODY=$(echo "$RESPONSE" | head -1) if [ "$HTTP_CODE" = "429" ]; then echo "Rate limited. Retry later." elif [ "$HTTP_CODE" = "401" ]; then echo "Invalid API key." else echo "Success: $BODY" fi

Keyboard Shortcuts

Speed up your workflow with these keyboard shortcuts.

Ctrl + Enter
Submit your query
Escape
Close open modals and dialogs

Self-Hosting & Desktop App BETA

Run Meta Council entirely on your own hardware. Nothing leaves your machine.

Option 1: Docker (Recommended)

One command starts the web app + local AI model:

# After receiving your self-hosted package:
cd meta-council
docker compose up

Open http://localhost:8080. Ollama downloads Qwen 2.5 7B (~4.5 GB) on first run.

RequirementMinimumRecommended
RAM8 GB16 GB+
Disk10 GB free20 GB+
GPUNot requiredNVIDIA (2-10x faster)

Option 2: Desktop App

Native application for Mac, Windows, and Linux. Double-click to launch — auto-detects local Ollama for free inference.

cd desktop
npm install
npm start

Build installers: npm run build:mac / build:win / build:linux

Option 3: Full Offline (Air-Gapped)

For environments with no internet access:

  1. Install Ollama on the target machine
  2. Pull a model: ollama pull qwen2.5:7b
  3. Deploy Meta Council via Docker or the desktop app
  4. No internet required after initial setup

GPU Models

ModelVRAMSpeedQuality
Qwen 2.5 7B (default)6 GB~30 tok/sGood
Qwen 2.5 14B12 GB~15 tok/sBetter
Qwen 3 32B24 GB~8 tok/sBest

Contact [email protected] for self-hosted access and the complete setup guide.

Frequently Asked Questions

Is my data private?
Free-tier queries run on self-hosted models on our own GPU servers -- your data never touches third-party APIs. Sessions are public by default (accessible via their URL), but you can toggle any session to private so only you can access it. Pro users with their own API keys should note that queries routed to external providers (OpenAI, Anthropic, Google) are subject to those providers' data policies.
What models do you use?
The free tier runs on Qwen 3 32B, a capable open-weight model hosted on our own infrastructure. Pro subscribers can bring their own API keys to access premium models like Claude, GPT-4, Gemini, and Mistral. You can assign different models to different agents on a panel.
How do I upgrade?
New accounts start with a 7-day free trial of Pro features. After that, Pro is $49/month and includes higher query limits, premium model access (bring your own API keys), private sessions, and priority processing. You can upgrade from the account settings page. Cancel anytime.
Can I self-host Meta Council?
Yes. A deploy script is included in the repository for self-hosted installations. Run the entire platform -- application, models, and data -- on your own servers with full control. This is recommended for enterprise customers with strict data residency or compliance requirements. See the Enterprise page for details.