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, and for the most you could spend. 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.97.1 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.
Settings
The planner keeps its settings in config.toml, in ~/.config/retiretui/ or
under $XDG_CONFIG_HOME where that is set. It writes the file itself when
theme or motion is run from the : command palette, and all of it can be
written by hand:
[]
= "reduced" # or "full", or "off"
[]
= "gruvbox" # a theme, or a family that follows a light or dark terminal
= true # keep the terminal's own background
= "#fabd2f" # any role of a theme, painted over it
[]
= "ctrl-w" # a command as the palette lists it, and the keys it answers to
A theme of your own is a file in themes/ beside config.toml, named by its
file name and chosen like any other. retiretui theme list names every theme
there is, and retiretui theme dump prints one to start from:
The theme picker reads that directory again each time it opens, so a theme being
written is tried on without leaving the planner. The changelog says
how a key is spelled and what a [tui.keys] entry may state.
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 26 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, claims, withdrawals or spending |
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 |
estimate |
Propose the plan's expenses from a bank's exports |
tui |
Open the interactive planner |
theme |
List the planner's themes, or print one to copy |
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.