Releases: orhun/ratty
Ratty 0.4.2
Ratty: A GPU-rendered terminal emulator with inline 3D graphics 🧀
ratty-term.org
0.4.2 - 2026-06-15
The highlight of this release is the new Rubik's Cube demo!
ratty-rubiks-cube.mp4
Download Ratty
From crates.io:
cargo install rattyFrom Arch Linux repositories:
pacman -S rattyOr download binary releases:
| File | Platform | Checksum |
|---|---|---|
| ratty-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| ratty-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| ratty-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| ratty-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| ratty-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Features
- Add Rubik's Cube example by @orhun in #110
- Add Nix compatible build files by @DarthPJB in #61
- Embed app icon and set consoleAllocationPolicy=detached for Windows by @sitiom in #87
Bug Fixes
- Shut down gracefully on window close by @gold-silver-copper in #108
- Make xy plane offset coordinates in 2D mode work like in 3D by @Nomagno in #86
- Reflow terminal contents on resize by @orhun in #105
- Add drag threshold for mouse selection by @orhun in #104
- Report correct window size back to Portable-PTY at all times by @Nomagno in #96
New Contributors
- @Nomagno made their first contribution in #86
- @DarthPJB made their first contribution in #61
- @sitiom made their first contribution in #87
Full Changelog: v0.4.1...0.4.2
Ratty 0.4.1
Ratty: A GPU-rendered terminal emulator with inline 3D graphics 🧀
ratty-term.org
0.4.1 - 2026-05-30
Watch Fireship's video about Ratty: "10 weird OSS projects you need right now... "
The highlight of this release is ComChan, a terminal serial monitor with 3D dashboard by @Vaishnav-Sabari-Girish!
Here is the demo:
2026-05-23_18-01-42.mp4
Download Ratty
From crates.io:
cargo install rattyFrom Arch Linux repositories:
pacman -S rattyOr download binary releases:
| File | Platform | Checksum |
|---|---|---|
| ratty-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| ratty-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| ratty-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| ratty-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| ratty-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Features
Bug Fixes
- Avoid extruding meshes that already have volume by @orhun in #77
- Revert font fallback options by @gold-silver-copper in #76
- Update window title handling to include name property by @AndreasSeidl in #81
- Handle left and right alt keys separately by @orhun in #84
New Contributors
- @kouhe3 made their first contribution in #80
- @AndreasSeidl made their first contribution in #81
- @Vaishnav-Sabari-Girish made their first contribution in #79
Full Changelog: v0.4.0...0.4.1
Ratty 0.4.0
Ratty: A GPU-rendered terminal emulator with inline 3D graphics 🧀
ratty-term.org
0.4.0 - 2026-05-18
Read the It's FOSS article about Ratty: "This New Terminal is Absurd (But Totally Fun)"
The highlight of this release is ratSCAD, a terminal CAD application built with Ratty by @qewer33!
Here is the demo:
ratscad-demo.mp4
Download Ratty
From crates.io:
cargo install rattyFrom Arch Linux repositories:
pacman -S rattyOr download binary releases:
| File | Platform | Checksum |
|---|---|---|
| ratty-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| ratty-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| ratty-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| ratty-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Features
- Support scrolling with trackpad by @orhun in #54
- Support clipboard on Wayland by default by @TheCodedKid in #47
- Select the correct default shell on Windows by @ahostbr in #66
Bug Fixes
- Allow absolute paths for objects by @orhun in #56
- Add some options for font fallback by @orhun in #55
- Update parley_ratatui version to 0.2.1 by @gold-silver-copper in #57
- Use transparency while rendering cells by @orhun in #53
- Use synthetic mouse events for scrolling in apps by @orhun in #63
- Enable shading for all objects by @qewer33 in #62
- Keep rendering smooth when the window is unfocused by @orhun
New Contributors
- @ahostbr made their first contribution in #66
- @qewer33 made their first contribution in #62
- @gold-silver-copper made their first contribution in #57
- @TheCodedKid made their first contribution in #47
Full Changelog: v0.3.0...0.4.0
Ratty 0.3.0
Ratty: A GPU-rendered terminal emulator with inline 3D graphics 🧀
ratty-term.org
0.3.0 - 2026-05-13
Read The Register article about Ratty: "Rodent-obsessed developer creates Ratty to bring 3D graphics to the command line"
ratty-0.3.0-demo.mp4
Download Ratty
From crates.io:
cargo install rattyFrom Arch Linux repositories:
pacman -S rattyOr download binary releases:
| File | Platform | Checksum |
|---|---|---|
| ratty-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| ratty-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| ratty-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| ratty-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Features
You can now set the position, rotation and scale of inline 3D objects in Ratty and update them in-place after placement.
The following RGP sequence first registers (r) an object, then places it (p) and finally updates its rotation, position and brightness (u).
ESC _ ratty;g;r;id=7;fmt=glb;path=SpinyMouse.glb ESC \
ESC _ ratty;g;p;id=7;row=5;col=10;w=3;h=2;depth=1.5;rx=0;ry=30;rz=0;sx=1;sy=1;sz=1 ESC \
ESC _ ratty;g;u;id=7;ry=120;px=0.25;brightness=1.2 ESC \
Example usage in Rust
use ratatui_core::{buffer::Buffer, layout::Rect, widgets::Widget};
use ratatui_ratty::{ObjectFormat, RattyGraphic, RattyGraphicSettings};
let mut graphic = RattyGraphic::new(
RattyGraphicSettings::new("assets/objects/SpinyMouse.glb")
.id(7)
.format(ObjectFormat::Glb)
.rotation([0.0, 30.0, 0.0])
.scale3([1.0, 1.0, 1.0]),
);
graphic.register()?;
let mut buf = Buffer::empty(Rect::new(0, 0, 80, 24));
(&graphic).render(Rect::new(10, 5, 24, 10), &mut buf);
graphic.settings_mut().rotation = [0.0, 120.0, 0.0];
graphic.settings_mut().brightness = 1.2;
graphic.update()?;You can now register 3D objects from payload data sent directly over the Ratty Graphics Protocol, without needing to provide a local file path first.
This will make it possible to e.g. send 3D object data from SSH sessions! 🎉
Example registration pipeline (with source=payload and more fields to indicate chunking):
ESC _ ratty;g;r;id=42;fmt=obj;source=payload;more=1;name=rat.obj;<base64 chunk 1> ESC \
ESC _ ratty;g;r;id=42;fmt=obj;source=payload;more=1;<base64 chunk 2> ESC \
ESC _ ratty;g;r;id=42;fmt=obj;source=payload;more=0;<base64 chunk N> ESC \
ESC _ ratty;g;p;id=42;row=12;col=8;w=4;h=2 ESC \
Example usage in Rust
use ratatui_ratty::{ObjectFormat, RattyGraphic, RattyGraphicSettings};
let graphic = RattyGraphic::new(
RattyGraphicSettings::new("live_draw.obj")
.id(42)
.format(ObjectFormat::Obj),
);
let obj_bytes = std::fs::read("live_draw.obj")?;
graphic.register_payload(&obj_bytes)?;Here are new (customizable) key bindings for navigating Ratty's local scrollback without using the mouse:
Alt+PageUp: scroll one page upAlt+PageDown: scroll one page downAlt+Up: scroll one line upAlt+Down: scroll one line down
Bug Fixes
Documentation
- Update README.md to run the install command for arch and dependency install commands for other Distros by @zalanwastaken in #38
- Document necessary prerequisites for Linux by @jokeyrhyme in #10
New Contributors
- @zalanwastaken made their first contribution in #38
- @jokeyrhyme made their first contribution in #10
Full Changelog: v0.2.0...0.3.0
Ratty 0.2.0
Ratty: A GPU-rendered terminal emulator with inline 3D graphics 🧀
ratty-term.org
We're excited to announce the first public release of Ratty! 🐁
- Read the blog: https://blog.orhun.dev/introducing-ratty
- Demo video: https://www.youtube.com/watch?v=cY9AX5j-osY
ratty-demo-with-audio.mp4
Download Ratty
From crates.io:
cargo install rattyFrom Arch Linux repositories:
pacman -S rattyOr download binary releases:
| File | Platform | Checksum |
|---|---|---|
| ratty-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| ratty-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| ratty-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| ratty-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
0.1.0-rc.1 - 2026-05-10
Release Notes
- chore: release 0.1.0 of ratatui-ratty by @orhun
- chore: expand the target checks in CI by @orhun
- chore: set up release workflow by @orhun
- chore: add macos build step by @orhun
- docs: update video link in website by @orhun
- docs: add link to demo video by @orhun
- refactor: apply clippy suggestions by @orhun
- chore: add libfontconfig1-dev as dependency by @orhun
- style: run rustfmt by @orhun
- chore: add missing CI dependencies by @orhun
- refactor: apply clippy suggestions by @orhun
- style: run rustfmt by @orhun
- chore: add CI by @orhun
- Add release profile by @pythops in #21
- fix: use the workspace root in widget examples by @orhun
- feat: add CLI arguments by @orhun
- feat: add animation to mobius mode by @orhun
- chore: exclude assets from the crates.io release by @orhun
- chore: update og:description for the website by @orhun
- chore: add website by @orhun
- refactor!: rename ToggleMode to Toggle3DMode by @orhun
- feat: add mobius mode by @orhun
- chore: set widget version by @orhun
- fix: apply the bob animation in 3D mode by @orhun
- feat: support color while configuring the cursor by @orhun
- fix: handle numlock-off keypad navigation keys by @orhun
- chore: add Ferris object for fun by @orhun
- feat: support enhanced keyboard reporting for modified special keys by @orhun
- feat: support window transparency by @orhun
- docs: add tetro-tui demo video by @orhun
- chore: add metadata by @orhun
- chore: set RC version by @orhun
- docs: update logo style by @orhun
- docs: update logo by @orhun
- perf: reduce runtime CPU and memory footprint by @EzgiTastan in #18
- fix: handle \x1b[0c and \x1b[5n by @orhun
- fix: handle cursor position report request by @orhun
- style: tweak the badge by @orhun
- docs: add logo by @orhun
- revert: update description by @orhun
- style: update description by @orhun
- docs: add emoji by @orhun
- docs: add project description by @orhun
- docs: librarify ratty by @orhun
- feat: support theming by @orhun
- feat: support resetting the font size by @orhun
- refactor: simplify runtime and system state handling by @orhun
- chore: update default font by @orhun
- chore: add issue and PR templates by @orhun
- style: update documentation style by @orhun
- docs: add widget documentation by @orhun
- docs: add CoC by @orhun
- docs: add contribution guide by @orhun
- docs: add security policy by @orhun
- docs: remove description by @orhun
- docs: reorder sections by @orhun
- docs: expand documentation and add demos by @orhun
- fix(terminal): normalize HVP cursor positioning by @orhun
- refactor: reorder systems module definitions by @orhun
- refactor: apply clippy suggestions by @orhun
- fix: honor the application cursor for keys by @orhun
- chore: enable sponsorships by @orhun
- docs: update the project features by @orhun
- feat: add mouse drawing demo by @orhun
- feat: render image in the editor demo by @orhun
- feat: add inline object demos by @orhun
- feat: add a ratatui widget for RGP by @orhun
- feat: support animate and scale in RGP by @orhun
- feat: support GLB files by @orhun
- feat: implement Ratty Graphics Protocol (RGP) by @orhun
- docs: update the syntax by @orhun
- docs: update the syntax by @orhun
- docs: update the demo by @orhun
- fix: make the images affect by warp by @orhun
- refactor: simplify image anchor handling by @orhun
- feat: add experimental image support via kitty by @orhun
- fix: warp the cursor model by @orhun
- feat: apply warp animation by @orhun
- perf: defer the cursor model spawn by @orhun
- perf: lazy-init off-screen GPU by @orhun
- feat: embed models into the binary by @orhun
- chore: update default key bindings by @orhun
- refactor: support loading fonts from system by @orhun
- feat: support configuration by @orhun
- feat: support changing font size by @orhun
- chore: support x-offset for the cursor by @orhun
- refactor: switch to parley_ratatui for rendering by @orhun
- feat: support debug view in 3D mode by @orhun
- feat: support 3D mode by @orhun
- feat: support ctrl+arrow combinations by @orhun
- perf: add terminal redraw optimization by @orhun
- chore: switch to parley-vello by @orhun
- feat: support clipboard by @orhun
- refactor: handle the input combinations better by @orhun
- feat: set window scale factor by @orhun
- chore: bump soft_ratatui by @orhun
- docs: add README.md by @orhun
- style: switch to JetBrains mono font by @orhun
- revert: switch to embedded-ttf for font rendering by @orhun
- chore: switch to embedded-ttf for font rendering by @orhun
- chore: clean up assets by @orhun
- chore: license under MIT by @orhun
- perf: load the model after terminal initialization by @orhun
- style: switch to dark theme by @orhun
- chore: remove the window padding by @orhun
- feat: support resize by @orhun
- refactor: use a widget renderer for the terminal by @orhun
- feat: support space key by @orhun
- chore: switch to cosmic-text backend by @orhun
- refactor: split into modules by @orhun
- chore: bump bevy to 0.18 by @orhun
- chore: rename project by @orhun
- feat: implement cursor as 3d model by @orhun
- Add model by @orhun
- Simple terminal implementation by @orhun
New Contributors
- @orhun made their first contribution
- @pythops made their first contribution in #21
- @EzgiTastan made their first contribution in #18
Download ratty 0.1.0-rc.1
| File | Platform | Checksum |
|---|---|---|
| ratty-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| ratty-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| ratty-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| ratty-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
