Having spent over 25 years in software development and managing countless Linux environments, I've accumulated a vast collection of custom bash scripts, containers, and CLI tools. Remembering their exact paths and managing them efficiently directly from the terminal is a common challenge. To solve this, I built mytuis.
mytuis is a small, attractive terminal UI for managing a personal catalogue of applications. It is built with gum and plain bash, with persistent storage in a human-readable YAML file.
GITHUB REPO : https://github.com/horaciod/mytuis
Why mytuis?
I wanted a tool that didn't require heavy dependencies or a complex setup, but still looked great and provided a smooth user experience. Here is what mytuis brings to the terminal:
- CRUD operations: You can create, read, update, and delete application entries from a single menu.
- Quick launch: Pick an app from the filterable list and it is launched immediately. It replaces the manager process via exec, meaning no extra shell window is left behind.
- Smart path handling: It accepts absolute paths (like /usr/bin/firefox), relative paths (./scripts/myscript.sh), tilde paths (~/bin/foo), or plain command names looked up in your $PATH (firefox).
- Persistent metadata: Every entry stores its name, description, absolute path, creation date, and last-used date.
- Friendly TUI: You get clear menus, color-coded messages, and clean borders, all powered by gum.
Under the Hood: Plain Text and Standard Utils
Simplicity and standard compliance were key goals. mytuis requires bash ≥ 4 and standard Unix utilities like awk, sed, grep, date, and tput.
Your catalogue is stored at ~/.mytuis.yaml. Because it is a standard YAML file, it can be inspected, edited, or backed up with any text editor. It is also completely safe to sync with a dotfiles repository or version-control.
To ensure data integrity, all file operations are performed atomically by rewriting the YAML file from scratch on every change, so there is no risk of leaving the file in a half-written state.
How to Get Started
First, ensure you have gum installed using your package manager (brew install gum for macOS, pacman -S gum for Arch, or apt install gum for some Debian-based distros).
Then, copy mytuis.sh somewhere on your $PATH:
Bash
install -m 755 mytuis.sh /usr/local/bin/mytuis
Alternatively, you can simply run it directly from the cloned repository using ./mytuis.sh. The script creates the ~/.mytuis.yaml file automatically on the first run.
From the main menu, you can start adding your apps. You'll just need to provide a unique name, a free-form description, and the path. The list is filterable, so you can quickly find any app by typing into the prompt.
Give it a try in your own terminal workflow and let me know what you think!

Top comments (0)