Generated banner for Turso Cloud
Generated logo for Turso Cloud

Turso Cloud

TursoOfficialPublished by Turso

  • Skill
  • Tool integration
  • Cloud and DevOps
  • MIT
  • Low risk

From the author

Turso Cloud — fully managed SQLite-compatible database platform, accessed over the network. Use when connecting an application to a Turso Cloud database, creating or scoping auth tokens (JWT, fine-grained permissions, JWKS/external auth providers), or provisioning and managing cloud databases. Covers per-language SDKs (JavaScript/TypeScript, Python, Go, Rust), authentication & authorization, and marketplace integrations (Vercel).
— the description by Turso

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

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/tursodatabase/turso-cloud/download
  2. Unzip 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:

TopicURL
AI & embeddingshttps://docs.turso.tech/features/ai-and-embeddings.md
Embedded replicashttps://docs.turso.tech/features/embedded-replicas/introduction.md
Cloud limitationshttps://docs.turso.tech/cloud/limitations.md
SQLite extensionshttps://docs.turso.tech/features/sqlite-extensions.md
Full docs index (for LLMs)https://docs.turso.tech/llms.txt

Files

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.io

WebSockets 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:

LevelScopeHow to create
GroupAccess all databases in a groupturso group tokens create <group>
DatabaseAccess a single databaseturso db tokens create <database>
Read-onlyQueries only, no writesAdd --read-only flag
Table + ActionSpecific tables and operationsAdd -p <table>:<actions> flag
Time-limitedAuto-expires after a durationAdd --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_add

Platform 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>
FlagDescription
-r, --read-onlyCreate a read-only token (queries only, no writes)
-p, --permissionsSet fine-grained permissions per table and action
-e, --expirationSet 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_delete

Available actions:

ActionDescription
data_readRead data from tables
data_addInsert new rows
data_updateUpdate existing rows
data_deleteDelete rows
schema_addCreate new tables
schema_updateModify table schemas
schema_deleteDrop tables

Note: data_read is 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):

RolePermissions
Adminall:data_read,data_add,data_update,data_delete,schema_add,schema_update,schema_delete
Moderatorall:data_read,data_update
Userall: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.

  1. 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_add
  2. Register 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.json
  3. Use 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

TopicURL
Authenticationhttps://docs.turso.tech/sdk/authentication.md
Authorization overviewhttps://docs.turso.tech/sdk/authorization.md
Platform tokenshttps://docs.turso.tech/sdk/authorization/tokens.md
Fine-grained permissionshttps://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