databow GitHub Release GitHub Actions Workflow Status GitHub License
A command-line tool for querying databases via ADBC.
- Multi-database support - Connect to any database with a compatible ADBC driver
- Interactive SQL shell - Execute SQL queries with command history and intuitive navigation
- Syntax highlighting - SQL queries highlighted for improved readability
- Formatted output - Results displayed in clean, aligned tables with dynamic column width
- File export - Export query results to JSON, CSV, or Arrow IPC files
- Fast and lightweight - Built in Rust for high performance and minimal resource usage
Install with uv:
uv tool install databow
Install with Cargo:
cargo install databow
Install the DuckDB ADBC driver with dbc:
dbc install duckdb
Connect to DuckDB (in-memory):
databow --driver duckdb
Execute SQL queries:
> CREATE TABLE penguins AS FROM 'https://blobs.duckdb.org/data/penguins.csv';
┌───────┐
│ Count │
├───────┤
│ 344 │
└───────┘
> SELECT *
. FROM penguins
. LIMIT 5;
┌─────────┬───────────┬────────────────┬───────────────┬───────────────────┬─────────────┬────────┬──────┐
│ species │ island │ bill_length_mm │ bill_depth_mm │ flipper_length_mm │ body_mass_g │ sex │ year │
├─────────┼───────────┼────────────────┼───────────────┼───────────────────┼─────────────┼────────┼──────┤
│ Adelie │ Torgersen │ 39.1 │ 18.7 │ 181 │ 3750 │ male │ 2007 │
│ Adelie │ Torgersen │ 39.5 │ 17.4 │ 186 │ 3800 │ female │ 2007 │
│ Adelie │ Torgersen │ 40.3 │ 18 │ 195 │ 3250 │ female │ 2007 │
│ Adelie │ Torgersen │ NA │ NA │ NA │ NA │ NA │ 2007 │
│ Adelie │ Torgersen │ 36.7 │ 19.3 │ 193 │ 3450 │ female │ 2007 │
└─────────┴───────────┴────────────────┴───────────────┴───────────────────┴─────────────┴────────┴──────┘
Execute a query directly and exit:
databow --driver duckdb --query "SELECT 42 AS the_answer"Execute a query from stdin and exit:
echo "SELECT 42 AS the_answer" | databow --driver duckdb
Execute a query from a file and exit:
databow --driver duckdb --file select_example.sql
Execute a query and output the result to a file:
databow --driver duckdb --query "SELECT 42 AS the_answer" --output result.json databow --driver duckdb --query "SELECT 42 AS the_answer" --output result.csv databow --driver duckdb --query "SELECT 42 AS the_answer" --output result.arrow
$ databow --help Query databases via ADBC Usage: databow [OPTIONS] Options: --profile <profile> Connection profile name or path --driver <driver> Driver name (required if --profile not specified) --uri <uri> Database uniform resource identifier --username <username> Database user username --password <password> Database user password --option <option> Driver-specific database option --mode <mode> Table display style [default: utf8-compact] --query <query> Execute query and exit --file <file> Read and execute file and exit --output <file> Write result to file -h, --help Print help -V, --version Print version
This project is licensed under Apache-2.0.