Skip to main content

๐Ÿ”Ž sleepydatapeek

Peek at local data files fast โ€” instant summaries and pretty markdown/PDF reports.

PyPI Python License

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 / --version prints 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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sleepydatapeek-2.3.3.tar.gz (30.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sleepydatapeek-2.3.3-py3-none-any.whl (34.6 kB view details)

Uploaded Python 3

File details

Details for the file sleepydatapeek-2.3.3.tar.gz.

File metadata

  • Download URL: sleepydatapeek-2.3.3.tar.gz
  • Upload date:
  • Size: 30.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.13.5 Darwin/25.5.0

File hashes

Hashes for sleepydatapeek-2.3.3.tar.gz
Algorithm Hash digest
SHA256 91fd85d95d925edade82753d4253149f0be4086ee9b0a44694a7825ddf88576e
MD5 ba870c9782057fb2b52c08be5dfb5ea8
BLAKE2b-256 65314b7c875dd6050c31d3697106923586570ea1fb728860af7093eae5bd1294

See more details on using hashes here.

File details

Details for the file sleepydatapeek-2.3.3-py3-none-any.whl.

File metadata

  • Download URL: sleepydatapeek-2.3.3-py3-none-any.whl
  • Upload date:
  • Size: 34.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.13.5 Darwin/25.5.0

File hashes

Hashes for sleepydatapeek-2.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 fbec1964005f94462b21bd287ca5e470d814811f9fbd28b171cf1b0373f6a0d9
MD5 c4547e093a046657fce400a6dda2b48e
BLAKE2b-256 b9a937027d3e4ceb80fd5c0a6cad2847fe78e670ae662f5b5e283ea5d49ddb07

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page