@josharsh/xeli
v0.1.2
Published
Excel for the Terminal — interactive TUI spreadsheet with AI-powered queries
Downloads
350
Maintainers
Readme
Xeli
Excel for the Terminal — an interactive TUI spreadsheet with AI-powered queries.
Open CSV, JSON, Parquet, and Excel files in a beautiful interactive spreadsheet. Query data with natural language (AI → SQL), filter/sort visually, and export results — all from your terminal.
Install
# npm (no install — runs once)
npx @josharsh/xeli data.csv
# npm (global)
npm install -g @josharsh/xeli
# Homebrew
brew install josharsh/tap/xeliOr grab a prebuilt binary from the latest release.
Supported platforms: macOS (Apple Silicon & Intel) and Linux (arm64 & x86_64). Windows is not currently supported.
Quick Start
# View a CSV file
xeli data.csv
# View JSON data
xeli sales.json
# Pipe data in
cat data.csv | xeli
# Choose a theme
xeli data.csv --theme nordFeatures
- Multi-format: CSV, TSV, JSON, JSONL, Parquet, Excel (xlsx)
- Interactive table: Vim-style navigation, scrolling, cell selection
- Search: Regex search across all columns (
/) - Filter: Visual filter builder with multiple operators (
f) - Sort: Click-to-sort on any column (
s) - AI queries: Natural language → SQL via OpenAI/Anthropic (
Ctrl+K) - SQL mode: Direct DuckDB SQL queries (
Ctrl+Q) - Column stats: Min, max, mean, median, nulls, unique count (
Ctrl+I) - Export: Export filtered data to CSV, JSON, or Parquet (
e) - Clipboard: Copy cell values (
y) - Themes: Dracula, Nord, Catppuccin, Tokyo Night, Solarized (
t) - Command palette: Fuzzy search all commands (
Ctrl+P) - Undo: Full operation history (
u) - Mouse support: Click, scroll, resize
Power Features
- Formula bar: Evaluate expressions like
SUM(price),price * qty(=) - Computed columns: Add derived columns with custom expressions (
c) - Group-by / Pivot: Multi-column grouping with aggregation wizard (
g) - Join: Join with another file — INNER, LEFT, RIGHT, FULL (
J) - Sparkline: Histogram visualization for numeric columns (
v)
Keybindings
| Key | Action |
|-----|--------|
| h/j/k/l or arrows | Move cursor |
| G | Go to bottom |
| Ctrl+d / Ctrl+u | Page down / up |
| Tab / Shift+Tab | Next / prev column |
| / | Search (regex) |
| n / N | Next / prev search match |
| f | Add filter |
| F | Clear all filters |
| s | Sort current column |
| Ctrl+K | AI query |
| Ctrl+Q | SQL query |
| Enter | Cell detail view |
| Ctrl+I | Column statistics |
| - / + | Hide / show columns |
| H / L | Resize column |
| = | Formula bar |
| c | Add computed column |
| g | Group-by / pivot wizard |
| J | Join another file |
| v | Sparkline chart |
| e | Export data |
| y | Copy cell to clipboard |
| t | Cycle theme |
| r | Toggle row numbers |
| u | Undo |
| Ctrl+P | Command palette |
| ? | Help |
| q | Quit |
AI Setup
Set your API key to enable natural language queries:
# OpenAI
xeli config set-key openai sk-...
# or
export OPENAI_API_KEY=sk-...
# Anthropic
xeli config set-key anthropic sk-ant-...
# or
export ANTHROPIC_API_KEY=sk-ant-...Then press Ctrl+K and ask questions like:
- "show me top 10 employees by salary"
- "how many people are in each department?"
- "average salary by city for active employees"
Building from Source
cargo build --release
# Binary at target/release/xeliTech Stack
- Rust — single binary, no runtime dependencies
- Ratatui — terminal UI framework
- DuckDB — in-process analytical database engine
- Clap — CLI argument parsing
- Tokio — async runtime for AI queries
License
MIT
