SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 Rust Terminal Projects
-
I don't want to learn tmux to handle a feature that my OS already handles. If alacritty supported tabs (and was slightly less hostile, e.g. [0]) I'd be happy with it
[0] https://github.com/alacritty/alacritty/issues/3129
-
CodeRabbit
CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
-
Project mention: Effortlessly Manage Your Notes with my Bash Script Featuring FZF Integration! | dev.to | 2025-01-18
bat (for enhanced preview in search)
-
-
I've probably been using fish shell [0] for close to 10 years now. When I need POSIX compliance or if I need to run a one-off bash command, I just call bash. It's exceedingly rare.
Browsing through the documentation for Oils, it seems to be organized in a way that's very confusing. When you open the fish shell website it was two clear buttons for Tutorial and Documentation.
[0] https://fishshell.com/
-
> On the flip side (making things more random as opposed to less), something that randomizes the initial stack pointer would be nice, as I've sometimes seen this go really, really wrong (renaming a binary from foo to foo_new made it run >1% slower!).
This is something we do already. We set a `HYPERFINE_RANDOMIZED_ENVIRONMENT_OFFSET` environment variable with a random-length value: https://github.com/sharkdp/hyperfine/blob/87d77c861f1b6c761a...
-
Zellij is a workspace aimed at developers, ops-oriented people and anyone who loves the terminal. Similar programs are sometimes called "Terminal Multiplexers". repo https://github.com/zellij-org/zellij
-
Additionally, I integrate several CLI tools into my work flow, such as lazygit for streamlined Git operations, yazi as a terminal file manager, tmux for session management, and lazydocker for handling Docker containers efficiently.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
wezterm
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
-- https://github.com/wez/wezterm/issues/3299#issuecomment-2145712082 wezterm.on("gui-startup", function(cmd) local active = wezterm.gui.screens().active local tab, pane, window = wezterm.mux.spawn_window(cmd or {}) window:gui_window():set_position(active.x, active.y) window:gui_window():set_inner_size(active.width, active.height) end)
-
Project mention: Gitui release 0.27 adds simple management of remotes | news.ycombinator.com | 2025-01-15
-
-
Project mention: Show HN: Consol3 – A 3D engine in the terminal that executes on the CPU | news.ycombinator.com | 2024-02-23
supports WebGL over SSH/MoSH
https://www.brow.sh/docs/introduction/ :
> The terminal client updates and renders in realtime so that, for instance, you can watch videos. It uses the UTF-8 half-block trick () to get 2 colours from every character cell, thus simulating basic graphics.
https://github.com/fathyb/carbonyl :
> Carbonyl originally started as html2svg and is now the runtime behind it.
Always wondered how brew.sh added the brew sprite there; that's real nice.
TIL that e.g. Kitty term can basically framebuffer modified Chrome?
https://github.com/chase/awrit :
> Yep, actual Chromium being rendered in your favorite terminal that supports the Kitty terminal graphics protocol.
FWIW Cloudflare has clientless Remote Browser Isolation that also splits the browser at the rendering engine.
A TUI Manim renderer would be neat. Re: Teaching math with Manim and interactive 3d: https://github.com/bernhard-42/jupyter-cadquery/issues/99
What would you add to make it easier to teach with this entirely CPU + software rendering codebase?
What prompts for learning would you suggest?
- Pixar in a Box, Wikipedia history of CG industry: https://westurner.github.io/hnlog/#comment-36265807
- "Rotate a wireframe cube or the camera perspective with just 2d pixels to paint to; And then rotate the cube about a point other than the origin, and then move the camera while the cube is rotating"
- OTOH, ManimML, Yellowbrick, and the ThreeJS Wave/Particle simulator might be neat with a slow terminal framebuffer too
-
I agree. Capturing the interaction as a movie (like .mov file) makes it really difficult to understand what the user is doing. e.g. What keystrokes did the user press to finish this interaction. I wish folks would post screen grabs with tools like https://asciinema.org/ - this is what the helix-editor homepage uses to show the features. This is ideal for terminal apps.
That said, I wish asciinema can also show the key strokes a an annotation with the ability for the viewer to pause on each keyboard interaction.
-
eza
-
I think this may lack a bit of context, so I'll try to fill in.
This is a demo that was just showcased live by the author as part of their talk at FOSDEM'25: https://fosdem.org/2025/schedule/event/fosdem-2025-5496-brin...
The talk was centered on Ratatui (a TUI library in Rust, https://ratatui.rs/) now targeting terminals and web browsers with a shared approach. Video recording of the talk should appear online soon.
-
lazydocker as well. Also a big fan of bottom (https://github.com/ClementTsang/bottom) , which surprisignly enough even though it has charts and everything, it consumes way fewer resources on my system compared to htop.
-
grex
A command-line tool and Rust library with Python bindings for generating regular expressions from user-provided test cases
-
-
Project mention: SD: Intuitive find and replace CLI (sed alternative) | news.ycombinator.com | 2025-02-07
-
Is this what you're referring to?
https://github.com/ducaale/xh
Seems like maybe it's written in rust? Still looks slick!
-
-
// https://github.com/sachaos/viddy/blob/4dd222edf739a672d4ca4bdd33036f524856722c/src/cli.rs#L96-L105 fn parse_duration_from_str(s: &str) -> Result { match humantime::parse_duration(s) { Ok(d) => Ok(Duration::from_std(d)?), Err(_) => { // If the input is only a number, we assume it's in seconds let n = s.parse::()?; Ok(Duration::milliseconds((n * 1000.0) as i64)) } } }
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Rust Terminal discussion
Rust Terminal related posts
-
SD: Intuitive find and replace CLI (sed alternative)
-
Tools for 2025
-
Ratzilla
-
Show HN: Comfy-table, a Rust library for building beautiful terminal tables
-
Show HN: Bagels – TUI Expense Tracker
-
File Explorer is merged to Helix editor
-
Show HN: Rust crate for artisanally crafted CLIs, TUIs, and text-based IO
-
A note from our sponsor - SaaSHub
www.saashub.com | 9 Feb 2025
Index
What are some of the best open-source Terminal projects in Rust? This list will help you:
# | Project | Stars |
---|---|---|
1 | alacritty | 57,598 |
2 | bat | 50,981 |
3 | fd | 35,448 |
4 | fish-shell | 27,896 |
5 | hyperfine | 23,923 |
6 | zellij | 22,949 |
7 | yazi | 21,716 |
8 | wezterm | 19,139 |
9 | gitui | 19,065 |
10 | spotify-tui | 17,818 |
11 | navi | 15,446 |
12 | carbonyl | 14,925 |
13 | asciinema | 14,633 |
14 | eza | 13,900 |
15 | ratatui | 11,791 |
16 | bottom | 10,747 |
17 | grex | 7,384 |
18 | sshx | 6,247 |
19 | sd | 6,058 |
20 | ht | 6,048 |
21 | pastel | 5,216 |
22 | viddy | 4,870 |
23 | Rio | 4,593 |