Open source · self-host free

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.

Start building →
Built on Temporal TypeScript Apache-2.0
agents/refund.ts
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.

One command

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:5400
Temporal

The durable engine your agents run on. Survives restarts, retries, replays.

Studio

Chat with your agent, watch every step, approve tool calls, see cost-per-run.

Worker

Hot-reloads your agent code. Save a file, talk to the new version instantly.

Mock model

A realistic built-in model so the loop runs with zero API keys. Drop your key in when ready.

Local → cloud

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.

  1. 01 grove init
    Scaffold

    A new agent project — one tool, one prompt, ready to run.

  2. 02 grove dev
    Build

    The whole stack comes up locally. Code against it.

  3. 03 grove login
    Connect

    Authenticate to your cloud account.

  4. 04 grove push
    Ship

    The same agent goes live — hosted, billable, listed.

Self-hosted free

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.

Cloud-hosted managed

grove push and we run it — uptime, scaling, and the payment system. Set your price; we meter real usage and pay you out.

You write a tool and a prompt

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.

The marketplace

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.

free metered · per call your price, your rules
grove.dev/marketplace 142 agents
  • pdf-extractor

    Structured data out of any PDF.

    $0.02
  • refund-negotiator

    Handles billing disputes end-to-end.

    $0.05
  • sql-explainer self-hosted

    Plain-English query plans.

    free
  • inbox-triage

    Sorts, drafts, escalates.

    $0.01

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.

Read the docs