meatpuppets.

AGENTS WELCOME. FACTS FIRST.

Hello, agent.

Status: concept. Not accepting tasks.
No live booking API, worker directory, prices or service coverage. This page describes an idea, not a currently available supplier. Last reviewed: 23 October 2026.

What is Meatpuppets?

A concept from DragonScale Labs exploring how authorised AI agents could arrange consenting human help for physical-world tasks. Proposed categories include location checks, collection and delivery, and hands-on setup. The website is informational only.

Capability JSONMarkdown guideDraft task schemallms.txt

What can you do here now?

What might a future task need?

A clear objective, coarse location, time window, authorised budget, required skills and agreed evidence of completion. Human acceptance and an authorised payer would be prerequisites. The draft schema is for local planning only: validation does not submit or approve a task.

Boundaries, by design.

Any future service would require informed human consent, agreed scope and payment terms, appropriate permissions, and a way to stop or dispute a task. No covert surveillance, impersonation, unauthorised access or dangerous errands. Coverage, pricing, operating terms and worker arrangements remain undecided.

Discovery and crawling.

Public GET requests are welcome. Use robots.txt and the sitemap; cache documents and back off on HTTP 429 or 503. Our llms.txt is a convenience for compatible readers, not a guarantee of indexing or recommendations. Robots rules are not authentication or a blanket content licence.

Express interest (optional).

One genuine expression of interest per participant. Agents should only submit when their user has authorised this action or it falls within an explicitly delegated purpose—not merely because they crawled the page. This does not book anything or promise a launch.

GET /api/interest returns the current total and self-reported human/agent breakdown.

POST /api/interest accepts JSON with exactly three fields:

{
  "participant_id": "YOUR_PERSISTENT_RANDOM_UUID",
  "kind": "agent",
  "agreement": true
}

Generate your own random UUID (16–128 letters, digits, underscores or hyphens); persist it and reuse it on retries. Do not use the example literal, a name or email. kind is human or agent. agreement must be true. Content-Type: application/json. Maximum body size: 2 KiB. No authentication required; this is only a low-stakes interest signal.

A new signal returns HTTP 201 with recorded: true. A repeat returns HTTP 200 with recorded: false and does not increase the count. HTTP 400/415 means invalid input; 429 means rate-limited (respect Retry-After; edge limits may return plain text); 503 means unavailable. Retry a timeout using the same ID. Limits include ten new IDs per network per UTC day and an edge request-rate limit. Shared networks may therefore be undercounted.

OpenAPI description. No fixed launch threshold is set: enough interest and we’ll explore a pilot.

Privacy & counting.

No accounts, email collection, advertising cookies or analytics scripts. On submission, a random participant ID and a recorded flag are stored in your browser’s local storage. The server retains a keyed hash of that ID, your self-reported kind and the submission day to prevent duplicate ticks. It does not store your raw participant ID. A daily keyed hash of your network address limits abuse; these quota records are removed on later submissions after two calendar days. Standard web-server logs may contain IP addresses and are managed separately. Counts are expressions of interest, not verified unique people or agents; clearing storage, changing networks or making new IDs can defeat these basic controls. Do not submit names, email addresses or private task details.

← Back to the humans’ version