F
FrankenTUI
V0.1.1 Alive on Crates.io

The Monster
Terminal Kernel.

Stitched together from the finest Rust algorithms and brought to life with deterministic math. Minimal, high-performance, and architecturally pure.

Rio_CRT_Active
Workspace Crates
12

Composable, focused modules

Built In
5

Days from scratch

Algorithms
20+

Alien-artifact quality

Glossary Terms
60+

Searchable TUI dictionary

ftui_kernel_stream
Live Session
$
Process Active
Why FrankenTUI

Built Different

Not another Ratatui wrapper. FrankenTUI is a ground-up TUI kernel with correctness guarantees, deterministic rendering, and algorithms borrowed from statistical machine learning.

Inline Mode

Stable UI at top/bottom while logs scroll above. Preserves scrollback history that other TUI frameworks destroy.

Core System Protocol

Deterministic Rendering

Buffer → Diff → Presenter → ANSI pipeline with no hidden I/O. Every frame is reproducible and testable.

Core System Protocol

One-Writer Rule

TerminalWriter serializes all stdout writes. No cursor corruption, no race conditions, no flicker.

Core System Protocol

RAII Cleanup

TerminalSession restores terminal state even on panic. Your terminal is never left in a broken state.

Core System Protocol

Composable Crates

12 focused crates: layout, text, style, runtime, widgets. Add only what you need, nothing more.

Core System Protocol

Alien Algorithms

Bayesian diff strategy, BOCPD resize coalescing, conformal prediction alerts, e-process monitoring. Not heuristics — math.

Core System Protocol
See It In Action

Screenshot Gallery

From dashboards to data visualization, file browsers to visual effects. Every screenshot is a real terminal render -- no mocked designs.

How It Compares

Framework Comparison

FrankenTUI bakes correctness guarantees into the kernel layer. Features that require app-level discipline in other frameworks are enforced by the architecture.

FeatureFrankenTUIRatatuitui-rsRaw crossterm
Inline mode w/ scrollbackFirst-classApp-specificApp-specificManual
Deterministic buffer diffKernel-levelYesYesNo
One-writer ruleEnforcedApp-specificApp-specificNo
RAII teardownTerminalSessionApp-specificApp-specificNo
Snapshot/time-travel harnessBuilt-inNoNoNo
Bayesian diff strategyBuilt-inNoNoNo
Resize coalescing (BOCPD)Built-inNoNoNo
Alpha blending / compositingPorter-DuffNoNoNo
Elm architecture runtimeBuilt-inApp-specificApp-specificNo
Conformal prediction alertsBuilt-inNoNoNo
Zero unsafe in render pathEnforced (#![forbid])MinimizedNoNo
The Code

Minimal API, Maximum Power

A complete interactive app in under 40 lines. The Elm/Bubbletea-style architecture separates model, update, and view into clean, testable functions.

examples/tick.rs
1use ftui_core::event::Event;2use ftui_core::geometry::Rect;3use ftui_render::frame::Frame;4use ftui_runtime::{App, Cmd, Model, ScreenMode};5use ftui_widgets::paragraph::Paragraph;6 7struct TickApp {8    ticks: u64,9}10 11#[derive(Debug, Clone)]12enum Msg {13    Tick,14    Quit,15}16 17impl From<Event> for Msg {18    fn from(e: Event) -> Self {19        match e {20            Event::Key(k) if k.is_char('q') => Msg::Quit,21            _ => Msg::Tick,22        }23    }24}25 26impl Model for TickApp {27    type Message = Msg;28 29    fn update(&mut self, msg: Msg) -> Cmd<Msg> {30        match msg {31            Msg::Tick => {32                self.ticks += 1;33                Cmd::none()34            }35            Msg::Quit => Cmd::quit(),36        }37    }38 39    fn view(&self, frame: &mut Frame) {40        let text = format!("Ticks: {}  (press 'q' to quit)", self.ticks);41        let area = Rect::new(0, 0, frame.width(), 1);42        Paragraph::new(text).render(area, frame);43    }44}45 46fn main() -> std::io::Result<()> {47    App::new(TickApp { ticks: 0 })48        .screen_mode(ScreenMode::Inline { ui_height: 1 })49        .run()50}
Built in 5 Days

From Zero to crates.io

100 hours of focused engineering. Every decision documented, every algorithm justified. Here is how the first 3 milestones unfolded.

Day 1 — 2026-01-31 14:21

Architecture Plan Locked

  • Initial commit: FrankenTUI plan documents.

  • Upgraded plan to a hybrid architecture (V5.0 → V6.1).

  • Expanded the bead graph to cover core components, dependencies, and acceptance tests.

System Log v0.1
Day 1 — 2026-01-31 17:48

Reference Library Sync

  • Added a reference library sync script + build infrastructure.

  • Fixed idempotency and Makefile bugs in the sync tooling.

  • Seeded beads for syntax highlighting, forms/pickers, and other showcase surfaces.

System Log v0.1
Day 1 — 2026-01-31 23:23

Workspace Born

  • Initialized the Rust workspace with the `ftui` crate structure.

  • Added 15 comprehensive feature beads with 46 subtasks.

  • Added a comprehensive test bead graph for 15 new feature areas.

System Log v0.1

From the Author

Jeffrey Emanuel

@jeffemanuel

2026-02-05

I just built a complete TUI framework in Rust from scratch in 5 days. 12 crates, 20+ algorithms including Bayesian diff strategy selection, BOCPD resize coalescing, and conformal prediction alerts. Not heuristics — real math.

42
128
REPOST

Jeffrey Emanuel

@jeffemanuel

2026-02-04

The 'alien artifact' quality bar: every statistical decision in FrankenTUI records an evidence ledger. You can literally read WHY the renderer chose dirty-row diff over full diff. No black boxes.

42
128
REPOST

Jeffrey Emanuel

@jeffemanuel

2026-02-03

FrankenTUI's inline mode preserves your scrollback while keeping UI chrome stable. This is the thing that Ratatui and every other Rust TUI framework gets wrong — they destroy your terminal history.

42
128
REPOST

Jeffrey Emanuel

@jeffemanuel

2026-02-03

Zero unsafe code in the entire render pipeline, runtime, and layout engine. #![forbid(unsafe_code)] at the crate level. Correctness over cleverness.

42
128
REPOST

Ready to Build?

Add FrankenTUI to your Rust project with a single command. Ship terminal interfaces with correctness guarantees from day one.

terminal
$cargo add ftui
MIT License · Free & Open Source
Get Started