lui:
lui is a simple terminal file manager. Its main idea was building an interactive version of one of my most used Linux commands: ls -lah --group-directories-first.
https://codeberg.org/lukeflo/lui
While there are many fancy TUI file manager out there, I’ve tried most but found them bloated with features unnecessary to me. Thus, I just built my own one. Originally written in Rust called jafff I wanted to rewrite in in Zig, since I almost fully abandoned Rust, plus the Rust version is much slower.
And here it is! For now, only with very limited features. But it already serves as file picker for my Helix editor and as fast cd’ing tool. I will implement some more core features in the near future. However, if you’re looking for the next yazi, keep looking somewhere else 
Supported Zig versions
0.16
AI / LLM usage disclosure
I did not use any LLM for writing my code. Neither as agents, nor for prompting questions, ideas, reviews to a chat bot.
However, the only external dep I used for this program, libvaxis, is using some LLM support.
Quick impression

17 Likes
Great, exactly what I’m using when I run yazi. But there is an error with build.zig.zon, I opened an issue.
2 Likes
Yeah, thanks. I worked with local copies of the deps repos and forgot to replace them with the correct URLs. Will update this asap.
Updated the build.zig.zon file with the correct deps URLs and hashes. Should build now without problems. 
https://codeberg.org/lukeflo/lui/commit/11e9d6f5f0bbf1a6305339ad5afcd3d9e796e574
However, if you or anyone else find more errors, please report via issues. As said, its still very early and I for sure didn’t catch every error.
2 Likes
Staying busy improving lui I just implemented possibility to create files and dirs (as current user with default permissions), renaming items, as well as having feedback in form of simple status messages (success and error).
Its tested, but not in uncommon scenarios. Thus, if you find some comp/runtime panics, just tell me.
1 Like
Booya, in 0.3.0 just implemented a config .zon file which lets you define directories for fast selection.
Now, lui took over as my every day standard file manager TUI!
Just implemented some more little features:
- Use
X to fast toggle exec bit on files (like chmod +x|-x file)
- Open files with
l | -> | Return
- Set
file_opener in luiconfig.zon for files which should be opened in external programms via a default opener like xdg-open
- Set
tui_opener in luiconfig.zon to open plain text files with a terminal text editor (vim, helix, nano …) in the same terminal window that lui runs in; suspending the latter as long as the file is edited. tui_opener overrides file_opener for plain text files if both are set.
- Some minor fixes. Adding “keybindings” section to README.
Next feature implemented:
- Mark items for one of the operations: yank/copy
y / move m / delete d (toggles).
- Process action for all marked items with
P.
- Items that have been marked for yank/move will be yanked/moved to the currently opened directory.
- Items marked for deletion will either be deleted permanently, or, if the
.trash_folder path in the config file is set, moved to the trash folder.
- Unmark all items with
C.
All of these actions are processed with default setting like permissions etc. Its a nice and quick way for moving some files while in the TUI. However, for more complex file operations or if the files are critical ones, I highly recommend running these processes outside of lui 