Terminal Trove Talks with Orhun Parmaksız

Curator on July 15, 2025

1752537600000
Terminal Talks with Orhun Parmaksız

Welcome to our second Terminal Trove Talks, a series of interviews with developers, maintainers and creators of software for the terminal.

In our second interview, we have the pleasure of interviewing Orhun Parmaksız, one of the core maintainers of Ratatui, a modern terminal UI (TUI) library built in the Rust programming language. He is also an open source developer, creator of git-cliff, an Arch Linux package maintainer and has a passion for Rust and hardware.

Orhun shares how he got started with open source and Ratatui, how it became widely used within the Rust ecosystem, git-cliff and Ratzilla (his own projects) and his thoughts on the future of Ratatui.


How did you first get started with open source in general?

Orhun: “Funny enough, I started doing open source without even realizing it.

Short answer: Started out with pushing small scripts to GitHub and eventually realized I can contribute to anything open there. I got hooked after I saw how beautifully the ecosystem works.

Long answer: My background is a whole bunch of different things but I originally started programming through DIY electronics. I used to build my own circuits and programming them in C. Over time, I had interest in learning other languages such as Python, Go and eventually Rust. The best way for me to learn was to practice by building projects and sharing them on GitHub. My mindset was to create something that is useful for myself with the hope that it might be also useful for others. I also tried to change the concept of the projects each time to maximize my learning experience. Projects followed one another until I found what I truly love working on… which is Rust & terminals these days.

I’m still building new things and contributing to open source with the same passion as the first day. It taught me how important sharing knowledge is and how much I can learn from others.”


Can you tell us a bit more about how Ratatui was created and how it became widely used within the Rust ecosystem?

Orhun: “Ratatui is the successor of the tui-rs library, which me and a couple of other people started as a fork in 2023.

The original tui-rs library is created by Florian Dehau back in 2016 and it provided a great foundation for building terminal user interfaces in Rust. However, it wasn’t actively maintained for a while (see this discussion) thus we decided a fork would be the best way to continue the development and push the library forward.

The adoption of Ratatui has been quite organic, as it was built to continue the legacy of tui-rs while introducing new features and improvements. Many existing projects migrated to Ratatui easily and even started contributing back to it in various ways. This resulted in a vibrant community of terminal enthusiasts who are excited about pushing the Ratatui’s capabilities even further.

I don’t know the exact reason how Ratatui became widely used, but it has definitely something to do with the awesome stuff that the people have been building with it. I believe it created a cheeseball effect and attracted many more rats over time.”


Were there any additional influences (besides tui-rs) from other TUI libraries (e.g., Ink, Blessed, ncurses widgets) that helped shape Ratatui’s widget model?

Orhun: “The widget model is basically unchanged since tui-rs. However, one thing that we did change was that we made all the internal widgets able to be rendered as a shared reference (&T), which allows you to define them once rather than on each frame. This made it possible to render the same widget instance multiple times, store them in collections, and so on.

We are also planning to further enhance to composability and reuse of the widgets. Refer to the widget module documentation for more details.”


In your various conference appearances presenting Ratatui, what was the general reception, and what kind of interest have you seen around modern CLI/TUIs built with Ratatui?

Orhun: “After each presentation I got even more excited because the reception was usually very positive. I sometimes got asked interesting questions and I tried to get something out of these interactions. e.g. I remember one time someone asking if Ratatui is running in the command line or the terminal. This made me question the modern definition of the terminal and so on.

I also realized so many people have an idea of something to build in the terminal and they are looking for similar projects for inspiration (that’s why we have the awesome-ratatui list).

Generally, I would say people are excited (sometimes even blown away) by how far we have come as a project. Personally I’m blown away too… I mean heck, imagine someone publishing a crazy terminal project one hour before your talk… Sometimes I don’t even know what’s next… and I’m pretty happy with it.”


You recently created Ratzilla, which renders TUI interfaces on the web. Could you discuss what inspired you to create Ratzilla, how it works, and what technical aspects you considered when adapting it for the web?

Orhun: “I don’t find joy in building websites… (i.e. I hate them). But you eventually need to be present on the web, so I thought “Why not use the same aesthetics and principles that I love in the terminal and bring them to the web?”

My goal was to write a terminal application with Ratatui and make it possible to deploy it on web with minimal effort. No Javascript, no NPM… Just Rust and WebAssembly. That’s how Ratzilla was born during a series of livestreams.

The good thing about Ratatui is that if you implement the Backend trait on something, in theory you should be able to render widgets on it.

That’s what I did and the first ever implementation was simply creating a bunch of <pre> elements in the DOM to represent rows and columns of the terminal (i.e. cells) and then rendering as usual. That worked fine, but it wasn’t very performant. So the next experimentation was with the HTML Canvas element and simply drawing the TUI on it. This was much more performant, but lacked accessibility or CSS styling.

