https://github.com/zserge/kalk
Modern VisiCalc clone for the terminal
https://github.com/zserge/kalk
Last synced: 12 days ago
JSON representation
Modern VisiCalc clone for the terminal
- Host: GitHub
- URL: https://github.com/zserge/kalk
- Owner: zserge
- License: mit
- Created: 2026-03-15T17:03:31.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-03-15T18:27:15.000Z (3 months ago)
- Last Synced: 2026-03-16T06:33:00.639Z (3 months ago)
- Language: C
- Size: 207 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# kalk

A minimal spreadsheet for the terminal. Single C file, no dependencies
beyond ncurses.
$ kalk budget.csv
Inspired by VisiCalc and mostly compatible with it. Reads and writes CSV.
Supports formulas with cell references, basic functions, cell formatting,
row/column operations, and frozen titles.
## Build
make
make install # installs to /usr/local
make install PREFIX=/usr
Requires a C99 compiler and ncurses.
## Usage
Arrow keys navigate. Type a number or formula to enter data. Formulas
start with `+`, `-`, `(`, or `@`. Anything else is a label.
Press `/` for commands:
/B Blank cell
/C Clear sheet
/DR /DC Delete row/column
/IR /IC Insert row/column
/F_ Format cell (L R I G D $ % *)
/GC Set column width
/GF_ Set global format
/M Move row/column (arrow keys to drag)
/R Replicate (copy with relative refs)
/SL /SS Load/Save CSV
/SQ Save and quit
/TV/TH/TB/TN Lock title rows/columns
/Q Quit
Other keys:
> Go to cell (type reference)
! Force recalculation
" Enter label
Backspace Clear cell
Tab Next column
Enter Next row
Home Jump to A1
Ctrl-C Quit
## Formulas
Arithmetic: `+A1*B2-3`, `(A1+A2)/2`
Functions: `@SUM(A1...A10)`, `@ABS(x)`, `@INT(x)`, `@SQRT(x)`
Cell references adjust automatically on replicate, insert, and delete.
Use `$` for absolute references: `$A$1` (fixed), `$A1` (fixed column),
`A$1` (fixed row).
## License
MIT