Durable AI agents,
from localhost to the cloud.
Write a tool and a prompt — inherit durability, human approval, metering, and replay for free. Run the whole stack locally with one command. Self-host it, or push to the cloud when you want billing. Same agent. No rewrite.
import { defineTool, defineAgent } from 'grove'const refund = defineTool({ name: 'issueRefund', inputSchema: { orderId: string, cents: number }, needsApproval: true, // pauses for a human run: (a, ctx) => stripe.refund(a, ctx.tenant),});export default defineAgent({ system: 'You handle billing disputes.', tools: [refund], // durable, replayable price: { per: 'call', usd: 0.05 },});~14 lines → a durable, approvable, billable agent.
grove dev spins up everything.
No Docker yak-shaving, no wiring services together, no API key to get started. One command brings
up the full stack and hot-reloads your code against it — the way supabase start does for Postgres.
$ grove dev ◆ temporal ready :7233 ◆ studio ready :5400 ◆ worker watching agents/ ◆ model mock (no key needed) → Studio http://localhost:5400The durable engine your agents run on. Survives restarts, retries, replays.
Chat with your agent, watch every step, approve tool calls, see cost-per-run.
Hot-reloads your agent code. Save a file, talk to the new version instantly.
A realistic built-in model so the loop runs with zero API keys. Drop your key in when ready.
Four commands from empty folder to live.
The agent you built locally is the agent that runs in the
cloud — because it is the same engine on both sides. push relocates it
and wraps hosting + billing around it. It never rewrites your code.
- 01
grove initScaffoldA new agent project — one tool, one prompt, ready to run.
- 02
grove devBuildThe whole stack comes up locally. Code against it.
- 03
grove loginConnectAuthenticate to your cloud account.
- 04
grove pushShipThe same agent goes live — hosted, billable, listed.
Run it on your own infrastructure. The SDK registers your agent in the marketplace as a link. You own the compute and the data; we just list you, with a self-hosted badge.
grove push and we run it — uptime,
scaling, and the payment system. Set your price; we meter real usage and pay you out.
The hard parts come for free.
The model is a commodity — everyone has the same frontier model. The moat is making agents reliable, safe, observable, and cheap to produce. That is infrastructure, and you inherit all of it.
Durability
Survives restarts and retries. Never half-completes — picks up exactly where it left off.
Safety
Any risky tool call can pause for a human approve / deny. Safe by default, all the way down.
Multi-tenancy
Per-call context — whose data, whose auth — that the model literally cannot see or leak.
Observability
Every turn and tool call is an inspectable, replayable event. Nothing off the record.
Metering
Usage counted at the seam, so it is billable and cappable. The same seam the marketplace bills on.
Consistency
Every agent ships the same, behaves the same, composes the same. Uniformity unlocks the rest.
Publish an agent. Set a price. Get paid.
Every agent — yours or someone else's — speaks the same contract, so agents can call other agents like building blocks. List it free or charge per call. You decide; the metering seam is already there.
- $0.02
pdf-extractorStructured data out of any PDF.
- $0.05
refund-negotiatorHandles billing disputes end-to-end.
- free
sql-explainerself-hostedPlain-English query plans.
- $0.01
inbox-triageSorts, drafts, escalates.
Build your first agent
in the next five minutes.
No account, no API key, no config. One command and you are talking to a durable agent.