Terminal Trove Talks with Miguel de Icaza

aghuang1 pts0 comments

Terminal Trove Talks with Miguel de Icaza - Terminal Trove<br>Terminal Trove Talks with Miguel de Icaza<br>Curator on July 28, 2026<br>5 days ago • 11 min read 1785196800000<br>Welcome to our third Terminal Trove Talks, a series of interviews with developers, maintainers and creators of software for the terminal.

In our third interview, we have the pleasure of interviewing Miguel de Icaza, creator of Midnight Commander (mc), the famous blue dual-pane file manager that has been helping people navigate files and directories from the terminal since the 1990s.

Miguel also created SwiftTerm, a VT100/Xterm terminal emulator library for Swift; TermKit, a terminal UI toolkit for Swift applications; and La Terminal, an SSH and Mosh client for iPhone and iPad.

He is also known for helping start GNOME, Mono and Xamarin and now spends much of his time working on Xogot and the Godot ecosystem.

Miguel shares how DOS and Norton Commander inspired Midnight Commander, how its early users turned him into an open source maintainer, the evolution from XtermSharp to SwiftTerm, the challenges of GPU-accelerated terminal rendering, the renewed interest in terminal applications, his plans for TermKit and the terminal tools he uses most often.

Let’s start with the origins of Midnight Commander.

You began the project in the early 1990s, and it later became one of the best-known dual-pane file managers for the terminal, with its signature blue interface.

Could you give us a short history of how it started and explain what problem you were trying to solve at the time?

Miguel: "Before I came to Unix, I was an avid DOS user, where many user interfaces were created entirely for the 80x25 screen. People were experimenting and creating lovely, useful interfaces for that universe.

In that era, one of my favourite ways of organising and exploring the world was Norton Commander, which I used for all sorts of things.

At the time, I was deeply into patching programs, and I had viewed the binary dumps of many programs. It became second nature to look at an executable binary and tell what kind of data I was looking at, or what compiler had been used to build it. You could tell from the strings in the binary.

When I came to Unix, I missed the speed of exploring and organising the file system that I had come to love in DOS, and this was my crutch for moving to the Unix world."

Midnight Commander is still actively maintained today and is packaged across Linux, macOS, BSD and other Unix-like systems.

Looking back, did you ever expect it to have this kind of longevity and continued use among so many developers?

Miguel: "It always brings a smile to my face when someone tells me, ‘mc is the first tool I install on my system,’ but at the time I was merely building something to make my life easier and more enjoyable.

More important than thinking about its longevity, this was my first project that I released to the public. I had users who submitted bug reports and feature requests. These users later turned into contributors and, in turn, made me into an open source maintainer.

This was one of the best learning experiences I could have hoped for. I still remember the early contributors very fondly: Janne Kukonlehto, Pavel Machek, Pavel Roskin, Radek Doulik, Dugan Porter, Jakub Jelinek, Torben Fjerdingstad, Fred Leeflang, Norbert Warmuth, Paul Sheer and many, many more.

I have stayed in touch with some of them. I have worked on and off with Radek Doulik over the years, and I still read about the adventures of some of the other contributors who have gone on to do amazing work on Linux.

Some people I have lost track of, and I wish I knew what happened to them. I sometimes Google them and do not find much."

You built SwiftTerm, a VT100/Xterm terminal emulator library, and TermKit, a terminal UI toolkit, in the Swift programming language.

What made you want to build these libraries in Swift, and why was Swift the language of choice for them?

Miguel: "The story of SwiftTerm started many years before Swift, when Microsoft attempted to make .NET a viable platform on the web with Silverlight. I had a dream that I would write a terminal emulator using it, if we could only get it out of the browser, but it was a hotly contested topic for reasons too long to go into here.

In the meantime, I think Fabrice Bellard wrote a minimal xterm emulator in JavaScript, and this became the foundation of xterm.js. They got to the web before my dream could materialise.

I first ported xterm.js to C# and created XtermSharp. But it is very hard to let go of terminal apps. They are so efficient and so convenient. After all these years, I still do most of my work in terminal windows, and I still use them the way that I used them with Linux, with plenty of terminals open at any given time.

For a while, I thought I was going to be left all alone and would be one of the last dinosaurs on Earth that did not adapt. But the last few years have seen a renaissance of tools for the...

terminal miguel commander swift trove xterm

Related Articles