_| _|
_|_|_| _|_|_| _|_| _|_| _|_|_|_|
_|_| _| _| _|_|_|_| _|_|_|_| _|
_|_| _| _| _| _| _|
_|_|_| _| _| _|_|_| _|_|_| _|_|
Terminal-native spreadsheet viewing for Zellij and the command line.
zellij-sheets is the grid/navigation layer: load tabular data, move around it quickly, search it, and inspect or update CSV cells from a native CLI. It is intentionally viewer-first. Workflow-level pipeline semantics belong in nustage, not here.
What It Does
- Zellij plugin for spreadsheet browsing
- Native CLI for previewing files or stdin
- Cell, range, and CSV write addressing from the CLI
- Horizontal scrolling with a real column cursor
- Vim-style navigation
- Search with
/,?,n, andN - CSV and Excel (
.xlsx,.xls) loading - Unicode-aware column layout
What It Is Not
- Not a workflow or transformation pipeline engine
- Not a formula system
- Not a sidecar/provenance tool
- Not a replacement for
nustage
Status
- Native CLI: usable for preview, stdin, cell/range reads, and CSV writes
- Zellij plugin: usable interactive viewer
- Working formats: CSV, Excel (
.xlsx,.xls) - Parquet: not supported yet
- Native full-screen interactive TUI: next major step
Build
Build the native binary:
Build the Zellij plugin:
Build the optional smoke-test plugin binaries:
The plugin artifact is:
target/wasm32-wasip1/release/zellij-sheets.wasm
Native CLI
Show help:
Preview a file:
Read a single cell:
Read a range:
Write a CSV cell:
Read CSV from stdin:
|
Or explicitly use -:
|
Zellij Install
Add the plugin to your Zellij config:
plugins {
zellij-sheets location="file:/home/youruser/path/to/zellij-sheets/target/wasm32-wasip1/release/zellij-sheets.wasm"
}
Then use it in a layout and pass the input file through plugin configuration:
layout {
pane {
plugin location="zellij-sheets" {
input "/tmp/zellij-sheets-sample.csv"
}
}
}
An example alias-based layout is included at layouts/spreadsheet.kdl. Create a sample file before launching it:
Keys
Current plugin/native behavior is centered around the shared state model.
Up/Down/Left/Right: move selectionh/j/k/l: vim movementgg/G: jump to top / bottomCtrl-U/Ctrl-D: half-page up / down0/$: first / last columnH/M/L: top / middle / bottom visible row//?: start forward / backward searchn/N: next / previous search resultEsc: cancel searchqorCtrl-C: close the plugin
Repo Boundary
Keep zellij-sheets focused on:
- rendering
- cursoring
- scrolling
- search
- addressing
- light file I/O
- plugin/native TUI behavior
If a feature is primarily about named transformations, reproducible step pipelines, provenance, execution planning, or workflow state, it belongs in nustage.
Docs
- API docs: https://docs.rs/zellij-sheets
- Repository: https://github.com/CromboJambo/zellij-sheets
Notes
- The plugin requests hard-drive access and works through Zellij’s host filesystem model.
- The shared state/rendering path is used by both the native binary and the plugin.
cargo test --all-featuresmay still expose feature-gated smoke-test issues unrelated to the core viewer path; the main development loop also uses targetedcargo test --lib, integration tests,cargo check, and wasm builds.