Developers

Build on the back office.

Every Garden service exposes a typed REST API and an MCP server. We publish OpenAPI for humans, MCP descriptors for agents, and signed event streams for everyone else. SDKs in six languages share a single Rust core via WASM — your TypeScript signature byte-for-byte matches your Rust signature.

SDKs

Six languages. One Rust core.

Rust
garden-sdk
cargo add garden-sdk
TypeScript
@l1fe/garden
bun add @l1fe/garden
Go
go.l1fe.ai/garden
go get go.l1fe.ai/garden
Python
l1fe-garden
pip install l1fe-garden
Swift
l1fe-garden-swift
swift package add
Kotlin
ai.l1fe:garden
implementation
API

A representative selection.

POST /bean/v1/journalsPost a balanced journal entry
POST /bean/v1/periods/closeClose a period and seal it
GET /bean/v1/trial-balanceTrial balance for an entity & period
POST /cabbage/v1/invoicesIssue an invoice
POST /cabbage/v1/subscriptionsCreate a subscription
POST /chard/v1/paymentsAuthorize and capture a payment
POST /chard/v1/refundsRefund a payment, partial or full
POST /greenhouse/v1/transfersInitiate a transfer (returns sign envelope)
POST /greenhouse/v1/transfers/signSubmit FROST partial signatures
GET /branches/v1/balancesAuthoritative balance per connection
GET /sage/v1/screenings/{id}Sanctions and KYC screening status
POST /turnip/v1/sessions/elevateStep up a session for sensitive action
GET /vine/v1/eventsStream events with cursor pagination
POST /celery/v1/recon/draftDraft adjusting entries
POST /basil/v1/documents/renderRender a receipt, invoice, or 1099
MCP

Speak to Garden as an agent.

Every Garden service ships an MCP server. Connect your model with one line; let it browse the schema, ask for capabilities, and act under an Arsenal token.

# .mcp.json
{
  "mcpServers": {
    "garden": {
      "command": "garden",
      "args": ["mcp", "--scope", "default"],
      "env": {
        "GARDEN_DID": "did:oas:org:acme",
        "GARDEN_ACT": "arsenal:act_7d…"
      }
    }
  }
}

# Try it
garden mcp call cabbage.invoices.issue \
  --customer "did:oas:org:acme:1042-A" \
  --item '{"sku":"S-ORC","qty":1}' \
  --policy 'approval > 5000'
Webhooks · Vine

At-least-once delivery, signed envelopes, 90-day replay.

POST https://acme.example/hooks/garden
X-Garden-Event: inv.issued
X-Garden-Cursor: 92010
X-Garden-Sig: ed25519=…
X-Garden-Tenant: acme

{
  "event": "inv.issued",
  "data": {
    "invoice": "INV-2941",
    "customer": "did:oas:org:acme:1042-A",
    "total": 1482000,
    "currency": "USD",
    "bound": {
      "bean": "J-2026-04-28-04417",
      "chard": "pi_2c4f…"
    }
  },
  "ts": "2026-04-28T14:02:11Z"
}