A suite of fast, opinionated terminal tools written in Rust. Single static binaries. Shared TUI foundation (crust). No runtime dependencies.
Landing page: isene.github.io/fe2o3
This repo also holds fe2o3 itself: the suite as a grid of cards, one per
app, with its logo, what it is and one line on why. Arrow keys move, Enter
runs it in the same terminal, ? shows that app's own help, w opens
its repo, / filters.
It is also the installer. What you have has a solid frame and a green
✓; what you do not have is dashed with an amber ↓. i fetches the one
under the cursor, I fetches every missing one in view — so you can take
the launcher alone and pick up only the apps you fancy. Binaries land in
~/bin if you have it, else ~/.local/bin. A ~/bin/<tool> that is a
symlink to a local build is left alone.
cargo build --release # or grab the binary from Releases
fe2o3 # the grid
fe2o3 -l # the suite as plain textAdding an app to the suite is one command:
tools/add-app isotopes --kind "Chart of the Nuclides" --group Science \
--blurb "3,386 isotopes, how they decay and what into" \
--desc "Neutrons across, protons up, coloured by how each one comes apart."That writes the launcher row, renders the card logo from the app's own
SVG, adds the table rows here and in CLAUDE.md, puts a card on the
landing page in the right group with the count bumped, and drops a
release workflow into the app's repo if it has none. --check shows
what it would do; running it twice changes nothing the second time.
| Tool | Release | Role | Ruby equivalent |
|---|---|---|---|
| pointer | File manager | RTFM | |
| kastrup | Messaging hub (email, RSS, chat) | Heathrow | |
| scribe | Modal text editor for writers | — | |
| scroll | Web browser | brrowser | |
| gazette | Daily news digest reader | — | |
| tock | Calendar with ephemeris | Timely | |
| astro | Astronomy panel + telescope/eyepiece catalog | astropanel + telescope-term | |
| watchit | Movie / series browser | IMDB-terminal | |
| torii | Captive-portal listener (NetworkManager → Firefox) | — | |
| prism | TUI color picker (FG/BG slots, RGB+HSV, WCAG contrast) | — | |
| fonts | TUI font picker with live previews (enumerates installed fonts via glyph); returns family + size | — | |
| drain | Battery-drain triage TUI (top wakers, per-WS attribution) | — | |
| amar | Amar RPG companion (NPC / encounter / town / weather forge, campaign tracker, lore, AI inspire) | Amar-Tools | |
| tune | Spotify Connect controller (search, library, queue, devices, transport) | — | |
| melody | Melody maker — piano-roll play / record / edit, metronome, WAV export | — | |
| petri | Petri net player — load a net, fire transitions, watch conflicts, find deadlocks | — | |
| library | Generative personal library (curate a shelf of books that should exist, then have them written on demand) | — | |
| grid | AI-native spreadsheet (csv/xlsx/ods, formula engine, Claude editing) | — | |
| viewer | Universal file viewer (tables, docs, slides, pdf, images, code; launches the right editor) | — | |
| CC-sessions | Claude Code session manager (cc/cl: bookmark + resume sessions with tags, /bm command) |
CC-sessions ≤1.5 (Ruby) | |
| rpnx | RPN / XRPN scientific calculator (HP-41 stack, cycling shift pages, runs XRPN programs) | T-REX | |
| typo | Touch-typing tutor (strict drills, live WPM/accuracy, US + Norwegian layouts) | — | |
| elements | Periodic table explorer (118 elements + hypothesized 119–126, full Wikipedia article per element, offline) | — | |
| isotopes | Chart of the nuclides (3,386 isotopes, decay modes, half-lives, decay chains) | — | |
| stars | Hertzsprung-Russell diagram explorer (461 named stars, evolutionary tracks, full Wikipedia article per star, and a sky map to pick from) | — | |
| particles | Standard Model explorer (17 fundamental particles + proton/neutron, and a rotatable zoom from atom to quark) | — | |
| exoplanets | The known exoplanets (6,309 worlds by orbit and size, systems, habitable zones) | — | |
| fractal | Chaos and fractals in braille (Mandelbrot, Julia, logistic map, Lorenz, Hénon) | — |
Superseded by the assembly tools in CHasm, which do the same job with a fraction of the cycles.
| Tool | Release | Was | Replaced by |
|---|---|---|---|
| rush | Interactive shell | bare | |
| crush | Configuration TUI for rush | bareconf |
nova and scope have been merged into astro and are archived. hyper has been folded into scribe —
.hlediting now lives there with full hyperlist.vim parity. All three READMEs link to their replacements.
| Crate | Release | Role | Ruby equivalent |
|---|---|---|---|
| crust | TUI foundation (panes, colors, input) | rcurses | |
| glow | Inline images (kitty / sixel / w3m / braille) | termpix | |
| highlight | Theme-aware syntax highlighter (~18 source langs + HL / Markdown / LaTeX / email) | — | |
| orbit | Moon phases, ephemeris, sun / planet positions | ephemeris | |
| starmap | The naked-eye sky in braille (9,096 stars with distances, constellation figures, star picker) | — | |
| plot | Terminal charts (sparkline / line / candle / bar) with Unicode + ANSI | termchart | |
| fe2o3-rpnx-core | RPN / XRPN calculator engine shared by rpnx (TUI) + the RPNx phone app | — |
Companion apps — nomad
The mobile half of the family. nomad is a single Android monorepo — a shared Rust core (the same logic as the desktop, via UniFFI) under thin Kotlin / Compose shells. Each app carries one Fe₂O₃ workflow off the laptop and syncs its data over Syncthing — no Google account, no cloud middleman.
| App | Pairs with | Role |
|---|---|---|
| tasks | scribe, kastrup | HyperList todo editor + Glance widget for ~/.tasks/todo.hl |
| hyperlist | scribe | General HyperList editor with full syntax highlighting |
| relay | kastrup | Notification gateway (WhatsApp / Messenger / IG / SMS / Discord → kastrup) — replaces the laptop Marionette bridge |
| astro | astro | Ephemeris, weather + observing conditions, events, APOD, gear catalog |
| watchit | watchit | TMDB movie / series browser with wish/dump lists |
| amardice | amar | Amar RPG O6 dice roller (skill / combat / fear) |
| rpnx | rpnx | Pocket HP-41 RPN calculator + FOCAL program runner (same engine as the rpnx TUI) |
| scribe | scribe | Distraction-free notes pad — touch companion to the scribe editor |
| ref | — | Offline, searchable reference reader (glossaries, books, personal writings) |
| vox | — | Voice quick-capture — pocket version of the laptop Win+a voice-to-text |
| gazette | gazette | Daily news digest reader — browse the last 7 issues (and PDF) synced into ~/.news |
| books | library | The library on your phone, read-only: only the books you have made, grouped by shelf, with inline figures |
| onepage | — | Minimal Android home launcher (one screen, freely-placed widgets, zero idle cost) |
Get the launcher, then let it fetch the rest: press I in the grid and
every app you do not have is downloaded.
curl -L "https://github.com/isene/fe2o3/releases/latest/download/fe2o3-linux-x86_64" \
-o ~/bin/fe2o3 && chmod +x ~/bin/fe2o3
fe2o3 # then press I
# Other platforms: replace -linux-x86_64 with:
# -linux-aarch64 (Raspberry Pi, ARM64 Linux)
# -macos-x86_64 (Intel Mac)
# -macos-aarch64 (Apple Silicon)Or grab them all straight from the shell:
for app in pointer kastrup scribe scroll gazette tock astro watchit torii prism fonts drain amar tune melody petri library grid viewer rpnx typo fractal elements isotopes exoplanets stars particles; do
curl -L "https://github.com/isene/$app/releases/latest/download/$app-linux-x86_64" \
-o ~/bin/$app && chmod +x ~/bin/$app
doneRust the language was actually named after a family of fungi (Pucciniales, plant pathogens "over-engineered for survival" per Graydon Hoare). The iron-oxide association came later, through the visual rhyme with what those fungi look like on a leaf. Fe₂O₃ is that iron oxide: what happens when iron meets oxygen meets time. This is the terminal-facing half of that toolkit.
Every tool is a feature port of a long-running Ruby original, rewritten for speed, single-binary distribution, and async-first UI behavior.
All tools in the suite are public domain (Unlicense). Borrow or steal whatever you want.
