A snappy CSV viewer TUI - peek at your data fast
Project description
csvpeek
A fast CSV viewer in your terminal - peek at your data instantly ⚡
Csvpeek is a snappy, memory-efficient CSV viewer built for speed. Powered by DuckDB for fast SQL-backed querying and Urwid for a lean terminal UI.
Features
- Fast - DuckDB streaming with LIMIT/OFFSET keeps startup instant, even with huge files
- Large File Support - Pagination handles millions of rows without breaking a sweat
- Cell Selection - Select and copy ranges with keyboard shortcuts
- Column Sorting - Sort by any column instantly
- Keyboard-First - Every action is a keystroke away
Quick Start
Installation
uv tool install csvpeek
Or install from source:
git clone https://github.com/giantatwork/csvpeek.git
cd csvpeek
pip install -e .
Windows
Install the Microsoft Visual C++ Redistributable to ensure DuckDB works on Windows
Usage
csvpeek your_data.csv
Keyboard Shortcuts
| Key | Action |
|---|---|
/ |
Open filter dialog |
r |
Reset all filters |
Ctrl+D |
Next page |
Ctrl+U |
Previous page |
s |
Sort current column |
c |
Copy selection to clipboard |
w |
Save selection to file |
Shift+Arrow |
Select cells |
Arrow Keys |
Navigate (clears selection) |
q |
Quit |
Usage Examples
Basic Viewing
Open any CSV file and start navigating immediately:
csvpeek data.csv
Filtering
- Press
/to open the filter dialog - Enter filter values for any columns
- Press
Enterto apply - Filter matches are highlighted in red
Filter modes:
- Literal mode: Case-insensitive substring search (e.g.,
scrantonmatches "Scranton") - Regex mode: Start with
/for regex patterns (e.g.,/^Jmatches names starting with J)/\d+- Contains digits/sales|eng- Contains "sales" OR "eng"/^test$- Exactly "test"- All regex patterns are case-insensitive
Sorting
- Navigate to any column
- Press
sto sort by that column - Press
sagain to toggle ascending/descending
Selection & Copy
- Position cursor on starting cell
- Hold
Shiftand use arrow keys to select a range - Press
cto copy selection as tab-separated values - Paste anywhere with
Ctrl+V
Requirements
- Python 3.12+
- DuckDB >= 1.1.0
- Urwid >= 2.1.0
- Pyperclip >= 1.9.0
License
MIT License - see LICENSE file for details
Acknowledgments
Built with amazing open-source tools:
Contact
Found a bug? Have a feature request? Open an issue!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file csvpeek-0.10.0.tar.gz.
File metadata
- Download URL: csvpeek-0.10.0.tar.gz
- Upload date:
- Size: 34.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0e0552dc533bfd4877cfca6f2c2ce74d8777e7a46e0606fa378f78c68b2b2e0
|
|
| MD5 |
b2c5a7821ec8c349ce715b0da949c7e1
|
|
| BLAKE2b-256 |
e25d3563a66d47ddf8f2ae9088a6957751d2b4a5d26681004a953cb262a22b10
|
File details
Details for the file csvpeek-0.10.0-py3-none-any.whl.
File metadata
- Download URL: csvpeek-0.10.0-py3-none-any.whl
- Upload date:
- Size: 18.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2344d602b2dd13addd1cf7e04b2a9296c5ae480bf0a17d8fdd3c86aee1720860
|
|
| MD5 |
c3a6f36258250af81be8158c82e2aac7
|
|
| BLAKE2b-256 |
6569b11abee30064001895131697e4273ec0ef70e770b046488ee168da9d6cc9
|