Terminal tools for Linux that show you the system as it is, and preview the exact command line of every change before running it.
Each one is a single static binary. No daemon, no state of its own, nothing left running after you quit. They share a palette, a key language and one promise: the command in the confirm dialog is the command that executes.
tui-tools.github.io — every tool, with
screenshots, install commands per package manager, checksums and what each one
can do to your machine. It is built from each repository's own tool.json, so
a new tool appears there on its first release without anyone editing a page.
| Tool | What it does | |
|---|---|---|
| tui-firewall | The system firewall: rules, policies, logging. ufw today, firewalld planned. | |
| tui-systemd | systemd units: what failed, the journal that explains why, timers, boot times. | |
| tui-snapper | btrfs snapshots, managed by snapper: the history, what changed between any two, and undo. | |
| tui-network | Links, addresses, routes and DNS: systemd-networkd and resolved, with the .network file behind each link. | |
| tui-secure | The machine's security posture: Secure Boot, SELinux or AppArmor, the firewall, sshd, updates and accounts, each with the command behind its verdict. | |
| tui-users | Local accounts, groups, authorized keys and sudo: who exists, what each one can do, and what is worth a second look. | |
| tui-update | Pending package updates across pacman, apt and dnf: what they restart or reboot, what is a security fix, and a snapshot before. | |
| tui-disk | Disks, mounts and fstab crossed against each other, btrfs filesystems in full and the SMART health of every drive. | |
| tui-ssh | The SSH server as it really is: the effective sshd_config with a verdict per setting, live sessions, failed logins and host keys. | |
| tui-logs | The systemd journal: every filter a journalctl argument, the command it adds up to on screen, and vacuuming previewed before it runs. | |
| tui-cron | Every scheduled job on one screen, systemd timers and cron together, with each schedule read back in English next to the expression. | |
| tui-cert | Every TLS certificate on the machine, worst first: what expires when, whose key is not its key, and what a server is really serving. | |
| tui-containers | Every container on one screen, docker and podman together: what is wrong first, one container in full, and its log. | |
| tui-samba | The Samba file server: shares worst first with the Unix permissions behind them, the accounts, and who is connected right now. |
| Also here | |
|---|---|
| tui-kit | The shared foundation: theme, widgets, config loader, command runner. |
| tui-template | A working skeleton for a new tool. Press Use this template. |
tui-firewall --demo
tui-systemd --demo
tui-snapper --demo
tui-network --demo
tui-secure --demo
tui-users --demo
tui-update --demo
tui-disk --demo
tui-ssh --demo
tui-logs --demo
tui-cron --demo
tui-cert --demo
tui-containers --demo
tui-samba --demo--demo runs against sample data. Every key works, every command is built and
previewed for real, and nothing touches your system.
They hold for every tool here.
- Preview, then confirm. No tool changes anything without first showing the exact command line. The confirm dialog is the only path to a mutation, and the value it displays is the value that runs.
- Read-only by default. Starting a tool only reads state.
- No daemon, no state of its own. The system is the source of truth; the tools re-read it after every change.
- Runs as you. Reads work unprivileged wherever the underlying tool allows
it; only an action escalates, through
sudo -n, which never prompts. - Backend behind an interface. The UI never names a binary, which is what
lets
tui-firewallgrow a firewalld backend without touching its screens. - Responsive. Layouts adapt from a 40-column pane to a full screen.
Every tool is tui-<target>: the repository, the Go module, the binary and
the config directory all carry that one name, with no aliases. tui-<name>-<solution>
only when a target genuinely needs disambiguating.
The default palette is Tokyo Night. If you run Omarchy,
the tools read your active desktop theme from
~/.config/omarchy/current/theme/colors.toml and follow it, so switching your
desktop theme switches every tool. TUI_THEME overrides, and NO_COLOR drops
color while keeping layout.
Unofficial. These tools follow the Omarchy visual style and read its theme files. They are not part of the Omarchy project and are not endorsed by its maintainers.
The list the family set out to build is complete: every tool above exists, runs
and has a --demo. What comes next is depth rather than breadth — a
firewalld backend for tui-firewall, so Fedora and RHEL-family machines get
the same screens ufw users have today.
Which means the next tool is whichever one somebody asks for. If there is a part of a Linux machine you keep reading through four commands and a manual page, open an issue on tui-tools/.github and say so.
Early, under validation. Expect rough edges, and please report them — a bug report from a real machine, with the output the tool showed, is the most useful thing anyone can send right now.
MIT, per repository.
Created and maintained by Edimar Cardoso (@edimarlnx on X, edimarlnx on GitHub). Sponsor this work: github.com/sponsors/edimarlnx
