SQLite databases on the edge,
built for AI agents.
One isolated SQLite database per tenant — fork a branch per agent run, per PR, per experiment. Billed only on the queries and storage they use. No per-database fee, no per-branch fee.
// npm i @persql/sdk
import { PerSQL } from "@persql/sdk";
const db = new PerSQL({ token: process.env.PERSQL_TOKEN! })
.database("acme/orders");
const { data } = await db.query<{ id: number; email: string }>(
"SELECT id, email FROM customers WHERE id = ?",
[42]
); # npm i -g @persql/cli
$ persql login
✓ Logged in as you@acme.com
$ persql db create orders --ns acme
✓ Created acme/orders (auto)
$ persql db query acme/orders "select count(*) from customers" Everything you need in one platform
Not just a database. Vectors, blobs, realtime, edge endpoints, custom domains, an MCP server, and an AI assistant — all on the same isolated SQLite per tenant.
Isolated SQLite per tenant
One Durable Object with embedded SQLite per database. A noisy tenant can never affect another tenant's data or latency.
Bearer-token API for agents
Per-token rate limits, table allowlists, idempotency keys, batched transactions. Built for Claude, ChatGPT, Cursor.
MCP server
Drop-in Model Context Protocol endpoint. Tools for list_databases, query, batch, list_tables, describe_table.
Vector search
Hybrid SQL + vectors via Cloudflare Vectorize, isolated per database. No extra service to wire up.
Blob storage
Per-database R2-backed object storage. PUT/GET/LIST/DELETE under your own keys, with signed URLs.
LISTEN/NOTIFY realtime
Subscribe to row-level changes over WebSocket. Push updates to dashboards and agents without polling.
Public HTTP endpoints
Turn a parameterized SQL statement into a /p/:ns/:db/:slug endpoint with validation, auth, and CORS.
Custom domains
CNAME api.acme.com at PerSQL. Automatic TLS via Cloudflare for SaaS. Your customers see your brand.
Backups, archives, branching
Daily R2 archives, point-in-time snapshots, fork prod to dev in seconds. Spawn unlimited branches — they're billed by usage, not by count.
AI in the console
Natural-language → SQL, query plan explanation, index advisor, schema diff. The agent path is first-class.
Edge-native, globally distributed
Auth and queries served from the closest region with sub-5ms cache hits. One platform, every continent.
Drizzle, Kysely, raw SQL
Use the ORM you already know. persql-codegen emits a Drizzle schema from a live database.
From SQL to AI agents in one stack
Reach for the surface that fits the task: a web console for humans, an SDK for your app, a CLI for your terminal, an MCP server for your agent, public HTTP endpoints for everyone else.
Pricing — only what you use
Two meters. No seat fees, no per-database fees, no plan-tier feature gates. Spawn as many databases and branches as you want — they cost nothing until they actually run queries or store data.
Per query
Every read or write across /v1 and the SDK is
metered identically, regardless of which database or
branch it hits.
Per stored GB
Storage rolls up across all your databases and branches. An empty branch costs nothing.
Everything else: $0
Branches, forks, snapshots, vectors, blobs, custom domains, MCP, public endpoints — all included. Plan tiers only change rate-limit headroom and support level.