sleepydatapeek is a Typer CLI for taking a quick look at tabular data files — print a tidy overview + schema + sample of any csv/parquet/json/pkl/xlsx (and metadata for pdf/images), or generate a shareable markdown + PDF report with charts.
Install
uv tool install sleepydatapeek # or: pipx install sleepydatapeek
-v/--versionprints the version and best-effort checks PyPI for a newer release — it works even when placed within another command.
Native libraries: PDF reports use WeasyPrint, which needs pango/cairo/gdk-pixbuf. On macOS: brew install pango. On Debian/Ubuntu: apt install libpango-1.0-0 libpangocairo-1.0-0 libgdk-pixbuf-2.0-0. See the WeasyPrint docs for other platforms.
Configure
sleepydatapeek is a sleepy util and reads its settings from the shared ~/sleepyconfig/params.yml, using the datapeek_ key prefix. If the file is absent it writes only its own section (below) and says so; if a value it needs is missing it prints this snippet and asks you to verify your config.
# sleepydatapeek
datapeek_sample_size: 5 # rows shown in the sample table
datapeek_table_style: rounded_grid # any tabulate style (simple, github, …)
Supported files
| Kind | Extensions |
|---|---|
| Data (schema + sample) | csv, parquet, json, pkl, xlsx |
| Metadata (file facts) | pdf, png, jpg, jpeg |
Commands
| Command | What it does |
|---|---|
summary |
Print an overview, schema, and sample of a file |
report |
Write a markdown + PDF report with charts |
about |
Print the project's PyPI + GitHub links |
summary
Print a concise overview, schema, and sample of a data file. Table style + sample size come from your config.
$ sleepydatapeek summary sales.csv
╭─────────────┬───────────╮
│ File │ sales.csv │
├─────────────┼───────────┤
│ File size │ 1.02 MB │
├─────────────┼───────────┤
│ Rows │ 15230 │
├─────────────┼───────────┤
│ Columns │ 6 │
├─────────────┼───────────┤
│ Index │ index │
├─────────────┼───────────┤
│ Index dtype │ int64 │
╰─────────────┴───────────╯
Schema
╭────────────┬─────────╮
│ order_id │ int64 │
├────────────┼─────────┤
│ region │ object │
├────────────┼─────────┤
│ product │ object │
├────────────┼─────────┤
│ quantity │ int64 │
├────────────┼─────────┤
│ revenue │ float64 │
├────────────┼─────────┤
│ ordered_at │ object │
╰────────────┴─────────╯
Sample (5 rows)
╭────┬────────────┬────────────┬───────────┬────────────┬───────────┬──────────────╮
│ │ order_id │ region │ product │ quantity │ revenue │ ordered_at │
├────┼────────────┼────────────┼───────────┼────────────┼───────────┼──────────────┤
│ 0 │ 1001 │ us-west-2 │ Widget │ 3 │ 59.97 │ 2026-01-04 │
├────┼────────────┼────────────┼───────────┼────────────┼───────────┼──────────────┤
│ 1 │ 1002 │ eu-west-1 │ Gizmo │ 1 │ 12.5 │ 2026-01-04 │
├────┼────────────┼────────────┼───────────┼────────────┼───────────┼──────────────┤
│ 2 │ 1003 │ us-west-2 │ Sprocket │ 5 │ 210 │ 2026-01-05 │
├────┼────────────┼────────────┼───────────┼────────────┼───────────┼──────────────┤
│ 3 │ 1004 │ ap-south-1 │ Widget │ 2 │ 39.98 │ 2026-01-05 │
├────┼────────────┼────────────┼───────────┼────────────┼───────────┼──────────────┤
│ 4 │ 1005 │ eu-west-1 │ Cog │ 4 │ 8 │ 2026-01-06 │
╰────┴────────────┴────────────┴───────────┴────────────┴───────────┴──────────────╯
Point it at a pdf or image instead and it prints that file's metadata (dimensions, page count, EXIF, …) in the same style. When a table is too wide, extra columns are elided with a ⚠️ too wide note.
report
Generate a markdown report + rendered PDF + summary charts for a data file. The PDF is copied to your clipboard (macOS) so it's ready to paste. --groupby <column> adds a grouped row-count table; the output folder defaults to <file>_report.
$ sleepydatapeek report sales.csv --groupby region
Report folder: /Users/dingus/work/sales_report
Relative path: sales_report
markdown: sales.md
pdf: sales.pdf
PDF copied to clipboard — ready to paste.
Open with Zed: zed /Users/dingus/work/sales_report
Open with VS Code: code /Users/dingus/work/sales_report
Open PDF: open /Users/dingus/work/sales_report/sales.pdf
Reveal in Finder: open -R /Users/dingus/work/sales_report/sales.pdf
The folder gets the markdown, the PDF, and chart PNGs (null-counts and distinct-counts per column). report only accepts data files.
about
Print the installed version alongside the project's public PyPI and GitHub links.
$ sleepydatapeek about
sleepydatapeek 2.3.1
PyPI: https://pypi.org/project/sleepydatapeek/
GitHub: https://github.com/anthonybench/datapeek
Development
uv venv
uv pip install -e ".[dev]"
uv run pytest # or ./tools/test.sh
Documentation
- Specification — what the tool does
- Project outline — repository layout
- Test drive — setup, testing, and CLI usage
- Adding a command — how to extend the CLI
- Publishing — release to PyPI
Metadata
Release files for sleepydatapeek 2.3.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| sleepydatapeek-2.3.3.tar.gz | 30.0 kB | Without provenance | Details for sleepydatapeek-2.3.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| sleepydatapeek-2.3.3-py3-none-any.whl | Python 3 | none | any | Details for sleepydatapeek-2.3.3-py3-none-any.whl |
Total release size: 64.6 kB
Release files / sleepydatapeek-2.3.3.tar.gz
| Download URL | sleepydatapeek-2.3.3.tar.gz |
|---|---|
| Size | 30.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
91fd85d95d925edade82753d4253149f0be4086ee9b0a44694a7825ddf88576e
|
|
BLAKE2b-256 checksum How to use checksums |
65314b7c875dd6050c31d3697106923586570ea1fb728860af7093eae5bd1294
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.4.1 CPython/3.13.5 Darwin/25.5.0
|
Release files / sleepydatapeek-2.3.3-py3-none-any.whl
| Download URL | sleepydatapeek-2.3.3-py3-none-any.whl |
|---|---|
| Size | 34.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fbec1964005f94462b21bd287ca5e470d814811f9fbd28b171cf1b0373f6a0d9
|
|
BLAKE2b-256 checksum How to use checksums |
b9a937027d3e4ceb80fd5c0a6cad2847fe78e670ae662f5b5e283ea5d49ddb07
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.4.1 CPython/3.13.5 Darwin/25.5.0
|
Security for sleepydatapeek 2.3.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.