Databases for all TypeScript and JS multi-tenant apps.
Turso · Docs · Quickstart · SDK Reference · Blog & Tutorials
- 🔌 Works offline with Embedded Replicas
 - 🌎 Works with remote Turso databases
 - ✨ Works with Turso AI & Vector Search
 - 🔐 Supports encryption at rest
 
npm install @libsql/clientThe example below uses Embedded Replicas and syncs every minute from Turso.
import { createClient } from "@libsql/client";
export const turso = createClient({
    url: "file:local.db",
    syncUrl: process.env.TURSO_DATABASE_URL,
    authToken: process.env.TURSO_AUTH_TOKEN,
    syncInterval: 60000,
});
await turso.batch(
    [
        "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)",
        {
            sql: "INSERT INTO users(name) VALUES (?)",
            args: ["Iku"],
        },
    ],
    "write",
);
await turso.execute({
    sql: "SELECT * FROM users WHERE id = ?",
    args: [1],
});| Example | Description | 
|---|---|
| local | Uses libsql with a local SQLite file. Creates database, inserts data, and queries. | 
| remote | Connects to a remote database. Requires environment variables for URL and auth token. | 
| sync | Demonstrates synchronization between local and remote databases. | 
| batch | Executes multiple SQL statements in a single batch operation. | 
| transactions | Shows transaction usage: starting, performing operations, and committing/rolling back. | 
| memory | Uses an in-memory SQLite database for temporary storage or fast access. | 
| vector | Works with vector embeddings, storing and querying for similarity search. | 
| encryption | Creates and uses an encrypted SQLite database, demonstrating setup and data operations. | 
| ollama | Similarity search with Ollama and Mistral. | 
Visit our official documentation.
Join us on Discord to get help using this SDK. Report security issues via email.
See the contributing guide to learn how to get involved.