rovr is a terminal file manager built with Python's Textual framework. It was born out of a frustration that TUI apps do not support the mouse properly, and I wanted to make a change.
- Modern UI: Built with Textual for a beautiful and functional terminal interface.
- Highly Customizable: Tweak themes, borders, icons, and UI elements to match your exact preference. Configs for nearly everything.
- Batteries Included: Handles file preview, image preview, archive handling and more without reaching to external software (but still has integrations for popular tools out-of-box)
- Cross-Platform: Powered by Python, running smoothly anywhere Python 3.13 is supported. Binaries are also provided.
- Real Mouse Support: Full mouse support for navigation, selection, and actions, making it more intuitive to use.
Currently in public beta similar to yazi. rovr follows the major version 0 scheme, meaning whenever the minor version (like 0.7.0 -> 0.8.0) is done, there are a lot of breaking changes.
I try to minimise them, and guide the user to what had gone wrong and more info on how to fix them, as well as attempt to fix it.
Quick Test:
## uv
uvx rovr
## pipx
pipx run rovr# Install
## uv (my fav)
uv tool install rovr
## or pipx
pipx install rovr
## or plain old pip
pip install rovrWith AUR:
# binary
yay -S rovr-bin
# pip version
yay -S rovrWith scoop (windows):
scoop bucket add le-bucket https://github.com/NSPC911/le-bucket
scoop install rovrWith Conda/Pixi:
pixi global install rovruv run rovrRunning in dev mode to see debug outputs and logs
uv run rovr --dev
# or with poethepoet
poe devthe Textual console must also be active to see debug outputs
uv run textual console
# or uvx if not running from source
uvx --from textual-dev textual console
# or just capture print statements
poe logFor more info on Textual's console, refer to https://textual.textualize.io/guide/devtools/#console
-
What can I contribute?
- Themes and features can be contributed.
- Refactors will be frowned on, and may take a longer time before merging.
-
How do I contribute?
- You need uv at minimum. prek, ruff and ty are automatically installed.
- Clone the repo, and inside it, run
uv sync. - Make your changes, ensure that your changes are properly formatted, before pushing to a custom branch on your fork.
- For more info, check the how to contribute page.
-
How do I make a feature suggestion?
- Open an issue using the
feature-requesttag. Make sure to add details and context to your suggestion.
- Open an issue using the
-
There isn't X theme/Why isn't Y theme available?
- Textual's currently available themes are limited. However, extra themes can be added via the config file.
- You can take a look at what each color represents in https://textual.textualize.io/guide/design/#base-colors
Inheriting themes will not be added. - More info on styling can be found in https://nspc911.github.io/rovr/configuration/theming (dev version)
-
Why not ratatui (rust) or bubbletea (go), why python, why??? sad, angry, weird compiled noises
- I like Python, feel free to leave if you hate it.
-
What's with the name?
-
How should I stylize rovr?
- Just "rovr", please. You can add backticks to it if you want, so
rovr, but please don't capitalise any letters.
- Just "rovr", please. You can add backticks to it if you want, so
-
Why should I use rovr?
- I don't want to sell it to you. I made it for myself. If you don't like it, sure go ahead, use yazi (rust) or superfile (go), or heck even use the cli, I'm not bothered.
-
OhMGee why are there so many borders and so many icons and so many xxx and so many yyy??? more angry noises
- Keep in mind, you can disable them. The screenshot is my setup, and the default setup. Textual CSS lets you hide things, disable borders, etc etc, so you can make it look however you want.
-
Is this vibe-coded?
- Depends on the meaning. AI was used in certain parts of the code, especially in cli functions, but aside from that, it is few and far between. However, AI was used to ensure I don't make mistakes while making changes.
This project is licensed under the MIT License. See the LICENSE file for details.
Thank you so much for starring this repo! Each star pushes me more to make even more amazing features for you!
_ ___ ___ __ _ˍ_ ___
/\`'__\/ __`\ \ /\ \`'__\
\ \ \_/\ \_\ \ V_/ /\ \_/
\ \_\\ \____/\___/\ \_\
\/_/ \/___/\/__/ \/_/ by NSPC911