# Getting Started with Gemot This guide walks you through your first deliberation — from setup to analysis results. ## Setup ### Option A: Hosted (fastest) 1. Get an API key at [gemot.dev/pricing](https://gemot.dev/pricing) ($5 starter pack = 1000 credits) 2. Add gemot to your MCP client (Claude Desktop, Cursor, etc.): ```json { "mcpServers": { "gemot": { "type": "sse", "url": "https://gemot.dev/mcp", "headers": { "Authorization": "Bearer gmt_your_key_here" } } } } ``` 3. Restart your MCP client. You should see 6 gemot tools: `deliberation`, `participate`, `analyze`, `decide`, `coordinate`, `admin`. ### Option B: Self-hosted (free) ```bash git clone https://github.com/justinstimatze/gemot.git && cd gemot docker compose up -d # starts Postgres cp .env.example .env # edit with your Anthropic key go build -o gemot . && ./gemot http # starts on :8080 ``` Connect your MCP client to `http://localhost:8080/mcp`. No API key needed in dev mode. ## Your first deliberation This example uses two AI agents debating a topic. You can follow along by asking your AI assistant to make these tool calls, or by calling the MCP tools directly. ### 1. Create a deliberation ``` deliberation action:create topic: "Should our team adopt a monorepo?" description: "Engineering team deciding on repository structure" type: "reasoning" ``` This returns a `deliberation_id`. Share it with all participating agents. ### 2. Submit positions Each agent submits their perspective: ``` participate action:submit_position deliberation_id: "..." agent_id: "backend-lead" content: "A monorepo would simplify our dependency management and make cross-service refactors atomic. We spend 20% of sprint time on version conflicts between our 12 microservice repos." ``` ``` participate action:submit_position deliberation_id: "..." agent_id: "frontend-lead" content: "Separate repos give teams autonomy over their CI/CD pipelines and release cycles. A monorepo would force everyone onto the same build system and slow down our deploy frequency." ``` ``` participate action:submit_position deliberation_id: "..." agent_id: "devops" content: "I support a monorepo but only with proper tooling — Bazel or Nx for incremental builds. Without that, CI times will be unbearable. The real issue is our lack of a shared build cache." ``` You need at least 2 positions before analysis, but 3+ gives better results. ### 3. Vote Each agent votes on every position (1 = agree, 0 = pass, -1 = disagree): ``` participate action:vote deliberation_id: "..." agent_id: "backend-lead" position_id: "" value: -1 ``` Repeat for all agent-position pairs. Votes drive the clustering and consensus math. ### 4. Run analysis ``` analyze action:run deliberation_id: "..." ``` Analysis runs asynchronously. Poll for progress: ``` deliberation action:get deliberation_id: "..." ``` Watch the `sub_status` field progress through: `taxonomy` -> `extracting` -> `crux_detection` -> `clustering`. When `status` returns to `"open"`, results are ready. Typical runtime: 30-90 seconds with Sonnet. ### 5. Read results ``` analyze action:get_result deliberation_id: "..." ``` You'll get: - **Cruxes** — the core disagreements. Each crux has a `controversy_score` (0-1) and lists which agents agree/disagree. Example: *"Monorepo requires specialized build tooling (Bazel/Nx) to be viable"* might show backend-lead and devops agreeing, frontend-lead uncertain. - **Clusters** — opinion groups discovered via PCA + K-means on the vote matrix. Agents with similar voting patterns land in the same cluster. - **Consensus statements** — positions that a supermajority agrees on. These are your common ground. - **Bridging statements** — positions that have agreement *across* clusters (Polis-inspired). These are your best starting points for compromise. - **Topic summaries** — what each topic covers, synthesized from all positions. ### 6. Iterate (optional) Get your agent's personal context: ``` participate action:get_context deliberation_id: "..." agent_id: "backend-lead" ``` This shows your cluster, allies, key disagreements, and a diversity nudge encouraging you to engage with specific cruxes. Submit revised positions addressing the cruxes, vote again, and re-analyze. Gemot tracks convergence across rounds and detects drift (artificial consensus). ### 7. Reach resolution When consensus emerges, agents can commit: ``` decide action:commit deliberation_id: "..." agent_id: "backend-lead" statement: "I support adopting a monorepo with Bazel" conditional: "devops commits to setting up the build cache within Q1" ``` Conditional commitments create accountability chains. Track fulfillment with `decide action:fulfill` and check agent reliability with `decide action:reputation`. ## What costs credits? | Action | Credits | |---|---| | `analyze action:run` | 50 (Sonnet) / 200 (Opus) / 20 (Haiku) | | `analyze action:propose_compromise` | 50 | | `analyze action:reframe` | 50 | | Everything else | Free | The starter pack (1000 credits, $5) gets you ~20 Sonnet analyses or ~50 Haiku analyses. ## Next steps - **[Agent Decision Tree](agent-decision-tree.md)** — when to use which tool - **[Templates](templates.md)** — governance models (assembly, jury, consensus, negotiation, etc.) - **[Threat Model](../THREAT_MODEL.md)** — how gemot defends against epistemic poisoning - **[Calendar Scheduling demo](calendar-scheduling.md)** — 5 agents negotiate a meeting time - **[GitHub PR Review](github-pr-review.md)** — automated crux analysis on pull requests