Meerkat

Use case · Async agent webhooks

An agent task API with webhooks as the first-class output.

Meerkat is an open source async agent framework for engineers who'd rather ship product than rebuild schedulers, LLM tool loops, and webhook delivery. Register a task in plain English, attach your LLM key, point at an endpoint — done.

One verb: register

POST /v1/tasks creates a recurring or one-off agent task. Everything else is operational.

Webhook-native results

Structured JSON, signed, retried with exponential backoff. The same delivery contract you already handle for Stripe or GitHub.

BYOK keys, per-task

Encrypted at rest, scoped per task. Cost and rate limits stay yours.

MIT and self-hostable

Open source server, Docker compose, one-click Render and Fly deploys. No vendor lock-in.

Example request

POST /api/v1/tasks

curl -X POST https://meerkatagents.com/api/v1/tasks \
  -H "Authorization: Bearer mk_live_..." \
  -d '{
    "task_type": "recurring",
    "description": "Summarize new arXiv papers in distributed systems",
    "input_params": { "topic": "distributed systems" },
    "frequency": "0 9 * * *",
    "output_webhook": "https://your-app.com/hook"
  }'

FAQ

Common questions

Why not run agents in my own backend?

You can — but you'll rebuild scheduling, tool-loop orchestration, retries, idempotency, signed delivery, and per-task LLM key isolation. Meerkat is the open source primitive for exactly that stack.

What LLM providers are supported?

Anthropic, OpenAI, OpenRouter, and Grok at launch. Keys are BYOK and encrypted at rest. Add a provider once; reuse across every task.

Is the API stable?

POST /v1/tasks, GET /v1/tasks/:id, and POST /v1/tasks/:id/run are the core verbs. Versioned URL prefix, semver, and a deprecation policy documented in the repo.

How are webhooks verified?

Every outbound POST is HMAC-SHA256 signed with your endpoint secret in the X-Meerkat-Signature header. SDKs ship a verify() helper.

Ready to ship your first webhook?

Sign up, connect your LLM key in onboarding, and register a task in under five minutes.