Skip to content

Latest commit

 

History

50 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dsless

A terminal pager for parquet and JSONL. Think less, but it understands nested schemas.

dsless data.parquet
── Row 0 ──
│ id: "abc-123"
│ source:
│ │ title: ["My Page Title"]
│ │ keywords: []
│ │ rank: 4
│ axes: (3 items)
│ │   axis       │ keywords
│ │   ───────────┼─────────────────
│ │   "price"    │ ["cheap", "sale"]
│ │   "brand"    │ ["acme"]
│ │   "category" │ ["tools", "diy"]

Nested structs render as indented trees. Arrays of structs become tables. Long strings and deep nesting stay readable.

Install

curl -fsSL https://raw.githubusercontent.com/eiennohito/dsless/main/install.sh | sh

macOS (universal), Linux x86_64, Linux aarch64. Installs to ~/.local/bin.

Or from source (Rust 1.85+): cargo install --path .

Usage

dsless file.parquet            # TUI mode
dsless parquet-dir/            # reads all files in directory
dsless file.jsonl              # JSONL/NDJSON
dsless file.parquet | head     # pipe mode — plain text, no TUI
dsless -n 50 file.parquet      # limit rows (pipe default: 1000)

Format is detected from file content, not extension.

Keys

Vim-style. j/k (or arrows) move the cursor, J/K page, h/l (or arrows) select columns, g/G jump between records, q quits.

Scrolling: Ctrl-j/Ctrl-k scroll the viewport without moving the cursor. Ctrl-d/Ctrl-u for half-page.

Search: / to search, n/N for next/prev match. Searches across parquet columns directly, then highlights matching lines.

Preview: v shows an overlay of truncated fields — type the label to expand. V repeats last preview on a new record. Space previews the field under the cursor. j/k scroll inside a preview, v/Space/Esc dismiss.

Copy: Y copies to clipboard via OSC 52 — the current record (re-rendered at 100 columns), the selected cell's full value, or the preview content, depending on context. Requires a terminal that supports OSC 52 (most modern terminals; tmux needs set -g set-clipboard on).

? for the full keymap inside the TUI.

AI-assisted

Most code is AI-generated. If that bothers you, now you know.

About

A terminal pager for data-science file formats. Think less, but for parquet files with deeply nested schemas.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages