Point your agent at it.

Your coding agent can add megachad to a project without you clicking anything but "Get your key". Your runtime agent can use it as its decision step. Everything they need is plain text: llms.txt · llms-full.txt · agents.md · OpenAPI.

One line, any agent

1. Get a key. Sign up, then put the key in one env var: export MEGACHAD_API_KEY=mcc_live_…. Your agent reads it from there. It never needs to see it, write it down or commit it.

2. Paste this into Claude Code, Codex, Cursor, Gemini CLI, Aider, Windsurf or Copilot. Fill in the part in angle brackets.

Prompt
Read https://megachadcua.com/llms.txt and add megachad to this project: <what it should decide, e.g. route each support ticket to Billing, Bug or Other>. Use the API key from the MEGACHAD_API_KEY env var; if it's unset, ask me. Never hardcode or commit the key. Call the HTTP API directly unless the project already uses a megachad SDK.

The agent reads llms.txt, checks the key, makes one test call, and writes the integration over plain HTTP, so there's no SDK version to get wrong.

Claude Code

Install the skill. Claude Code loads it when a task needs it, or run /megachad.

Terminal
mkdir -p ~/.claude/skills/megachad && curl -fsSL https://megachadcua.com/agents/megachad/SKILL.md -o ~/.claude/skills/megachad/SKILL.md

One repo only: save it as .claude/skills/megachad/SKILL.md and commit it. Read it first: SKILL.md.

Let Claude call megachad itself, as a tool (choose and decide):

Terminal
claude mcp add megachad -e MEGACHAD_API_KEY=$MEGACHAD_API_KEY -- npx -y megachad-mcp

Codex & any repo

Append the megachad block to your repo's AGENTS.md. Codex, Cursor, Copilot's coding agent, Windsurf, Jules and Zed read it. Gemini CLI: add {"context": {"fileName": "AGENTS.md"}} to .gemini/settings.json. Aider: add read: AGENTS.md to .aider.conf.yml.

Terminal
curl -fsSL https://megachadcua.com/agents/AGENTS.md >> AGENTS.md

Or paste it yourself:

AGENTS.md
## megachad decision API

megachad (https://megachadcua.com) answers a schema of questions about text or speech: each field is one of N options, yes/no, or a scale, and comes back with a calibrated confidence. The model decides in ~17 ms. Full reference: https://megachadcua.com/llms-full.txt.

Key:

- The key is in the env var `MEGACHAD_API_KEY` (`mcc_live_...`). Read it at runtime. Never hardcode, commit, print or log it; never send it to a browser.
- If it's unset, stop and ask the user to get one at https://megachadcua.com/login?signup=1 and set it. Don't sign up for them.
- Keep `.env` in `.gitignore`.

Call (raw HTTP is the default; no SDK needed):

```bash
curl https://api.megachadcua.com/v1/decide \
  -H "Authorization: Bearer $MEGACHAD_API_KEY" \
  -H "content-type: application/json" \
  -d '{"schema": {"action": {"question": "What should the agent do?", "options": ["Click Sign in", "Scroll down", "Nothing yet"]}}, "text": "take me to sign in"}'
```

Response (200):

```json
{"session_id": "dcd_C8o5VFBm5AH65L7e", "fields": {"action": {"value": "Click Sign in", "confidence": 0.98, "probabilities": {"Click Sign in": 0.98, "Scroll down": 0.012, "Nothing yet": 0.008}}}, "transcript": "take me to sign in", "latency_ms": 112, "model_ms": 15.2, "usage": {"credits": 1}}
```

- Field kinds: `{"question": "...", "options": ["A", "B", "Nothing yet"]}`, `{"question": "...", "type": "yes_no"}`, `{"question": "...", "scale": ["low", "medium", "high"]}`.
- `text`: a string, or `[{"speaker": "user" | "other", "text": "..."}]`.
- Up to 50 texts per call: `POST /v1/decide/batch` with `{"schema", "items": [{"id", "text"}]}`. Live voice: `WS /v1/listen`.
- Schema: one question per field; short, distinct options with a way out ("Nothing yet", "Not sure"); option labels as the user sees them. The value comes back verbatim.
- Act only at or above a confidence threshold (start at 0.85); below it, confirm with the user. `confidence` can be `null`: treat as unsure. A human confirms destructive, financial or medical actions. Medical: it routes and structures for clinicians; it doesn't diagnose.
- Errors: `{"error": {"code", "message"}}`. Retry 409, 429 and 5xx with backoff and `Retry-After`, sending the same `Idempotency-Key` (a UUID per request) so a retry is never billed twice. Don't retry 400, 401, 402, 403, 413, 422; 402 and 403 need the user.
- SDKs: `pip install megachad` or `npm i megachad` (0.1.0: `decide`, `listen`); MCP: `npx -y megachad-mcp`. SDK batch and retry helpers are coming in 0.1.1; don't use them yet.
- Tests mock the HTTP call; real calls cost 10¢ per 1,000.

Cursor

A project rule. Cursor pulls it in when the task matches its description.

Terminal
mkdir -p .cursor/rules && curl -fsSL https://megachadcua.com/agents/megachad.mdc -o .cursor/rules/megachad.mdc

The MCP server, in ~/.cursor/mcp.json or .cursor/mcp.json. Cursor fills the key in from your environment, so the file holds none.

mcp.json
{
  "mcpServers": {
    "megachad": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "megachad-mcp"
      ],
      "env": {
        "MEGACHAD_API_KEY": "${env:MEGACHAD_API_KEY}"
      }
    }
  }
}

