00 — IndexJust shipped · v0.1.2

Stop opening
Google Sheets
to count rows.

A terminal spreadsheet for the moments you want the answer faster than you can open a tab. CSV, JSON, Parquet, xlsx — plus a Ctrl+K bar that turns plain English into SQL on DuckDB.

Try in browser$npx @josharsh/xeli data.csv
Status0.1.2 · stable
StackRust · Ratatui · DuckDB
Install vianpm · brew · binary
PlatformsmacOS · Linux
LicenseMIT
~/data — xeli employees.csv
xelicsvemployees.csv·30r × 7c● Dracula
R1/30   C3/7
#idnamecitydepartmentsalarystart_dateis_active
11Alice JohnsonNew YorkEngineering950002020-03-15true
22Bob SmithSan FranciscoMarketing780002019-07-22true
33Carol WilliamsChicagoEngineering1050002018-01-10true
44David BrownNew YorkSales670002021-06-01false
55Eve DavisSan FranciscoEngineering1120002017-09-14true
...25 more rows
AIshow me top 5 cities by total salary for active employees
NORMALR1/30 · C3/7 · Dracula
Ctrl+K AI · Ctrl+Q SQL · / find · f filter · s sort · g group · J join · = formula · ? help · q quit
01Features

What it actually does

01Ctrl+K

Ask in plain English. Get the answer.

xeli writes the SQL. DuckDB runs it. The table swaps to the answer.

AIshow me top 5 cities by total salary for active employees
└ generated SELECT city, SUM(salary)::INT total FROM data WHERE is_active GROUP BY city ORDER BY total DESC LIMIT 5
→ 5 rows · 12 msok
02

DuckDB underneath

5 GB Parquet? Fine. Vectorized in-process engine. No server, no schema.

03
g

Group-by + pivot

Pick columns. Pick aggregation. Enter.

04

Eight formats

CSV, TSV, JSON, JSONL, Parquet, xlsx, stdin pipe, file picker.

05
hjkl

Vim grammar

The keys you already know. Mouse if you must.

02Spec sheet

The fine print

Everything you'd want printed on the back of the box if xeli came in a box.

Version
0.1.2 · May 2026
Stack
Rust · Ratatui · DuckDB
Source
~3,000 lines · MIT
Binary size
~2 MB · 0 runtime deps
Formats
CSV, TSV, JSON, JSONL, Parquet, xlsx, stdin, picker
Platforms
macOS arm64 · macOS x86_64 · Linux arm64 · Linux x86_64
AI providers
Anthropic Claude · OpenAI GPT (BYOK)
Themes
Dracula · Nord · Catppuccin · Tokyo Night · Solarized
03Install

One line. macOS or Linux.

npm$npx @josharsh/xeli data.csv
npm$npm install -g @josharsh/xeli
brew$brew install josharsh/tap/xeli
pipe$cat data.csv | xeli

Windows isn't supported yet — help wanted.

04Reference

The whole vocabulary

Print this. Pin it next to your monitor.

Move

  • hjkl
    left / down / up / right
  • gg
    top
  • G
    bottom
  • Ctrld
    page down

Query

  • CtrlK
    ask in plain English
  • CtrlQ
    raw DuckDB SQL
  • /
    regex search
  • f
    visual filter

Transform

  • s
    sort column
  • g
    group-by wizard
  • J
    join another file
  • c
    add computed column

View

  • =
    formula bar
  • v
    sparkline
  • CtrlI
    column stats
  • t
    cycle theme
05Colophon

Why this exists

By

Harsh

When

May 2026

I never figured out Google Sheets.

Every time I open it I instinctively google "how to VLOOKUP", close the tab, and ask Claude to do it in Python. There's a specific shame in being a programmer who can't use Google Sheets.

So I built xeli. A terminal spreadsheet where I type what I want in English and DuckDB does the rest. Built it for me. Sharing it in case you're like me.

Open a CSV. Ask a question.

No install. No signup. Your file never leaves the tab — DuckDB runs in your browser.