docs/sql-reference/cli/command-line-options.mdx
tursodb [OPTIONS] [DATABASE] [SQL]
| 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 |
# 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
-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, --quietSuppress the startup banner and version information.
tursodb -q mydata.db
-e, --echoPrint each SQL statement before executing it. Useful for debugging scripts.
echo "SELECT 42;" | tursodb -q -e
SELECT 42;
42
-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) |
tursodb -v memory
-t, --tracing-output <PATH>Write internal log traces to a file. Useful for debugging and performance analysis.
tursodb -t trace.log mydata.db
--readonlyOpen 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
--mcpStart 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.
tursodb --mcp mydata.db
--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
These flags enable features that are still under development. They may change or be removed in future releases.
<Warning> Experimental features may have incomplete implementations or known limitations. Use them for testing and development only. </Warning>| 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
| Flag | Description |
|---|---|
--unsafe-testing | Enable unsafe testing features (e.g., sqlite_dbpage writes) |
-h, --help | Print usage help |
-V, --version | Print version information |