Skip to main content
You have a database, and you want an AI agent to edit the same rows your users are editing — without the two clobbering each other’s work. Ablo gives the agent a narrow, audited write path: you declare your models, then everyone (React components, server actions, and agents) calls the same ablo.deck.update(...). Ablo streams confirmed changes to everyone live and rejects any write based on stale data. The flow is four steps: declare your models, read the current rows, claim the row you’re about to change, then write — and the write is rejected if someone changed the row first.
// The same call, whether a person, a server action, or an agent makes it.
await ablo.deck.update({ id: deckId, data: { title: "Q3 Strategy" } });
Claims don’t lock. If another writer holds the row, claim waits for them, re-reads the fresh row, then hands it to you — so two writers serialize instead of clobbering.

What you get

Three things stay true no matter how you use Ablo:
  • One model API for every actor. ablo.<model>.update(...) is the call from React components, server actions, background workers, and AI agents alike. No separate “agent SDK,” no parallel mutation path. Attribution comes from the credential, not the call site.
  • You declare tenancy scopes once. Tenancy / per-entity scope prefixes (org:, deck:, or your own region: / customer:) are declared once on the schema’s identityRoles, so application code never builds an org:123 string by hand — which keeps tenant boundaries from leaking.
  • Stale writes are rejected. If the row changed after you read it, your write is turned away instead of silently overwriting the change you didn’t see.

Start here

  • Quickstart — Make your first schema-backed write.
  • Schema Contract — One schema becomes typed model clients, React reads, agent writes, Data Source shape, and schema push.
  • CLI & Migrationsinit / migrate / push / generate, the shared Zod→Postgres type map, and structured migration errors.
  • Identity & Sync Groups — Use your own authentication; tell Ablo who’s connecting and how org / team / user map to sync-group scope.
  • Integration Guide — Connect your database via Data Source, plus React, multiplayer, and agent patterns.
  • Guarantees — What confirmed writes, stale checks, and claims guarantee.
  • Interaction Model — The schema, claim, update, confirmation loop.
  • API Reference — Model-by-model method shape.
  • Client Behavior — Options, errors, retries, timeouts, and imports.
  • Debugging & Logs — Turn on the [Ablo] coordination trace (debug / logLevel) to watch claims, queueing, and grants while you build — or read the same activity in code via ClaimLog to render an activity feed.
  • Connect Your Database — Keep canonical rows in your app database without giving Ablo database credentials.
  • React — Provider, hooks, and reactive reads for React apps.
  • API Keys — Bearer tokens for the public API.

API shape

PlanePrimitivesPurpose
StateSchema, Model, Claim, ReceiptThe product path. Load, coordinate, write, confirm.
StorageData SourceYour rows live in your own database behind a signed Data Source endpoint.

Use cases

  • Let agents write to shared state — Give an AI agent scoped, revocable write access to your typed data.
  • Coordinate multiple actors — Use claims to show pre-write work across humans and agents.
  • Audit every agent action — Trace any write back to a human in one query.
  • Build collaborative editors — Humans and agents on the same record, with realtime updates and stale-read protection.
  • Meter and gate API usage — Per-key, per-team usage reports and quota enforcement.
  • Integrate with A2A and MCP — Speak the same protocols as Claude, Cursor, Gemini.

Concepts

  • Schema Contract — What the schema drives across SDK, React, agents, Data Source, and migrations.
  • Model Methods — Load and write typed state.
  • Integration Guide — The normal app path and optional pieces.
  • Guarantees — Confirmed writes, optimistic state, stale-write protection, and agent lifecycle.
  • Coordinationclaim, claim.state, and claim.queue for active work.
  • Connect Your Database — Where data lands when your app database is canonical.
  • Receipt — Confirm what landed.
  • Usage — Metering and audit dimensions.
  • Audit Log — Trace any confirmed write back to the human behind it.
  • MCP — Expose Ablo models to MCP clients (Claude, Cursor).

Examples

Runtime builds

  • @abloatai/ablo — schema-powered sync client for typed model operations, realtime claims, and receipts.

More

  • README — product overview and first example.
  • AGENTS.md — short installation guidance for coding assistants.
  • Changelog — what shipped recently.