skills/av/skills/turso-db

turso-db

SKILL.md

Turso DB

Turso is an in-process relational database engine aiming for full SQLite compatibility. Unlike client-server databases, it runs in your application's memory space with sub-microsecond read/write latencies.

Installation

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

# Via Homebrew
brew install turso

Quick Start

$ tursodb                        # transient in-memory database
$ tursodb mydata.db              # persistent database file
CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, email TEXT);
INSERT INTO users VALUES (1, 'Alice', 'alice@example.com');
SELECT * FROM users;

Core SQL

Standard SQLite-compatible SQL. See references/sql-reference.md for full statement syntax (CREATE/ALTER/DROP TABLE, INSERT, SELECT, UPDATE, DELETE, transactions).

Key differences from SQLite:

  • No multi-process/multi-threading access
  • No savepoints, triggers, or vacuum
  • Views experimental (behind --experimental-views flag)
  • UTF-8 only

JavaScript API

Install and use from Node.js:

npm i @tursodatabase/database        # native
npm i @tursodatabase/database --cpu wasm32  # WASM
import { connect } from '@tursodatabase/database';
const db = await connect('turso.db');
const row = db.prepare('SELECT 1').get();

See references/javascript-api.md for details.

Vector Search

Store embeddings and perform similarity search using built-in vector functions.

CREATE TABLE docs (id INTEGER PRIMARY KEY, content TEXT, embedding BLOB);
INSERT INTO docs VALUES (1, 'ML basics', vector32('[0.2, 0.5, 0.1]'));

SELECT content, vector_distance_cos(embedding, vector32('[0.3, 0.4, 0.2]')) AS dist
FROM docs ORDER BY dist LIMIT 5;

Supports: vector32, vector64, vector32_sparse, vector8, vector1bit. Distance functions: vector_distance_cos, vector_distance_l2, vector_distance_dot, vector_distance_jaccard.

See references/vector-search.md for all vector types, functions, and examples.

Full-Text Search (Experimental)

Tantivy-powered FTS with BM25 scoring. Requires fts feature at compile time.

CREATE INDEX fts_idx ON articles USING fts (title, body)
WITH (weights = 'title=2.0,body=1.0');

SELECT title, fts_score(title, body, 'database') as score
FROM articles
WHERE fts_match(title, body, 'database')
ORDER BY score DESC LIMIT 10;

See references/full-text-search.md for tokenizers, query syntax, and highlighting.

Advanced Features

See references/advanced-features.md for:

  • Journal modes: WAL (default) and experimental MVCC (PRAGMA journal_mode = experimental_mvcc)
  • Encryption: AES-GCM / AEGIS cipher support with --experimental-encryption flag
  • CDC: Real-time change tracking via PRAGMA unstable_capture_data_changes_conn('full')
  • Index methods: Custom data access methods (experimental, --experimental-index-method)
  • C API: SQLite C API subset with Turso extensions
Weekly Installs
4
Repository
av/skills
GitHub Stars
3
First Seen
Feb 22, 2026
Installed on
opencode4
gemini-cli4
github-copilot4
codex4
kimi-cli4
cursor4