Documentation Index
Fetch the complete documentation index at: https://docs.turso.tech/llms.txt
Use this file to discover all available pages before exploring further.
Command-Line Options
tursodb [OPTIONS] [DATABASE] [SQL]
Arguments
| Argument | Default | Description |
|---|
DATABASE | :memory: | Path to a SQLite database file. If omitted, an in-memory database is created |
SQL | — | SQL statement to execute. If provided, the shell runs the query and exits |
Examples
# In-memory database
tursodb
# Open an existing file
tursodb customers.db
# Run a query and exit
tursodb customers.db "SELECT count(*) FROM orders;"
# Pipe SQL from stdin
echo "SELECT 1 + 1;" | tursodb -q
Options
-m, --output-mode <MODE>
Set the output display format.
| Mode | Description |
|---|
pretty | Table with borders (default) |
list | Pipe-delimited values |
line | One column per line with column names |
tursodb -m list mydata.db "SELECT * FROM users;"
-o, --output <PATH>
Redirect query output to a file instead of stdout.
tursodb -o results.txt mydata.db "SELECT * FROM users;"
-q, --quiet
Suppress the startup banner and version information.
-e, --echo
Print each SQL statement before executing it. Useful for debugging scripts.
echo "SELECT 42;" | tursodb -q -e
-v, --vfs <VFS>
Select the Virtual File System backend.
| VFS | Description |
|---|
syscall | Standard OS file I/O (default) |
memory | In-memory storage |
io_uring | Linux io_uring (requires feature flag) |
-t, --tracing-output <PATH>
Write internal log traces to a file. Useful for debugging and performance analysis.
tursodb -t trace.log mydata.db
--readonly
Open the database in read-only mode. Write operations will return an error.
tursodb --readonly production.db "SELECT count(*) FROM users;"
Attempting to write in read-only mode:
tursodb --readonly production.db "INSERT INTO users VALUES (1, 'test');"
# Error: Resource is read-only
--mcp
Start a Model Context Protocol server instead of the interactive shell. This allows AI assistants and other MCP clients to interact with the database via JSON-RPC.
--sync-server <ADDRESS>
Start a sync server for database replication, listening at the given address.
tursodb --sync-server 0.0.0.0:8080 mydata.db
Experimental Feature Flags
These flags enable features that are still under development. They may change or be removed in future releases.
Experimental features may have incomplete implementations or known limitations. Use them for testing and development only.
| Flag | Description |
|---|
--experimental-views | Enable views (CREATE VIEW / DROP VIEW) |
--experimental-custom-types | Enable custom types (CREATE TYPE / DROP TYPE) |
--experimental-encryption | Enable at-rest database encryption |
--experimental-index-method | Enable custom index methods. Necessary for FTS and Sparse Vector indexes |
--experimental-autovacuum | Enable automatic database vacuuming |
--experimental-vacuum | Enable in-place VACUUM |
--experimental-triggers | Enable triggers (CREATE TRIGGER / DROP TRIGGER) |
--experimental-attach | Enable ATTACH DATABASE / DETACH DATABASE |
# Enable views, triggers, and in-place VACUUM
tursodb --experimental-views --experimental-triggers --experimental-vacuum mydata.db
Other Flags
| Flag | Description |
|---|
--unsafe-testing | Enable unsafe testing features (e.g., sqlite_dbpage writes) |
-h, --help | Print usage help |
-V, --version | Print version information |