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"
}