Sheets: Open-Source Tool for Working with Spreadsheets in the Terminal Built with Go
Sheets is a cross-platform project written in Go for handling spreadsheets directly in the terminal. Developer Maas Lalani released the source code on GitHub under the MIT license. The tool targets developers who prefer CLI solutions without a graphical interface. Pre-built binaries are available for Windows, macOS, and Linux, making it versatile across different development environments.
The project solves the challenge of processing tabular data in a text-based environment, integrating seamlessly with shell scripts and automation workflows. Users can perform editing, filtering, and calculations without needing to launch a browser or desktop apps.
Key Features
Sheets offers functionality similar to traditional spreadsheet applications, but optimized for the terminal:
- Cell editing: Navigate the table using keyboard shortcuts, enter and modify values.
- Formulas and calculations: Support for basic math operations and functions.
- Import/export: Handling CSV, TSV, and other text formats.
- Filtering and sorting: Quick search and data organization.
- Visualization: Color coding and formatting to enhance readability in the terminal.
The interface features a full-screen TUI (Text User Interface) built with the tview library or a similar Go library. This enables efficient handling of large tables without sacrificing performance.
Installation and Usage
To get started, grab a pre-built binary from GitHub releases or build from source:
go install github.com/mjl-/sheets@latest
Once installed, launch it with:
sheets file.csv
The project requires Go 1.21+ to compile. It has minimal dependencies, making it easy to deploy in containers or CI/CD pipelines.
Applications in Development
Sheets fits right into DevOps workflows:
- Real-time log processing.
- Analyzing metrics from monitoring tools (Prometheus, Grafana exports).
- Generating reports via scripts.
- ETL processes for database data (SQLite, PostgreSQL via csvdump).
Example: Parsing JSON logs into a table for error analysis.
# Example script
sheets -i logs.json -o analysis.tsv | sheets --sort column2
This is particularly handy for senior developers working in headless environments or on GUI-less servers.
Comparison with Alternatives
| Tool | Platforms | License | TUI | Formulas |
|-----------|---------------|---------|-----|------------|
| Sheets | Win/Mac/Linux | MIT | Yes | Yes |
| visidata | *nix | GPL | Yes | Partially |
| csvkit | *nix | MIT | No | No |
Sheets stands out with its full cross-platform support and terminal-based formula capabilities.
Key Highlights
- Open-source Go codebase: Easy to extend and customize for specific needs.
- Cross-platform: Binaries for all major OSes with zero dependencies.
- TUI interface: Full navigation and editing capabilities in the terminal.
- MIT license: Free to use in commercial projects.
- Minimalist design: Performance-focused without unnecessary UI fluff.
— Editorial Team
No comments yet.