Meerkat — Open source async agent task API with webhooks
Log in<br>Sign up →
Menu
Open source · MIT · BYOK · Webhook-native
Describe a task in your own words.<br>Meerkat runs it async.
Open source API for developers who need agents to monitor links, track deliveries,<br>and report findings — without building schedulers, webhook plumbing, or LLM tool loops.<br>Results POST to your endpoint.
Sign up free<br>Read the docs
POST /api/v1/tasks<br>→ you send
task_type
"recurring"<br>// one_off or recurring
description
"Monitor DHL and report changes"<br>// plain english
frequency
"every 2 hours"<br>// cron or natural language
output_webhook
"https://your-app.com/hook"<br>// where we POST results
↓ ~3.2s
POST /hook<br>← meerkat
status<br>"changed"
state<br>"In transit → Out for delivery"
eta<br>"2026-06-20T16:40:00Z"
location<br>"Berlin · DE"
Self-host anywhere · Run on the stack you already ship
stripe<br>linear<br>vercel<br>supabase<br>resend<br>anthropic<br>fly.io<br>railway<br>neon<br>clerk<br>doppler<br>modal<br>stripe<br>linear<br>vercel<br>supabase<br>resend<br>anthropic<br>fly.io<br>railway<br>neon<br>clerk<br>doppler<br>modal
01 · The primitive
One verb. Register.
Every product that watches the world rebuilds the same stack: schedulers, LLM tool loops,<br>page diffing, webhook retries. Meerkat collapses that into a single open source resource.
register
POST /api/v1/tasks
Describe in English. Pass input_params + output_webhook.
run
scheduled · on-demand
Cron, natural language, or POST /tasks/:id/run.
return
your webhook
Structured JSON, signed, retried until 2xx.
02 · Lifecycle
From cURL to webhook. Four hops.
step
Register
POST /api/v1/tasks<br>description: "watch URL"<br>input_params: {...}<br>output_webhook: "/hook"
step
Connect LLM
providers:<br>anthropic | openai<br>openrouter | grok<br>key: encrypted at rest
step
Run
agent.execute()<br>→ on schedule<br>→ on demand<br>→ change detection
step
Webhook
POST your-app.com/hook<br>signed: hmac-sha256<br>retries: exponential<br>status: 200 ✓
Start onboarding →<br>LLM provider setup
06 · Architecture
Your app ↔ Meerkat ↔ LLMs.
A task moves through three actors. You register it, Meerkat schedules and orchestrates,<br>an LLM (your key) executes, and a signed webhook lands back at your endpoint.
01 · client
Your app
POST /api/v1/tasks
› "description": "watch URL"
› "output_webhook": "/hook"
02 · infra
Meerkat
schedule · orchestrate · sign
› queue → worker → agent.run()
› retries · idempotency · hmac
03 · model
LLMs (BYOK)
anthropic · openai · openrouter · grok
› tool.call fetch_url(...)
› tool.call diff(prev, next)
tail -f meerkat.log
live
00:00<br>POST /api/v1/tasks → 201 task=tsk_8f2a
01:07<br>scheduler.enqueue tsk_8f2a in 0s
02:14<br>agent.boot provider=anthropic
03:21<br>tool.call fetch_url dhl.de/track?id=…
04:28<br>tool.call diff(prev, next) → changed
05:35<br>webhook.sign hmac-sha256
06:42<br>POST your-app.com/hook → 200 OK 142ms
07:49<br>task.next_run +2h
08:56<br>POST /api/v1/tasks → 201 task=tsk_8f2a
09:03<br>scheduler.enqueue tsk_8f2a in 0s
10:10<br>agent.boot provider=anthropic
11:17<br>tool.call fetch_url dhl.de/track?id=…
12:24<br>tool.call diff(prev, next) → changed
13:31<br>webhook.sign hmac-sha256
14:38<br>POST your-app.com/hook → 200 OK 142ms
15:45<br>task.next_run +2h
03 · Self-host
Deploy your own in one click.
Self-host Meerkat with the same REST API as Cloud. You run Postgres and workers;<br>users connect their own LLM keys. MIT licensed, no vendor lock-in.
git clone github.com/Tiny-Bubble-Company/meerkat
One-click deploy
Render
$ render.com/deploy
Global edge
Fly.io
$ fly launch
Compose recommended
Docker
$ docker compose up
04 · Run it your way
Self-host or Cloud.
Same open source codebase. Same API. Pick the operating model that fits your team.
open source<br>Free · MIT
Self-host
Docker, Render, Fly.io, or Kamal
Full REST API + webhook delivery
Users bring LLM keys (BYOK)
You operate Postgres + job workers
View on GitHub
recommended
managed<br>Monthly subscription
Meerkat Cloud
Same API — no workers to run
Managed queues + webhook delivery
BYOK — Anthropic, OpenAI, OpenRouter, Grok
LLM usage billed by your provider
Sign up free →
05 · BYOK
Bring your own LLM key.
Meerkat never resells AI tokens. Each account connects an encrypted API key.<br>Model costs go to your provider; Meerkat charges only for scheduling, execution, and webhooks.
Configure in docs →
providers<br>encrypted at rest
Anthropic<br>claude-sonnet-4-20250514
OpenAI<br>gpt-4o-mini
OpenRouter<br>meta-llama/llama-3.3-70b-instruct:free
Grok / xAI<br>grok-3-mini
07 · In production
What devs are already shipping.
See all templates →
couriers<br>recurring · webhook
Tracking that pings you, not the other way around.
Drop in DHL, FedEx, or UPS URLs. Meerkat polls, diffs, and webhooks only when the state actually moves.
status: "Out for delivery" · eta: "16:40"
Learn more →
price · stock<br>recurring · webhook
Watch any product. Pay only when something changes.
Price drops, restocks, availability shifts — converted into compact JSON your app can react to in one route.
price: 89.00 →...