Sqlite‑TUI (binary: sqlite-editor) is a fast, keyboard‑first terminal UI for browsing and editing SQLite databases — smooth scrolling, inline edits, and streamlined workflows.
✨ Idea or bug? Open an issue.
❤️ Thank you to the community for your ideas, reports, and support!
- Install (from source, debug):
git clone https://github.com/Firstp1ck/Sqlite-TUI
cd Sqlite-TUI
cargo run -- ./path/to/your.db- Build (release) and run:
cargo build --release
./target/release/sqlite-editor ./path/to/your.db- Optional: install locally
cargo install --path .
sqlite-editor ./path/to/your.db- CLI help:
sqlite-editor -h
# SQLite3 TUI Editor
# Usage: sqlite-editor [OPTIONS] <DB_PATH>
# Options:
# -n, --page-size <NUM> Rows per page (default: 200)- Fast, smooth browsing
- Large tables feel responsive with in‑window smooth scrolling
- Left pane: tables; Right pane: rows of the selected table
- Inline editing
- Live, inline cell edits with a visible cursor while typing
- Supports setting NULL quickly; undo the last change
- Powerful filter & sort
- Case‑insensitive substring filter across all columns
- Cycle sort on the selected column; toggle ascending/descending
- Copy & export that just works
- Copy cell, row, or the current page (TSV) to clipboard, with file fallback
- Export CSV for the current table (respects filter/sort)
- Flexible layout
- Adjustable column widths; autosize one or all columns
- Optional cell viewer pane for full wrapped content
- Clear UX
- Concise keybinds overlay
- Focus switching between panes
- Redraws only on state change or tick for a snappy feel
- Start the app with
sqlite-editor /path/to/db.sqlite. - Use the Tables pane (left) to pick a table (↑/↓, Enter).
- Navigate rows/columns in the Data pane (right).
- Press
eto edit a cell,Enterto save, orEscto cancel. - Press
?anytime to see keybinds. Press/to filter. Uses/Sto sort. - Copy page/row/cell or export CSV as needed.
- Global
qQuitrReload current table?Toggle keybindsTabSwitch focus (Tables ⇄ Data)
- Tables
Up/DownMove selectionEnterOpen selected table
- Data navigation
Left/RightMove columnUp/Downorj/kMove rowPageUp/PageDownPrevious/Next page
- Editing
eEdit cellEnterSaveEscCancelCtrl+dSet NULLuUndo last change (per table, last change in this session)
- Filter
/Begin filter inputEnterApply filterEscClear filter (also works in normal mode)
- Sorting
sCycle sort column (based on current selection)SToggle sort direction (Asc/Desc)
- Copy & export
cCopy current cell (TSV)CCopy current row (TSV)Ctrl+CCopy current page (TSV)EExport CSV (respects filter/sort)
- Width & viewer
+or=Wider column-or_Narrower columnaAutosize current columnAAutosize all columnsvToggle cell viewer pane
- Edits don’t save
- Editing requires a
rowid-backed table. Editing the__rowid__column itself is not supported. - Tables created WITHOUT ROWID are not yet supported for inline edits/undo.
- Editing requires a
- Clipboard copy doesn’t work
- The app tries several clipboard tools. Install one:
- Wayland:
wl-clipboard(wl-copy) - X11:
xcliporxsel - macOS:
pbcopy - Windows: built-in
clip
- Wayland:
- If none is found, the app writes content to a temp file and shows its path.
- The app tries several clipboard tools. Install one:
- Paths starting with a dash
- Use
--before the DB path, e.g.sqlite-editor -- --/path/starting/with/dash.db.
- Use
- UI feels busy or cramped
- Close overlays (
?) or the cell viewer (v), or reduce visible rows with-n.
- Close overlays (
- PK/unique‑key aware edits (support for WITHOUT ROWID/composite keys)
- Basic schema viewer and safe schema operations
- Query console tab and richer export formats (TSV/JSON scopes)
- Additional clipboard and export integrations
- Built with:
- Clipboard helpers: tries common system tools (wl-copy, xclip, xsel, pbcopy, clip).
- Thanks to the Rust and TUI communities for inspiration and examples.
MIT — see LICENSE.