{"id":48433817,"url":"https://github.com/gonzalofuentes28/dpeek","last_synced_at":"2026-04-06T12:00:59.168Z","repository":{"id":349506353,"uuid":"1201951571","full_name":"GonzaloFuentes28/dpeek","owner":"GonzaloFuentes28","description":"Interactive terminal data viewer for CSV, TSV, JSON, and JSONL files","archived":false,"fork":false,"pushed_at":"2026-04-06T10:05:27.000Z","size":318,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-06T10:21:50.475Z","etag":null,"topics":["bubbletea","cli","csv","csv-viewer","data-analysis","data-viewer","golang","json","json-viewer","sqlite","terminal","tui"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GonzaloFuentes28.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-05T11:45:02.000Z","updated_at":"2026-04-06T10:08:44.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/GonzaloFuentes28/dpeek","commit_stats":null,"previous_names":["gonzalofuentes28/dpeek"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/GonzaloFuentes28/dpeek","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GonzaloFuentes28%2Fdpeek","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GonzaloFuentes28%2Fdpeek/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GonzaloFuentes28%2Fdpeek/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GonzaloFuentes28%2Fdpeek/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GonzaloFuentes28","download_url":"https://codeload.github.com/GonzaloFuentes28/dpeek/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GonzaloFuentes28%2Fdpeek/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31471466,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T08:36:52.050Z","status":"ssl_error","status_checked_at":"2026-04-06T08:36:51.267Z","response_time":112,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bubbletea","cli","csv","csv-viewer","data-analysis","data-viewer","golang","json","json-viewer","sqlite","terminal","tui"],"created_at":"2026-04-06T12:00:58.480Z","updated_at":"2026-04-06T12:00:59.154Z","avatar_url":"https://github.com/GonzaloFuentes28.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dpeek\n\nInteractive terminal data viewer and editor for CSV, TSV, JSON, and JSONL files.\n\n![demo](demo.gif)\n\n[![CI](https://github.com/GonzaloFuentes28/dpeek/actions/workflows/ci.yml/badge.svg)](https://github.com/GonzaloFuentes28/dpeek/actions/workflows/ci.yml)\n[![Release](https://img.shields.io/github/v/release/GonzaloFuentes28/dpeek)](https://github.com/GonzaloFuentes28/dpeek/releases/latest)\n![Go 1.24+](https://img.shields.io/badge/go-1.24%2B-blue)\n[![License: MIT](https://img.shields.io/badge/license-MIT-green)](LICENSE)\n[![Homebrew](https://img.shields.io/badge/homebrew-tap-orange)](https://github.com/GonzaloFuentes28/homebrew-tap)\n\n## What it does\n\n`dpeek` opens data files in an interactive TUI — like htop, but for your data. Navigate, search, filter, sort, edit, query with SQL, and save — all from the terminal.\n\n## Why dpeek?\n\n| | dpeek | csvlens | visidata | Miller |\n|---|---|---|---|---|\n| CSV/TSV viewer | Yes | Yes | Yes | Yes |\n| JSON/JSONL viewer | Yes | No | Yes | Yes |\n| Cell editing + save | Yes | No | Yes | No |\n| SQL queries | Yes | No | Yes | No |\n| Column statistics + charts | Yes | No | Yes | No |\n| Search \u0026 replace (regex) | Yes | No | Yes | Yes |\n| Undo/Redo | Yes | No | Yes | No |\n| Stdin piping | Yes | Yes | Yes | Yes |\n| Progressive loading | Yes | Yes | No | Yes |\n| Single binary, zero config | Yes | Yes | No | Yes |\n| Mouse support | Yes | No | Yes | No |\n| Homebrew install | Yes | Yes | Yes | Yes |\n\n## Features\n\n- **View** CSV, TSV, JSON, and JSONL files with smooth scrolling\n- **Edit** cells (CSV/TSV) or leaf values (JSON) inline\n- **Search** with substring or regex (`/pattern`)\n- **Filter** rows globally or by column (`col:value`)\n- **Sort** by any column with ascending/descending toggle\n- **Column statistics** — type, nulls, min/max, unique count, mean, histograms\n- **SQL queries** — full SQLite on CSV/TSV data (`:` to open, table name: `data`)\n- **Search \u0026 replace** — Ctrl+H with regex support\n- **Undo/Redo** — full edit history with Ctrl+Z / Ctrl+Y\n- **Copy/Paste** — clipboard integration with `y` / `p`\n- **Stdin support** — `cat data.csv | dpeek` or pipe from any command\n- **Remote files** — `dpeek https://example.com/data.csv` downloads and opens\n- **Mouse support** — click to navigate, scroll wheel, horizontal scroll\n- **Progressive loading** — large files (\u003e5MB) load in background chunks\n- **Save** modified files back to disk (F2 / Ctrl+S)\n- **Unsaved changes protection** — quit confirmation when modified\n\n## Installation\n\n### Homebrew (macOS/Linux)\n\n```bash\nbrew tap GonzaloFuentes28/tap\nbrew install dpeek\n```\n\n### From source\n\n```bash\ngit clone https://github.com/GonzaloFuentes28/dpeek.git\ncd dpeek\nmake install\n```\n\nRequires Go 1.24+.\n\n### Debian/Ubuntu (.deb)\n\n```bash\n# Download the latest .deb from the releases page\ncurl -LO https://github.com/GonzaloFuentes28/dpeek/releases/latest/download/dpeek_amd64.deb\nsudo dpkg -i dpeek_amd64.deb\n```\n\n### Fedora/RHEL (.rpm)\n\n```bash\n# Download the latest .rpm from the releases page\ncurl -LO https://github.com/GonzaloFuentes28/dpeek/releases/latest/download/dpeek_amd64.rpm\nsudo rpm -i dpeek_amd64.rpm\n```\n\n### Go install\n\n```bash\ngo install github.com/GonzaloFuentes28/dpeek/cmd/dpeek@latest\n```\n\n### From binary\n\nDownload the latest release from the [releases page](https://github.com/GonzaloFuentes28/dpeek/releases) and extract it to your PATH.\n\n## Usage\n\n```bash\ndpeek data.csv              # Open a CSV file\ndpeek data.tsv              # Open a TSV file\ndpeek config.json           # Open a JSON file\ndpeek logs.jsonl            # Open a JSONL file\ndpeek data.txt --delimiter \";\"  # Custom delimiter\ndpeek data.csv --no-header      # First row as data, not header\ndpeek --version                 # Show version\ncat data.csv | dpeek        # Read from stdin\ncurl -s url | dpeek         # Pipe from any command\ndpeek https://example.com/data.csv  # Open remote file\n```\n\n## Keyboard shortcuts\n\n### Navigation\n\n| Key | Action |\n|-----|--------|\n| `↑↓←→` / `hjkl` | Navigate cells or nodes |\n| `PgUp` / `PgDn` | Scroll one page up or down |\n| `Home` / `End` | Jump to first or last cell/node |\n| `Ctrl+G` | Go to row / column name / row:col |\n\n### Editing\n\n| Key | Action |\n|-----|--------|\n| `Enter` | Edit cell (CSV) or toggle/edit node (JSON) |\n| `Tab` | Confirm edit, move to next cell/leaf |\n| `Esc` | Cancel edit or close overlay |\n| `Ctrl+Z` | Undo |\n| `Ctrl+Y` | Redo |\n| `y` | Copy cell/node value to clipboard |\n| `p` | Paste from clipboard |\n\n### Features\n\n| Key | Action |\n|-----|--------|\n| `F1` | Toggle help overlay |\n| `F2` / `Ctrl+S` | Save file |\n| `F3` / `/` | Search (prefix `/` for regex, e.g. `/^foo`) |\n| `Ctrl+H` | Search \u0026 replace (uses current search query) |\n| `:` | SQL query (CSV/TSV only, table name: `data`) |\n| `F4` | Filter rows (`col:value` for column filter) |\n| `F5` | Sort by current column (CSV only) |\n| `F6` | Column statistics (CSV only) |\n| `n` / `N` | Next / previous search match |\n| `e` | Expand all nodes (JSON only) |\n| `c` | Collapse all nodes (JSON only) |\n\n### Quitting\n\n| Key | Action |\n|-----|--------|\n| `F10` / `q` / `Esc` | Quit (prompts if unsaved changes) |\n| `Ctrl+C` | Force quit without confirmation |\n\n## Supported formats\n\n| Format | Extensions | Features |\n|--------|-----------|----------|\n| CSV | `.csv` | View, edit, search, filter, sort, stats, SQL, save |\n| TSV | `.tsv` | Same as CSV with tab delimiter |\n| JSON | `.json` | View, edit leaves, search, expand/collapse, save |\n| JSONL | `.jsonl` | Each line as array item, same features as JSON |\n\n## SQL queries (CSV/TSV)\n\nPress `:` to open the SQL prompt. The table is always named `data` with columns matching your CSV headers.\n\n```sql\n-- Filter and sort\nSELECT name, salary FROM data WHERE age \u003e 30 ORDER BY salary DESC\n\n-- Aggregations\nSELECT city, COUNT(*), AVG(salary) FROM data GROUP BY city\n\n-- Subqueries\nSELECT * FROM data WHERE salary \u003e (SELECT AVG(salary) FROM data)\n\n-- Window functions\nSELECT name, salary, RANK() OVER (ORDER BY salary DESC) FROM data\n\n-- String functions\nSELECT UPPER(name), LENGTH(city) FROM data WHERE city LIKE '%a%'\n```\n\nPress `Esc` or `q` to go back to the original data. Press `:` again to edit the query.\n\n## Man page\n\nA man page is included. After installation via Homebrew or `make install-local`:\n\n```bash\nman dpeek\n```\n\n## Building\n\n```bash\nmake build      # Build binary\nmake test       # Run tests\nmake lint       # Run golangci-lint\nmake clean      # Remove build artifacts\n```\n\n## License\n\n[MIT](LICENSE) — Gonzalo Fuentes\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgonzalofuentes28%2Fdpeek","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgonzalofuentes28%2Fdpeek","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgonzalofuentes28%2Fdpeek/lists"}