Recently, Adrian Papari, one of my good friends from the TUI ecosystem & creator of tachyonfx, contributed a new backend to Ratzilla which uses WebGl2 for high-performance rendering. This was definitely a game changer and we are still experimenting with it to see how far we can push the boundaries. You can read more about the Ratzilla backends here.

There are still a bunch of work to do and we are far from being production ready… but there are already some cool websites out there.

So if you are interested in doing some Rust/web hacking, go ahead and give it a try! The feedback at this stage of the project is precious as a wheel of cheese.”


You’re also a package maintainer for various software in Arch Linux. What does a typical packaging cycle look like for you, and what are some common challenges you face during packaging?

Orhun: ”i work at arch btw

I enjoy packaging software and making it available for the wider community. I especially love the process because I have the chance to try out a bunch of new projects at first hand. Sometimes I go for “project hunting” on GitHub and discover new Rust/Ratatui gems, package them for Arch, contribute to them, and then share them on my socials. This is how I discovered many of the projects that I maintain/use today. Gotta say, I also made some friends through this process too!

To be honest packaging Rust software for Arch is not that difficult (I have mad respect for people who package C stuff). Sometimes there are issues with the dependencies or the build scripts, but most of the time it’s a smooth process. So far there were only two major pain points that I can remember: 1. building ring with LTO, 2. building onig_sys


You mentioned having an interest in hardware. Are there any hardware-related projects you’ve built or been involved with that you’re particularly excited about?

Orhun: “I had built some projects but they were way before I discovered open source development.

These days I’m excited about making music and modular synthesizers so I think I will build something related to this soon. See this blog post for my motivation.

Also, I recently released the alpha version of Tuitar which I think qualifies as a hardware project. It is a TUI running on a small ESP32 T-Display with a microphone to help me tune my guitar. It uses mousefood which provides embedded-graphics backend for Ratatui.

tuitar is still work in progress and I might end up building something else from it, but it has been pretty fun to build so far. P.S. I’m building it on livestream.

Recently I also managed to run Ratatui on PSP, but it still needs some work to be usable.”


You also created git-cliff, a CLI tool that generates changelogs from git commits, which recently surpassed 10K stars on GitHub. What prompted you to build git-cliff, and did you expect it would become as popular as it is now?

Orhun: “While I was still early in my Rust + open source journey, I needed a simple tool to generate changelogs. I remember looking at the alternatives at the time and thinking that they were not flexible enough for my needs. So I sketched up something really simple and let the feature creep begin.

I didn’t expect to be as popular as it is now at all. One day I woke up and it had a huge jump in stars, thanks to Hacker News.

I still enjoy working on git-cliff and it’s usually my side-project these days. I’m also very glad that people are finding it useful and I will keep improving it in the future! ⛰️

P.S. I have built a TUI for git-cliff but haven’t released it.”


What’s next for Ratatui and Ratzilla? Are there any upcoming features that you’re currently most excited about?

Orhun: “For Ratatui: we have a pretty packed release coming up. It is going to be 0.30.0 after many months and some major changes are no_std support, modularization of the Ratatui crates, better docs and examples & more stuff that I can’t remember right now. Just keep an eye on it!

Particularly no_std support will be great I think, since it will allow to run Ratatui on embedded systems. We are also running a challenge about it as of now.

For Ratzilla: I’m excited about the WebGL2 backend that Adrian contributed and the potential it has for high-performance rendering. At some point I need to rewrite my website with Ratzilla and I think it will be a great showcase of what it can do.”


Lastly, what does your personal terminal setup look like? Which terminal tools do you frequently use, apart from the ones you’ve built yourself?

Orhun: “TL;DR: My dotfiles are here.

I’m using Alacritty and Wezterm interchangeably, depending on the use case. Running Zellij for terminal multiplexing and bash as my primary shell with Starship prompt. I edit stuff in Neovim (AstroNvim) but contemplating of switching to Helix for a while.

According to my shell history, here are some of the cool terminal tools that I use in my workflow:

You can check out the packages that I maintain for arch btw for the other terminal tools that I use.

Best!”

Ratatui is available on crates.io. You can follow Orhun on Twitter / X, GitHub and his blog.

If you are interested or know someone that is interested in being interviewed for Terminal Trove Talks, please reach out to us via email which is in the about section.

Resources

  1. Ratatui GitHub
  2. Ratatui Documentation
  3. Ratzilla
  4. git-cliff (git-cliff on Terminal Trove)
  5. Tuitar

EOF

SHARE VIA

Get Updates On Terminal Trove.

No spam, just updates on Terminal Trove. See an example update.