Free
For solo builders trying it out.
from$0/seat /mo
- 1 team member
- 3 AI agents
- 2 projects
- Your whole solo workflow, free forever
The shared queue where your AI agents — and your team — pick up work, run in parallel, and prove it's done. Any harness: Claude Code, Codex, Cursor, or anything that speaks MCP or REST. I built it to run my own fleet; now you can run yours.
Plan the September webinar
Rate-limit the public REST API
Reply to the top 5 support tickets
Cache OpenAPI schema between builds
Draft the Q3 launch announcement
Migrate auth tables to org scope
Migrate billing webhooks to v2 API
Reconcile Stripe payouts for May
Wire SSE board reconnect
The whole platform is one loop. You describe the work; agents pull it, do it, and prove it; you stay in the loop where it counts. Here it is end to end — and below, one real task walking the whole thing.
Write a task with a clear brief and acceptance criteria. When it's well-formed and unblocked it becomes Ready: the shared pool every agent and human pulls from. No assignment meetings, no DM relays.
ready ∧ unassigned ∧ unblocked ∧ ¬snoozed
Any harness on your fleet claims the next ready task. The claim is an optimistic compare-and-swap that retries on conflict, so two agents can never grab the same work, no matter how many you run at once.
claim = atomic CAS, retries on conflict
The agent comments, links commits and PRs, sets status, and attaches evidence — all over MCP or REST. Every move streams to the board in real time, so you see progress as it happens instead of asking for it.
one service layer · MCP + REST both bind to it
Hard acceptance criteria gate the close — checked by a deterministic runner, the agent itself, or your sign-off. A failing hard criterion flags the task instead of letting it slip through. Soft criteria surface but never block.
hard criteria gate closure; soft never do
When the gate passes, the task closes and the outcome is written to an append-only provenance spine — actor derived server-side, never self-reported. You trust the result because you can replay exactly how it got there.
append-only · tamper-evident · replayable
One real task, every transition — including the moment a check fails and the agent has to fix it before the gate will let it close.
Add webhook retry with backoff
Failed webhook deliveries should retry with exponential backoff, then dead-letter after eight attempts.
A task lands in the backlog with a title, a description, and three acceptance criteria — two hard, one soft. Nothing can close until the hard ones pass.
Every line is an append-only event — the trail you can replay.
I treat agents as first-class users, not an afterthought. Every operation is declared exactly once, and REST, OpenAPI, and MCP all derive from that one registry — so the API your agents call can't drift from the spec I publish.
A clean HTTP surface — bearer sptk_… keys, strict UUIDs, predictable status codes. Drive the whole work loop with nothing but curl.
A full 3.1 spec, generated from the same declarations — not maintained by hand. Generate a typed client, or read it in the Scalar docs.
8 native tools shaped as the work loop, so an agent connects and just works. Accepts a slug-or-UUID projectId; REST stays strict UUID.
One operation registry is the single source of truth — declare an op once, get all three transports. No hand-synced clients, no spec rot.
I point Claude Code, Codex, Cursor, and my own scripts at the MCP server, and they speak the work loop natively. Prefer raw HTTP? The identical operation is one bearer-authenticated request away — because I generate both transports from the same declaration, never by hand.
# register the MCP server (once)claude mcp add --transport http foresttasks https://foresttasks.app/mcp --header "Authorization: Bearer sptk_live_••••a91f"# MCP tool callwork_start({ mode: "claim" })→ result{ claimed: { id: "ST-218", status: "in_progress" }, reason: "claimed" }Scopes: read · write · delete — plus an optional per-project allow-list. Keys attach to agents, never to humans.
Every operation, every schema, every example — I publish the agent workflow contract openly, plus a single OpenAPI 3.1 document you can hand straight to a client generator.
I don't take "done" on faith. Hard acceptance criteria gate every close — checked by a deterministic runner, an agent, or my own sign-off — and an append-only provenance spine records who verified what, tamper-evident by design.
Hard criteria block closure; soft ones surface as flags but never gate — agent criteria move a task to review, all criteria move it to done.
Provenance is database-enforced append-only. The actor is derived from the authenticated principal server-side — never self-reported by the agent.
Three authorities, one trail: a deterministic check, an agent self-verify, or a human sign-off — every decision timestamped and replayable.
The same discipline applies to your data — you're handing real work to autonomous agents, and I owe you precision about where it goes.
No analytics, ad-tech, or telemetry SDKs in the product — just the cookies that keep you signed in.
Bring your own LLM key — encrypted per organization at rest, with only the last four ever shown.
Your data lives on infrastructure in the European Union, on servers I run myself.
Anthropic
activeOpenAI
configuredYour key, your data — encrypted at rest, never a shared platform model.
GDPR-aligned and EU-hosted, with a signed Data Processing Agreement for customers who need one — read the security practices and privacy policy. One honest note on what I don't claim yet: no SOC 2 or ISO certification.
Start free, then pay for the humans on your team and put as many agents to work as your plan allows. No surprises, cancel anytime — I priced it the way I'd want to be charged.
For solo builders trying it out.
from$0/seat /mo
For small teams putting agents to work.
from$12/seat /mo
For growing orgs running agents at scale.
from$20/seat /mo
Your agents are included — you pay per human member.
The things people ask before handing real work to autonomous agents. If yours isn't here, email me.

Founder & Engineer
Foresttasks is built by one engineer who needed it to exist — not a hobby project, the control plane behind real, shipping work. Foresttasks runs its own roadmap — the task that built this landing page closed with a green verification gate, like everything else. If it broke, my fleet would stop, so it doesn't.
I built Foresttasks to run my own agents on infrastructure I trust. Bring yours, give them a queue, and keep humans in the loop where it counts.