Skip to main content

A Soulver-like calculator notepad for the terminal

Project description

Reckn

Pronounced "reckon"

A Soulver-like calculator notepad for the terminal. Type math expressions on the left, see results on the right - with variables, units, currencies, percentages, dates, and more.

Install

Requires Python 3.10+.

pipx install reckn

That's it. If you don't have pipx: pip install pipx or sudo apt install pipx (Debian/Ubuntu) or brew install pipx (macOS).

Alternatively, with pip:

pip install reckn

Linux Desktop Integration

To add Reckn to your application menu:

reckn --install-desktop

From Source

git clone https://github.com/davigno/reckn.git
cd reckn
pipx install .

Usage

reckn                  # New empty pad
reckn mybudget         # Open or create named pad
reckn --list           # List saved pads
reckn --version        # Show version

Press F2 inside the app for a full syntax reference and keyboard shortcuts.

What Can It Do?

# Monthly Budget
salary = 5000                    5,000
tax = 22% of salary                1,100
rent = 1200 EUR                    €1,200
rent in USD                        $1,415.28
---                                5,715.28

# Trip Planning
distance = 450 km                  450 km
distance in miles                  279.62 mi
speed = 100 km/h                   100 km/h
distance / speed as timespan       4 hr 30 min

# Dates
today                              25 March 2026
vacation = June 15                 15 June 2026
vacation - today                   2 months 21 days

# Time
meeting = 2:30pm                   2:30 pm
meeting + 1 hr 45 min              4:15 pm

Keyboard Shortcuts

Key Action
F1 File menu
F2 Help / syntax reference
Ctrl+N New pad
Ctrl+O Open pad
Ctrl+S Save pad
Ctrl+E Export as markdown
Ctrl+T Toggle floating total
Ctrl+K Toggle comment
Ctrl+X Delete line
Ctrl+C Copy result
Ctrl+Shift+C Copy entire pad
Ctrl+V Paste
Ctrl+Q Quit
Click result Insert line reference

Syntax Reference

Arithmetic & Variables

2 + 3 * (10 - 4)            → 20
2 ^ 10                       → 1,024
100k + 50k                   → 150,000       (SI: k, M, B, G)
salary = 60k                 → 60,000        (variable assignment)
line1 + line2                → (line refs)

Units & Conversions

Convert with in, to, or as. Compatible units mix automatically.

10 inches in cm              → 25.4 cm
5 km in miles                → 3.11 mi
100 degC in degF             → 212 °F
1000 MB in GB                → 1 GB
100 km/h in mph              → 62.14 mph
1 km + 500 m                 → 1,500 m
500 km / 2 hours             → 250 km/h

Supported: length (mm-mi), weight (mg-lb), time (ms-year), data (B-PB, bits), speed, temperature.

Currencies

Live rates from frankfurter.app, cached locally for offline use.

$100 in EUR                  → €84.79
100 GBP to USD               → $135.89
rent = 100 USD               → $100          (unit preserved)
rent * 12                    → $1,200

Percentages

25% of 1000                  → 250
10% off 200                  → 180
200 + 10%                    → 220
50 as % of 200               → 25%

Dates & Clock Time

today                        → 25 March 2026
today + 3 weeks              → 15 April 2026
from March 1 to April 1      → 1 month
7:45am + 9 hours             → 4:45 pm
3:35pm - 11:00am             → 4 hr 35 min
5.5 hours as timespan        → 5 hr 30 min

Math Functions

sqrt(144)                    → 12
abs(-42)                     → 42
round(3.14159, 2)            → 3.14
floor(3.9)                   → 3
ceil(3.1)                    → 4
min(10, 20, 5)               → 5
max(3, 7, 1)                 → 7
log(1)                       → 0
log10(100)                   → 2
sin(0) / cos(0)              → 0 / 1
sqrt(144) km                 → 12 km          (unit suffix works)
abs(-50) USD                 → $50            (currency too)

Structure

# Heading                    (section header, resets subtotals)
// Comment                   (not evaluated)
label: 1200                  (display only, no variable)
var = 1200                   (variable assignment)
---                          (subtotal)
===                          (subtotal, alternate style)

Data Storage

All data in ~/.config/reckn/:

  • pads/<name>.json - saved pads
  • currency_cache.json - cached exchange rates

Roadmap

Planned for future releases:

  • Math functions (added in v1.1.0)
  • Undo/redo (Ctrl+Z / Ctrl+Shift+Z)
  • Time zone conversions
  • Proportions ("3 is to 6 as what is to 10")
  • Multiple tabs/sheets
  • Export to CSV
  • Custom color themes
  • Custom user-defined units

About

I'm a product person, not a developer. This project was built entirely with Claude Code by Anthropic - I brought the idea and the product direction, Claude wrote the code.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reckn-1.1.0.tar.gz (54.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reckn-1.1.0-py3-none-any.whl (56.6 kB view details)

Uploaded Python 3

File details

Details for the file reckn-1.1.0.tar.gz.

File metadata

  • Download URL: reckn-1.1.0.tar.gz
  • Upload date:
  • Size: 54.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for reckn-1.1.0.tar.gz
Algorithm Hash digest
SHA256 59de43616ddebac811be19b273dcb4ffdf79d4315382184246fe8ce5091ec5b6
MD5 0a1808dba094127c892fbe9268a57e91
BLAKE2b-256 cbef6524557615510c1c8b0788c9254d9d2d209a8efdcc6a6ec132721321b366

See more details on using hashes here.

File details

Details for the file reckn-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: reckn-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 56.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for reckn-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e169662f9bc9df651d76e9b867cc86046978f1a6db2e6255f9c29cfe298ff0d6
MD5 a520bc4eed1b9b21693973a1db30b5d1
BLAKE2b-256 4f98b754c7cd685147d8aa9405fc6be32c8659312737aa3e04fc2a96e611c1bc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page