A deterministic command-line calculator for people who don't want to open a browser tab to solve for x. Expressions, base conversion, equations, matrices, and a scripting language for batch work — all in one static binary.
No runtime beyond libstdc++. It works in CI, in a container, on a box with no display server — the same way it works on your laptop.
--eval, --output json|yaml|xml, and batch files with control-flow directives mean it drops into scripts as easily as a REPL.
Values live in vars.toml between runs, so a number you compute today is a name you can reuse next week.
Every command below runs headlessly — no menu required — and every output shown is real.
Arbitrarily long expressions with + - * / x :, parentheses, factorial, and functions like sin, log, sqrt, exp.
Move signed integers between binary (0b), decimal, and hexadecimal (0x) in one call, in either direction.
Solves linear and quadratic equations — including complex roots — through guided prompts when you want the interactive menu.
Add, subtract, and multiply matrices of arbitrary size, with validation before every operation — no silent dimension mismatches.
Factorization and divisor lookups optimized for large integers, available as single-shot flags or from the menu.
Inspect or edit values stored in vars.toml. Numerical flags accept variable names as arguments, so results chain across sessions.
Batch files run a list of commands with directives for state and control flow — @set, @input, @include, @if, @unset — so a calculation you'd otherwise repeat by hand becomes a file you run.
Numerical flags accept variable names as arguments, so a batch run can hand its results straight to the next command.
Same calculation core, different surface: tabs for expressions, numbers, conversions, equations, matrices, graphs, statistics, variables, and notes, plus an in-app terminal for when you want the CLI back.
Packaged for Linux, or build the C++ source directly. Requires zlib.