DEV Community

Cover image for [veld-fm] I Built a Terminal File Manager with Tiling Panels Because I'm Obsessed with Keyboard Shortcuts
Angshu Roy
Angshu Roy

Posted on

[veld-fm] I Built a Terminal File Manager with Tiling Panels Because I'm Obsessed with Keyboard Shortcuts

Hey dev community! đź‘‹

Like a lot of you, I live in my terminal. It's fast, it's clean, and with the right tools, it’s the most productive environment on Earth. I'm a huge fan of keyboard-driven file managers like ranger and nnn—they feel like superpowers.

But I always had this one little itch I couldn't scratch: I wanted true, out-of-the-box tiling panels. I love my tiling window manager, and I wanted that same side-by-side workflow for my files without having to write a complex script.

So, I decided to build my own solution. I'm excited to introduce veld!

A screenshot of the veld file manager in action.

It’s a modern, terminal-based file manager built from the ground up with the incredible Textual framework for Python.

So, What's the Big Deal?

veld is my take on what a simple but powerful TUI file manager should be. The goal was to create something that’s easy to use, easy to configure, and makes you feel like a keyboard wizard.

Here’s what you get:

🗂️ First-Class Tiling Panels: This is the core feature. Press o to open a new panel, give it a path, and boom—you have a side-by-side view. Close the active panel with w. Navigate between them with Tab. It just works.

⌨️ A Keyboard-First Workflow: No mouse needed. All the essential file operations are at your fingertips:

  • Copy (c), Move (m), Rename (n), Delete (r)
  • Archive (a) and Extract (x) zip/tar files directly.
  • Select files with spacebar.

🎨 Super Simple Configuration: I didn’t want to mess with complex scripting languages just to change a keybinding. veld creates a simple config.toml file for you on its first run. Want to change a key? Just edit a single line.

# Your config is at ~/.config/veld-fm/config.toml
[keybindings]
quit = "q"
add_panel = "o" 
close_panel = "w" 
# ...and so on
Enter fullscreen mode Exit fullscreen mode

✨ Built with Modern Tech: Textual makes building TUIs in Python an absolute joy. It’s responsive, looks great, and makes features like path autocompletion easy to implement. Plus, since it’s all Python, it’s cross-platform and easy for anyone to hack on.

Target Audience

This project is for people who:

  • Love tiling, but want it to work instantly without extra setup.
  • Prefer a simple config file over writing shell scripts.
  • Are curious about what’s possible with modern TUI libraries like Textual.
  • Just want to try something new and fun!

Comparison

I want to be clear: similar tools like range those tools are incredible, and veld stands on the shoulders of giants. This project isn’t trying to replace them, but to offer a different flavor for people who:

🚀 Give It a Spin!

veld is open-source (MIT license), and I would be absolutely thrilled if you checked it out. The best projects are built with community feedback, so I'm hungry for your thoughts, feature ideas, and bug reports.

You can find the project on GitHub:
➡️ https://github.com/BranBushes/veld-fm

Installation

You'll need Python 3.9+ and pip. You can install the latest version directly from GitHub:

pip install git+https://github.com/BranBushes/veld-fm.git
Enter fullscreen mode Exit fullscreen mode

(You can also use uv pip install ... if you're on the uv train!)

This will install the veld command on your system. Just run it from your terminal:

# Start in your home directory
veld

# Or start in a specific directory
veld ~/Projects
Enter fullscreen mode Exit fullscreen mode

What's Next?

I have a few ideas, like adding file previews and improving performance, but I'm most excited to hear what the community wants. What's a must-have feature for you in a file manager? Have you found a bug I missed?

Let me know in the comments below or open an issue on GitHub. Thanks for reading, and happy hacking!

Top comments (0)