RetireTui
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.

Requirements
- Rust 1.95 or newer, to build.
- A terminal. Truecolor and the kitty keyboard protocol are used where the terminal offers them.
Install
Or download a prebuilt binary for x86_64 or aarch64 Linux from the releases page:
The binary is inside the retiretui-x86_64-unknown-linux-gnu/ directory it
unpacks to.
Usage
Interactive planner
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:
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:
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:
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:
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
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
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.