Runtime agents

A computer-use agent, a voice bot, a triage agent: it has a fixed set of next moves, a person said something, and it needs to know which move they mean. That's one call. Send the moves as options, plus two ways out.

Terminal
curl https://api.megachadcua.com/v1/decide \
  -H "Authorization: Bearer $MEGACHAD_API_KEY" \
  -H "content-type: application/json" \
  -d '{"schema": {"action": {"question": "Which on-screen control does the user want the agent to use?", "options": ["Sign in", "Pricing", "Docs", "Nothing yet", "Not sure"]}}, "text": "take me to sign in"}'

Schema design

  • One question per field. "Which team, and how urgent?" is two fields, answered in one call.
  • Options as the user sees them. Short, distinct, no overlap. The value comes back verbatim: map it to your ids.
  • Always a way out. "Nothing yet" when they haven't asked for anything. "Not sure" or "Other" when nothing fits.
  • Yes/no and scales. "type": "yes_no" for binary questions, "scale" for ordered levels, low to high.
  • New screen, new options. Every /v1/decide call can carry a different schema.

Confidence

  • Act at or above a threshold; below it, confirm or hand off. Start at 0.85 to 0.9, then let Evals pick it from your own cases.
  • Top two close in probabilities? Ask between them.
  • Destructive, financial or medical actions get a human, whatever the confidence. Medical: it routes and structures for clinicians. It doesn't diagnose.

Many texts with the same questions: batch up to 50 per call. Live speech: listen. The decision-step code (Python), a batch loop with retries, and the rest: agents.md.

As a tool

Give your LLM agent one tool that wraps /v1/decide. Its input is the request body: send it unchanged, return fields.

Anthropic tools
{
  "name": "megachad_decide",
  "description": "Make fast, calibrated decisions about a piece of text with megachad (the model decides in ~17 ms). Give a schema of fields; each field is one question answered by picking one of its options, yes/no, or a level on a scale. Returns each field's value and a confidence from 0 to 1. Use it to map what a person said to one of a fixed set of actions, intents, queues or labels. Below about 0.85 confidence, ask the person instead of acting.",
  "input_schema": {
    "type": "object",
    "properties": {
      "schema": {
        "type": "object",
        "description": "Field name to field. One decision per field. Each field has a question and exactly one of: options (pick one), type yes_no, or scale (ordered levels, low to high).",
        "additionalProperties": {
          "type": "object",
          "properties": {
            "question": {
              "type": "string",
              "description": "The question the model answers about the text."
            },
            "options": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Pick one of these. The answer is the option text, verbatim. Include a way out like \"Nothing yet\" or \"Not sure\"."
            },
            "type": {
              "type": "string",
              "enum": [
                "yes_no"
              ],
              "description": "yes_no: the answer is true or false."
            },
            "scale": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Ordered levels, low to high. The answer is a level, plus its 0-based index."
            }
          }
        }
      },
      "text": {
        "type": "string",
        "description": "What the person said or wrote: an utterance, a transcript, a ticket."
      }
    },
    "required": [
      "schema",
      "text"
    ]
  }
}
OpenAI tools
{
  "type": "function",
  "function": {
    "name": "megachad_decide",
    "description": "Make fast, calibrated decisions about a piece of text with megachad (the model decides in ~17 ms). Give a schema of fields; each field is one question answered by picking one of its options, yes/no, or a level on a scale. Returns each field's value and a confidence from 0 to 1. Use it to map what a person said to one of a fixed set of actions, intents, queues or labels. Below about 0.85 confidence, ask the person instead of acting.",
    "parameters": {
      "type": "object",
      "properties": {
        "schema": {
          "type": "object",
          "description": "Field name to field. One decision per field. Each field has a question and exactly one of: options (pick one), type yes_no, or scale (ordered levels, low to high).",
          "additionalProperties": {
            "type": "object",
            "properties": {
              "question": {
                "type": "string",
                "description": "The question the model answers about the text."
              },
              "options": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Pick one of these. The answer is the option text, verbatim. Include a way out like \"Nothing yet\" or \"Not sure\"."
              },
              "type": {
                "type": "string",
                "enum": [
                  "yes_no"
                ],
                "description": "yes_no: the answer is true or false."
              },
              "scale": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Ordered levels, low to high. The answer is a level, plus its 0-based index."
              }
            }
          }
        },
        "text": {
          "type": "string",
          "description": "What the person said or wrote: an utterance, a transcript, a ticket."
        }
      },
      "required": [
        "schema",
        "text"
      ]
    }
  }
}

The files

Plain text, open CORS, linked from every page's <link rel="alternate"> and Link header.

FileWhat it is
/llms.txtThe index. Start here.
/llms-full.txtEverything in one file.
/docs.mdThe API docs.
/agents.mdThis page, with the runtime-agent code.
/pricing.mdCredits and worked examples.
/status.mdHow to read the live status JSON.
/agents/megachad/SKILL.mdClaude Code skill.
/agents/AGENTS.mdBlock for a repo's AGENTS.md.
/agents/megachad.mdcCursor rule.
/openapi.jsonOpenAPI 3.1.

Get your key$2 free. Your agent does the rest.