@tursodatabase/sdk-experimental
v0.1.0
Published
Zero-config Turso database provisioning — a database for every user, agent, and tenant, on Turso Cloud or BYOC.
Readme
Name a database and start querying — it's provisioned the first time you touch it:
import { resolve } from "@tursodatabase/sdk-experimental";
import { connect } from "@tursodatabase/serverless";
// One database per agent — provisioned on first use.
const db = connect(await resolve(`agent-${agentId}`));
await db.exec("CREATE TABLE IF NOT EXISTS memories (content TEXT NOT NULL)");
await db.run("INSERT INTO memories (content) VALUES (?)", "User prefers concise answers.");Features
- Zero-config provisioning — Databases are created on first use. No dashboards, no setup steps.
- A database for everyone — Give every user, agent, or tenant their own database. Lightweight enough to multiply into millions.
- Bring your own driver —
resolve()returns a config you pass straight toconnect()from@tursodatabase/serverless, an ORM, or any libsql-compatible client. - Cloud or BYOC — Works against Turso Cloud or your own infrastructure (Bring Your Own Cloud).
Install
npm install @tursodatabase/sdk-experimental @tursodatabase/serverlessSetup
Get your Turso API token:
turso auth api-tokens mint my-app-tokenGet your organization slug:
turso org listCreate a database group for your app (or use an existing one):
turso group create my-projectSet these environment variables for your app:
TURSO_API_TOKEN=your-api-token TURSO_ORG=your-org-slug TURSO_GROUP=my-project
All databases are scoped to the configured group. You can create as many databases as you like within it, and they can only be created in and accessed from that group.
Quickstart
import { resolve } from "@tursodatabase/sdk-experimental";
import { connect } from "@tursodatabase/serverless";
// One database per tenant — provisioned automatically on first use.
const db = connect(await resolve(`tenant-${tenantId}`));
// Create tables
await db.exec(`
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT UNIQUE
)
`);
// Insert data
await db.run(
"INSERT INTO users (name, email) VALUES (?, ?)",
"Alice", "[email protected]"
);
// Query data
const users = await db.all("SELECT * FROM users");
console.log(users);Everything after connect() is the @tursodatabase/serverless SDK — prepared statements, batches, and transactions all work as documented there.
API Reference
See the Manual for the full API reference — resolve and its options, including encryption.
Documentation
Visit our official documentation for more details.
Support
Join us on Discord to get help using this SDK. Report security issues via email.
