SQV(1)

NAME

sqvsqlite3 viewer

SYNOPSIS

$sudo apt install sqv

INFO

85 stars
5 forks
0 views

DESCRIPTION

sqlite3 viewer

README

sqv

sqv is a keyboard-first terminal viewer for SQLite databases. It is built for fast table browsing, in-place editing, filtering, sorting, and foreign-key navigation without leaving the terminal.

image
image

Highlights

  • Fast virtual scrolling for large tables
  • Rich cell editors for text, enums, dates, datetimes, and foreign keys
  • Per-column filters, sorting, and alphabet jump navigation
  • Export current views to CSV, JSON, or SQL
  • Read-only mode for safe inspection

Install

apt (GitHub Pages repository)

The project publishes an amd64 Debian package to a GitHub-hosted apt repository.

echo "deb [trusted=yes arch=amd64] https://mendrik-private.github.io/sqv stable main" \
  | sudo tee /etc/apt/sources.list.d/sqv.list
sudo apt update
sudo apt install sqv

trusted=yes is required because the repository is published from GitHub Pages without apt signing.

Release binary

Download the latest Linux binary archive from GitHub Releases and install it into /usr/local/bin:

curl -fsSL -o sqv-linux-x86_64.tar.gz \
  https://github.com/mendrik-private/sqv/releases/latest/download/sqv-linux-x86_64.tar.gz
tar -xzf sqv-linux-x86_64.tar.gz
sudo install -m 0755 sqv /usr/local/bin/sqv

From source

cargo install --path .

Or run directly from the checkout:

cargo run --release -- path/to/database.db

Usage

sqv <DB_PATH> [--readonly]
sqv check-terminal
  • DB_PATH: path to a SQLite database, or :memory:
  • --readonly: disable writes
  • check-terminal: print detected terminal capabilities

Keybindings

Navigation

KeyAction
↑ ↓ ← → / h j k lMove focused cell
Home / EndFirst / last column in row
Ctrl-Home / Ctrl-EndFirst / last cell in table
PgUp / PgDn / Ctrl-↑ / Ctrl-↓Scroll one viewport
Mouse wheelScroll rows
Shift-wheelScroll columns
Click cellFocus cell

Editing

KeyAction
EnterOpen the focused cell picker/editor
Alt-EnterInsert a newline in the direct text editor
eOpen the focused cell in the direct editor
nSet the focused cell to NULL when allowed
EscClose popup
Ctrl-EnterSave an inserted row from the staged row editor
iInsert row in a staged editor, then validate on save
dDelete row
Ctrl-zUndo last write

Filtering, sorting, and other actions

KeyAction
sCycle sort on focused column
fOpen filter popup for focused column
Shift-FClear filters
jJump through a foreign key
BackspaceJump back
Ctrl-bToggle sidebar
Ctrl-Shift-PCommand palette
Ctrl-QQuit

Configuration

Configuration is read from:

$XDG_CONFIG_HOME/sqv/config.toml

Example:

nerd_font = true

Development

Local validation

cargo fmt
cargo clippy -- -D warnings
cargo test

Release pipeline

GitHub Actions provides:

  1. CI on pushes and pull requests: format check, clippy, and tests
  2. Tagged releases on v* tags:
    • build the release binary
    • build a Debian package
    • publish GitHub Release assets
    • publish an apt repository to GitHub Pages

To cut a release:

git tag v0.1.2
git push origin v0.1.2

Before the first tagged release, enable GitHub Pages for the repository so the apt repository can be deployed from GitHub Actions. Tagged releases now wait for a successful Pages deployment before publishing release assets.

SEE ALSO

clihub4/28/2026SQV(1)