retiretui_engine 0.3.0

Plan model, tax engine, and projection for RetireTui.
Documentation

RetireTui

Crate Badge Docs Badge CI Badge Deps Badge License Badge

A local-first retirement planner for the terminal and the browser.

You describe a household in one plain TOML file - people, accounts and what they hold, contributions, income, expenses, and the milestones that start and stop them - and RetireTui projects it year by year under U.S. federal and state income tax. The same plan runs through many random or historical markets to show how surely the money lasts, and searches for a better Roth conversion ladder, Social Security claim ages or withdrawal order. A scenario is a small file stating only what differs from a base plan, so alternatives compare side by side.

Everything runs locally; no plan leaves your machine. RetireTui is a model under the assumptions you give it, not financial advice.

The interactive planner opening an example plan: the overview, the year-by-year ledger, a Monte Carlo run, and an account opened for editing

Requirements

  • Rust 1.95 or newer, to build.
  • A terminal. Truecolor and the kitty keyboard protocol are used where the terminal offers them.

Install

cargo install retiretui

Or download a prebuilt binary for x86_64 or aarch64 Linux from the releases page:

curl -LO https://github.com/kenianbei/retiretui/releases/latest/download/retiretui-x86_64-unknown-linux-gnu.tar.gz
tar xzf retiretui-x86_64-unknown-linux-gnu.tar.gz

The binary is inside the retiretui-x86_64-unknown-linux-gnu/ directory it unpacks to.

Usage

Interactive planner

retiretui tui examples/

Opens a plan, a scenario, or a directory to pick one from. With no plan, a short form builds a first one from the household's basics. The example plans are invented households, from a first job to a retired couple, to try it on from a clone of the repository.

In a browser

The web app at https://kenianbei.github.io/retiretui/, published with each release, is the planner for a phone or a desktop browser: the overview, the year-by-year ledger, plans compared side by side, the searches, the market runs and the tax tables, and every part of a plan edited in a form. It is tested in Chromium, Firefox and WebKit, at desktop and phone sizes. After one visit every page works offline, and the browser can install it as an app. Plans are kept in the browser's own storage and never leave it unless downloaded; clearing the browser's site data deletes them. To build and serve it yourself, with wasm-pack and Node 22 installed:

cd web
npm ci
npm run dev

The whole terminal planner also runs in a browser canvas, as an experiment, at https://kenianbei.github.io/retiretui/ratzilla/: upload and download, from the : command palette, bring a plan or a Social Security statement in and take a plan back out. To build and serve it:

crates/retiretui_web/build.sh
python3 -m http.server -d crates/retiretui_web/dist

Command line

command what it does
validate Check a plan for schema and consistency errors
project Print the year-by-year ledger, as a table or JSON
actions List one year's to-dos: conversions, RMDs, and more
compare Compare plans or scenarios side by side
optimize Search conversions, claim ages, or withdrawal order
monte-carlo Run the plan through many random markets
historical Run the plan from every historical start year
import-earnings Record an ssa.gov earnings statement on a person
tui Open the interactive planner
mcp Serve plans to AI agents over stdio

retiretui <command> --help lists each command's options. From a clone of the repository:

retiretui project examples/starter.toml
retiretui compare examples/early-retiree.toml examples/early-retiree-no-ladder.toml
retiretui monte-carlo examples/market-mix.toml

AI agents

retiretui mcp serves the same tools over the Model Context Protocol, sandboxed to one directory of plans, with a schema reference for writing them. Register it with an MCP client:

{
  "mcpServers": {
    "retiretui": {
      "command": "retiretui",
      "args": ["mcp", "--dir", "/path/to/plans"]
    }
  }
}

Status

Pre-1.0: the plan schema and the commands still change between minor versions, and CHANGELOG.md records what did. Tax law is embedded for 2026; later years are extended by inflation, and --tax-dir adds parameter files for others. ARCHITECTURE.md describes how the system fits together.

Contributing

Changes arrive as pull requests. The checks CI runs are in ci.yml; run them locally before opening one.

License

Licensed under either of

at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.