A terminal UI for exploring SQLite databases.
uv install
uv run sqlens path/to/database.sqlitesqlens opens databases in read-only mode.
The screen is split into two panes:
- Left — table/view list. Navigate with
↑/↓, pressEnterto focus the data table. - Right — schema, data table, row detail, and query bar.
| Key | Action |
|---|---|
s / S |
Sort focused column ASC / DESC (press again to clear) |
f |
LIKE filter on focused column (%text%) |
C |
Reset all filters and sort |
c |
Copy focused cell value to clipboard |
1–9, 0 |
Toggle visibility of columns 1–10 |
+ |
Add a custom SQL SELECT expression as an extra column |
a–z |
Remove custom expression (when expressions exist) |
Enter |
Open full cell detail view |
PgDn / PgUp |
Next / previous page (50 rows per page) |
Esc / Backspace |
Return focus to table list |
Ctrl+Q / Ctrl+C |
Quit |
●— visible column○— hidden column⊘— active LIKE filter on this column▲/▼— current sort column and direction
Press Enter on any cell to open a full-screen detail view. JSON values are automatically detected and rendered with syntax highlighting.
| Key | Action |
|---|---|
Ctrl+← / Ctrl+→ |
Previous / next column (same row) |
Ctrl+↑ / Ctrl+↓ |
Previous / next row (same column) |
c |
Copy value to clipboard |
Esc / Backspace |
Back to table |
Press f on a focused cell to open a filter input for that column. Entering text filters rows where column LIKE '%text%'. Submit empty to clear the filter for that column. Active filters are AND-ed together.
Press + to add a SQL SELECT expression as an extra column (e.g. UPPER(name) AS upper_name, json_extract(data, '$.id') AS id). Press the assigned letter key (a, b, …) to remove it.
- Python 3.10+
- Textual 8.2.7+
