Skip to content

Skipper-116/axiom

Axiom

Axiom

A precision multi-platform calculator with persistent history.

CI License: MIT Privacy: local-only

Axiom basic mode

Axiom keeps every result you compute so you never have to retype an expression you already evaluated. Tap any history entry to recall it; search, filter, or annotate entries with notes. Four modes share one window — Basic, Scientific, Programmer, and Conversion — and your data never leaves the device.

Install

Linux

Download the latest release from Releases and pick whichever format fits your distro:

Format Distro Install
.deb Debian, Ubuntu, Pop!_OS, Mint sudo apt install ./axiom_X.Y.Z_amd64.deb
.rpm Fedora, RHEL, openSUSE sudo rpm -i axiom-X.Y.Z-1.x86_64.rpm
.AppImage Any glibc distro chmod +x axiom-*.AppImage && ./axiom-*.AppImage
.tar.gz Manual install tar -xzf axiom-linux-x64-*.tar.gz && ./scripts/install.sh

Flathub submission is in progress. Once live: flatpak install flathub io.github.skipper_116.axiom.

Windows

Download axiom-windows-x64-vX.Y.Z.zip from Releases, extract anywhere, and run calc.exe.

winget submission is in progress. Once live: winget install Skipper116.Axiom.

macOS

brew install --cask axiom

Or download Axiom-X.Y.Z.dmg from Releases and drag the app into /Applications.

macOS builds are currently unsigned (no Apple Developer Program). Direct DMG downloads will trigger a Gatekeeper warning the first time — right-click the app → Open to bypass it. Homebrew Cask installs handle this automatically.

Features

  • Basic mode — arithmetic with percentage, sign toggle, parentheses, and full BODMAS precedence.
  • Scientific mode — trig, logs, powers, factorials, π and e, with toggleable degrees / radians.
  • Programmer mode — 64-bit integer arithmetic, bitwise operators (AND, OR, XOR, NOT, MOD, shifts), and live multi-base display across decimal, hex, octal, and binary.
  • Conversion mode — length, mass, temperature, area, volume, speed, time, and data, with live two-way conversion.
  • Persistent history — every result is saved with timestamp, mode, and editable notes. Search and filter by mode; one-tap recall returns you to the mode the entry was created in.
  • Light and dark themes — system-follow or manual.
  • Keyboard-friendly — every operator and digit is bound; ESC clears, Enter equals.
  • First-run tour — interactive coach marks. Replayable any time from Help.

Privacy

Axiom is local-only. No telemetry, no analytics, no cloud, no accounts. See PRIVACY.md for details and the planned policy for any future opt-in collection.

Build from source

Requirements: Flutter 3.38+ (stable channel), clang, cmake, ninja-build, libgtk-3-dev, libgdk-pixbuf2.0-dev, lld (Linux); MSVC build tools (Windows).

git clone git@github.com:Skipper-116/axiom.git
cd axiom
flutter pub get
flutter run -d linux        # or: flutter run -d windows / macos

Run the test suite:

flutter test

Releasing

Releases are tag-driven. Pushing a vX.Y.Z tag triggers .github/workflows/release.yml, which builds Linux + Windows artifacts, attaches them to a draft GitHub release, and generates a winget-pkgs manifest pack as an asset.

To package locally (requires fpm and appimagetool on PATH):

flutter build linux --release
VERSION=1.0.0 tool/package-linux.sh   # output goes to dist/

macOS release (manual, on a Mac)

CI doesn't build macOS (we don't pay for the runner). Run this on a MacBook after the CI tag has produced the Linux + Windows assets:

git pull --tags
VERSION=1.2.3 tool/package-macos.sh
# → dist/Axiom-1.2.3.dmg + sha256 printed to stdout

# 1. Attach the DMG to the v1.2.3 GitHub release manually.
# 2. Generate the Homebrew Cask for the new version + sha:
VERSION=1.2.3 SHA256=<paste> tool/generate-cask.sh
# → dist/homebrew/Casks/a/axiom.rb

Builds are unsigned (no Apple Developer Program). DMG users will hit a Gatekeeper warning; Homebrew Cask users won't because Cask strips the quarantine xattr during install.

Submission flows

  • Flathub — see flatpak/README.md.
  • winget — each release auto-generates a axiom-winget-manifest-vX.Y.Z.tar.gz asset. Fork microsoft/winget-pkgs, extract the tarball into the repo root (expands to manifests/s/Skipper116/Axiom/X.Y.Z/), commit, and open a PR.
  • Homebrew Cask — fork Homebrew/homebrew-cask, copy the generated dist/homebrew/Casks/a/axiom.rb into the fork at Casks/a/axiom.rb, commit, and open a PR. Their CI runs brew audit --new and a sandboxed install/uninstall cycle.

Contributing

Contributions are welcome. Read CONTRIBUTING.md before opening a pull request, and the Code of Conduct before your first interaction.

Found a security issue? See SECURITY.md for the disclosure process.

License

MIT — see LICENSE. Made by Roy Chanunkha.