turso-db

Turso (Limbo) database helper — an in-process SQLite-compatible database written in Rust. Formerly known as libSQL / libsql. Replaces @libsql/client, libsql-experimental for Turso use cases. Works in Node.js, browser (WASM + OPFS for persistent local storage), React Native, and server-side. Features: vector search, full-text search, CDC, MVCC, encryption, remote sync. SDKs: JavaScript (@tursodatabase/database), Browser/WASM (@tursodatabase/database-wasm), React Native (@tursodatabase/sync-react-native), Rust (turso), Python (pyturso), Go (tursogo). This skill contains all SDK documentation needed to use Turso — do NOT search the web for Turso/libsql docs.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "turso-db" with this command: npx skills add sivukhin/turso-skill/sivukhin-turso-skill-turso-db

Turso Database

Turso is an in-process SQL database compatible with SQLite, written in Rust.

Never search the web for libsql or @libsql/client — those are outdated packages replaced by @tursodatabase. Read the SDK and reference files listed below — they have everything you need to write working code.

Critical Rules

Before writing any Turso code, you MUST know these constraints:

  • BETA software — not all SQLite features are implemented yet
  • No multi-process access — only one process can open a database file at a time
  • No WITHOUT ROWID tables — all tables must have a rowid
  • No vacuum — VACUUM is not supported
  • UTF-8 only — the only supported character encoding
  • WAL is the default journal mode — legacy SQLite modes (delete, truncate, persist) are not supported
  • FTS requires compile-time fts feature — not available in all builds
  • Encryption requires --experimental-encryption flag — not enabled by default
  • MVCC is experimental and not production readyPRAGMA journal_mode = experimental_mvcc
  • Vector distance: lower = closer — ORDER BY distance ASC for nearest neighbors

Feature Decision Tree

Use this to decide which reference file to load:

Need vector similarity search? (embeddings, nearest neighbors, cosine distance) → Read references/vector-search.md

Need full-text search? (keyword search, BM25 ranking, tokenizers, fts_match/fts_score) → Read references/full-text-search.md

Need to track database changes? (audit log, change feed, replication) → Read references/cdc.md

Need concurrent write transactions? (multiple writers, snapshot isolation, BEGIN CONCURRENT) → Read references/mvcc.md

Need database encryption? (encryption at rest, AES-GCM, AEGIS ciphers) → Read references/encryption.md

Need remote sync / replication? (push/pull, offline-first, Turso Cloud, embedded replicas) → Read references/sync.md

SDK Decision Tree

JavaScript / TypeScript / Node.js? → Read sdks/javascript.md

Browser / WebAssembly / WASM? → Read sdks/wasm.md

React Native / Mobile? → Read sdks/react-native.md

Rust? → Read sdks/rust.md

Python? → Read sdks/python.md

Go? → Read sdks/go.md

SDK Install Quick Reference

LanguagePackageInstall Command
JavaScript (Node.js)@tursodatabase/databasenpm i @tursodatabase/database
JavaScript Sync@tursodatabase/syncnpm i @tursodatabase/sync
WASM (Browser)@tursodatabase/database-wasmnpm i @tursodatabase/database-wasm
WASM + Sync@tursodatabase/sync-wasmnpm i @tursodatabase/sync-wasm
React Native@tursodatabase/sync-react-nativenpm i @tursodatabase/sync-react-native
Rusttursocargo add turso
Pythonpytursopip install pyturso
Gotursogogo get turso.tech/database/tursogo

CLI Quick Reference

# Install Turso CLI
curl --proto '=https' --tlsv1.2 -LsSf \
  https://github.com/tursodatabase/turso/releases/latest/download/turso_cli-installer.sh | sh

# Or via Homebrew
brew install turso

# Start interactive SQL shell
tursodb

# Open a database file
tursodb mydata.db

# Read-only mode
tursodb --readonly mydata.db

# Start MCP server
tursodb your.db --mcp

SQL Quick Reference

-- Create table
CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, email TEXT);

-- Insert
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');

-- Select
SELECT * FROM users WHERE name = 'Alice';

-- Update
UPDATE users SET email = 'new@example.com' WHERE id = 1;

-- Delete
DELETE FROM users WHERE id = 1;

-- Transactions
BEGIN TRANSACTION;
INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com');
COMMIT;

MCP Server

Turso can run as an MCP (Model Context Protocol) server:

tursodb your.db --mcp

This starts a server that exposes the database via the MCP protocol, allowing AI tools and agents to query and modify the database directly.

Complete File Index

FileDescription
SKILL.mdMain entry point — decision trees, critical rules, quick references
references/vector-search.mdVector types, distance functions, semantic search examples
references/full-text-search.mdFTS with Tantivy: tokenizers, query syntax, fts_match/fts_score/fts_highlight
references/cdc.mdChange Data Capture: modes, CDC table schema, usage examples
references/mvcc.mdMVCC: BEGIN CONCURRENT, snapshot isolation, conflict handling
references/encryption.mdPage-level encryption: ciphers, key setup, URI format
references/sync.mdRemote sync: push/pull, conflict resolution, bootstrap, WAL streaming
sdks/javascript.md@tursodatabase/database: connect, prepare, run/get/all/iterate
sdks/wasm.md@tursodatabase/database-wasm: browser WASM, OPFS, sync-wasm
sdks/react-native.md@tursodatabase/sync-react-native: mobile, sync, encryption
sdks/rust.mdturso crate: Builder, async execute/query, sync feature
sdks/python.mdpyturso: DB-API 2.0, turso.aio async, turso.sync remote
sdks/go.mdtursogo: database/sql driver, no CGO, sync driver

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

turso-db

No summary provided by upstream source.

Repository SourceNeeds Review
4-av
Coding

openclaw-version-monitor

监控 OpenClaw GitHub 版本更新,获取最新版本发布说明,翻译成中文, 并推送到 Telegram 和 Feishu。用于:(1) 定时检查版本更新 (2) 推送版本更新通知 (3) 生成中文版发布说明

Archived SourceRecently Updated
Coding

ask-claude

Delegate a task to Claude Code CLI and immediately report the result back in chat. Supports persistent sessions with full context memory. Safe execution: no data exfiltration, no external calls, file operations confined to workspace. Use when the user asks to run Claude, delegate a coding task, continue a previous Claude session, or any task benefiting from Claude Code's tools (file editing, code analysis, bash, etc.).

Archived SourceRecently Updated
Coding

ai-dating

This skill enables dating and matchmaking workflows. Use it when a user asks to make friends, find a partner, run matchmaking, or provide dating preferences/profile updates. The skill should execute `dating-cli` commands to complete profile setup, task creation/update, match checking, contact reveal, and review.

Archived SourceRecently Updated