AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
Turso Cloud is a fully managed, SQLite-compatible database platform designed for network-accessible applications. This skill provides a centralized resource for developers to connect their applications to Turso Cloud using various language-specific SDKs, manage authentication and authorization, and integrate with platforms like Vercel. It covers both remote-only access and local-first synchronization patterns, alongside advanced database features like vector search, branching, and point-in-time recovery.
What it does
- Provides SDK integration guides for JavaScript, TypeScript, Python, Go, and Rust.
- Details authentication and authorization workflows, including JWT scoping and external provider integration.
- Explains how to manage Turso Cloud resources within Vercel projects.
- Covers advanced database features including vector search, full-text search, and embedded replicas.
- Outlines database management tasks like branching and point-in-time recovery.
- Offers guidance on using built-in SQLite extensions for enhanced functionality.
When to use it
- When you need to connect a web, mobile, or backend application to a Turso Cloud database.
- When implementing secure access control, such as fine-grained permissions or JWKS-based authentication.
- When deploying applications on Vercel that require a managed SQLite-compatible database.
- When building AI or RAG applications that require native vector search and embedding storage.
- When you need to set up local-first synchronization for offline-capable applications.
Advantages
- Supports multiple popular programming languages with dedicated SDKs.
- Simplifies complex tasks like authentication scoping and Vercel integration.
- Provides clear paths for both remote-only and local-first database architectures.
- Centralizes documentation for advanced features like vector search and branching.
Usage examples
- “How do I connect my Node.js application to a Turso database?”
- The agent provides instructions on using the @tursodatabase/serverless SDK, including setup for remote queries, batches, and transactions.
- “Explain how to set up fine-grained permissions for a Turso database.”
- The agent guides you through creating scoped auth tokens, including read-only access or per-table restrictions.
- “How can I use Turso for vector search in my Python app?”
- The agent explains how to leverage native vector types and distance functions within the Python SDK for AI-driven workflows.
- “I am using Vercel; how do I link my project to a Turso database?”
- The agent details the Vercel Marketplace integration, including environment variable injection and resource management via the Vercel CLI.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/tursodatabase/turso-cloud/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip turso-cloud.zip -d .agents/skills
Documentation by Turso
Turso Cloud Skills
This skill combines documentation for working with Turso Cloud, the fully managed SQLite-compatible database platform. Pick the relevant sub-skill below.
turso-cloud-js
Work with the @tursodatabase/serverless TypeScript/JavaScript SDK for remote Turso Cloud databases — queries, positional/named parameters, batches, and interactive transactions — plus the local-first sync family (@tursodatabase/sync, -wasm, -react-native). Use when connecting to Turso Cloud from Node.js, serverless/edge functions, browsers, or React Native.
turso-cloud-py
Work with Turso Cloud from Python: pyturso for local-first databases that sync with the cloud, and libsql for remote-only access over the libsql protocol. Use when connecting Python applications to Turso Cloud.
turso-cloud-go
Work with Turso Cloud from Go: tursogo for local-first databases that sync with the cloud, and libsql-client-go for remote-only access over the libsql protocol. Use when connecting Go applications to Turso Cloud.
turso-cloud-rust
Work with Turso Cloud from Rust: the turso crate (sync feature) for local-first databases that sync with the cloud, and the libsql crate for remote-only access over the libsql protocol. Use when connecting Rust applications to Turso Cloud.
turso-cloud-auth
Authenticate and authorize access to Turso Cloud databases: database URLs, platform tokens via the Turso CLI, scoping (group/database/read-only/time-limited), fine-grained per-table permissions, external auth providers via JWKS (Clerk, Auth0), and token invalidation. Use when issuing credentials, restricting what a client can do, or wiring an existing auth provider to Turso.
turso-cloud-vercel
Use and manage Turso Cloud databases provisioned through the Vercel Marketplace (integration slug tursocloud): injected environment variables, inspecting and provisioning resources with the Vercel CLI, region selection, and safety rules for credentials and destructive operations. Use when a Vercel project has — or needs — a Turso database.
Turso Cloud features
Turso Cloud databases support these features out of the box:
Vector search — native similarity search for AI/RAG workflows, no extensions needed. Supports cosine, L2, and L1 distance functions with DiskANN indexing.
Full-text search — keyword search with BM25 ranking via built-in FTS support.
AI & embeddings — native vector types for storing and querying embeddings.
Branching — create isolated copy-on-write database branches for testing/staging.
Point-in-time recovery — restore databases to any previous point in time (retention depends on plan).
Embedded replicas — local replicas that sync with Turso Cloud for fast reads and offline support.
SQLite extensions — JSON, FTS5, R*Tree, SQLean, UUID, regexp.
Further reading
Turso online docs — https://docs.turso.tech (Mintlify — append .md to any URL path for raw markdown, e.g. https://docs.turso.tech/sdk/ts/quickstart.md). Each sub-skill carries its own docs links; general references:
| Topic | URL |
|---|---|
| AI & embeddings | https://docs.turso.tech/features/ai-and-embeddings.md |
| Embedded replicas | https://docs.turso.tech/features/embedded-replicas/introduction.md |
| Cloud limitations | https://docs.turso.tech/cloud/limitations.md |
| SQLite extensions | https://docs.turso.tech/features/sqlite-extensions.md |
| Full docs index (for LLMs) | https://docs.turso.tech/llms.txt |
Files
- ATTRIBUTION.mdAdded by AutoGineer865 B
- LICENSELicence file added by AutoGineer1.0 KiB
- SKILL.md4.1 KiB
- turso-cloud-auth/overview.md6.4 KiB
- turso-cloud-go/overview.md2.6 KiB
- turso-cloud-js/overview.md3.1 KiB
- turso-cloud-py/overview.md1.9 KiB
- turso-cloud-rust/overview.md2.5 KiB
- turso-cloud-vercel/overview.md7.1 KiB
turso-cloud-auth/overview.md
Authentication & Authorization
Turso Cloud uses scoped, JWT-based tokens to control access to databases. Every token can be restricted by database, permission level, and expiration.
Database URL
If the database was provisioned through an integration or marketplace, its URL (and auth token) is usually already injected into the project's environment — prefer those variables over constructing anything by hand. Otherwise, find the database URL with the Turso CLI (turso db show <database-name> --url) or the Platform API. It looks like:
# libSQL protocol (SDK default)
libsql://[DB-NAME]-[ORG-NAME].turso.io
# HTTPS
https://[DB-NAME]-[ORG-NAME].turso.ioWebSockets generally perform better when keeping a socket open for multiple queries; HTTP is typically more efficient for single queries — benchmark both when it matters.
Auth tokens
SDKs require an auth token unless working against a local database. Tokens are passed as authToken when creating a client:
import { connect } from "@tursodatabase/serverless";
const conn = connect({
url: "<your-database-url>",
authToken: "<your-token>",
});Scoping levels
Tokens are scoped at multiple levels, from broad to narrow, and the levels can be combined:
| Level | Scope | How to create |
|---|---|---|
| Group | Access all databases in a group | turso group tokens create <group> |
| Database | Access a single database | turso db tokens create <database> |
| Read-only | Queries only, no writes | Add --read-only flag |
| Table + Action | Specific tables and operations | Add -p <table>:<actions> flag |
| Time-limited | Auto-expires after a duration | Add --expiration 7d flag |
# Read-only token scoped to a single database, expiring in 7 days
turso db tokens create mydb --read-only --expiration 7d
# Token that only allows reading all tables and inserting into `comments`
turso db tokens create mydb \
-p all:data_read \
-p comments:data_addPlatform tokens (CLI / API)
# Token for a single database
turso db tokens create <database-name>
# Token for all databases in a group
turso group tokens create <group-name>| Flag | Description |
|---|---|
-r, --read-only | Create a read-only token (queries only, no writes) |
-p, --permissions | Set fine-grained permissions per table and action |
-e, --expiration | Set token expiration (never, 7d, 30d, etc.) |
Tokens can also be created via the Platform API (https://docs.turso.tech/api-reference/databases/create-token.md).
Fine-grained permissions
Permissions follow the format <table-name|all>:<action1>,<action2> and work with both CLI-generated and JWKS-issued tokens:
# Read-only access to all tables
turso db tokens create mydb -p all:data_read
# Specific actions on a specific table
turso db tokens create mydb -p users:data_read,data_update
# Multiple permission rules
turso db tokens create mydb \
-p all:data_read \
-p comments:data_add,data_update \
-p posts:data_add,data_update,data_deleteAvailable actions:
| Action | Description |
|---|---|
data_read | Read data from tables |
data_add | Insert new rows |
data_update | Update existing rows |
data_delete | Delete rows |
schema_add | Create new tables |
schema_update | Modify table schemas |
schema_delete | Drop tables |
Note:
data_readis allowed on SQLite system tables (e.g.,sqlite_master,sqlite_schema) by default, so users can query database metadata.
Role-based access example — grant different permissions per user role (with JWKS, permissions are embedded in the JWT based on user metadata from the auth provider):
| Role | Permissions |
|---|---|
| Admin | all:data_read,data_add,data_update,data_delete,schema_add,schema_update,schema_delete |
| Moderator | all:data_read,data_update |
| User | all:data_read |
External auth providers (JWKS)
Instead of managing tokens manually, let an authentication provider issue JWT tokens using JWKS. During the Turso beta, only Clerk and Auth0 are supported as OIDC providers.
Generate a JWT template and copy it into the auth provider's JWT configuration:
# Full access to a database turso org jwks template --database <database-name> --scope full-access # Read-only access to a group turso org jwks template --group <group-name> --scope read-only # Fine-grained permissions turso org jwks template \ --database <database-name> \ --permissions all:data_read \ --permissions comments:data_addRegister the provider's JWKS endpoint with the Turso organization (also possible from the Turso dashboard under organization settings):
turso org jwks save <name> <url> # e.g. with Clerk: turso org jwks save clerk https://your-app.clerk.accounts.dev/.well-known/jwks.jsonUse the provider-issued JWT as the
authToken:import { connect } from "@tursodatabase/serverless"; const authToken = await getAuthToken(); // e.g., from Clerk, Auth0 const conn = connect({ url: "<your-database-url>", authToken, });
Warning: Without a JWT template with specific permissions, generated tokens have access to all databases in all groups by default.
Manage registered endpoints:
turso org jwks list
turso org jwks remove <name>Invalidating tokens
Invalidating rotates the signing keys — all previously issued tokens for the target stop working, so every consumer must receive a new token:
# Invalidate all database-scoped tokens for a database
turso db tokens invalidate <database-name>
# Invalidate all group-scoped tokens for a group
turso group tokens invalidate <group-name>Group tokens and database tokens are invalidated independently: invalidating a group's tokens does not invalidate database-scoped tokens for databases in that group, and invalidating a database's tokens does not invalidate group tokens (which keep working against that database).
Docs
| Topic | URL |
|---|---|
| Authentication | https://docs.turso.tech/sdk/authentication.md |
| Authorization overview | https://docs.turso.tech/sdk/authorization.md |
| Platform tokens | https://docs.turso.tech/sdk/authorization/tokens.md |
| Fine-grained permissions | https://docs.turso.tech/sdk/authorization/fine-grained-permissions.md |
| External auth providers (JWKS) | https://docs.turso.tech/sdk/authorization/jwks.md |
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Security
What our scanner noticed· Low risk
- Instructions that use the network
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- Turso
- Publisher
- Turso (Official)
- Source
- tursodatabase/agent-skills · skills/turso-cloud · commit 34ced52
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Turso.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download turso-cloud.zip