tui-tools

tui-systemd

systemd units: what failed, why, and every action previewed

v0.1.1systemdMIT
The unit list, with failed units sorted to the top
The unit list, with failed units sorted to the top

A terminal UI for systemd. It opens on what failed — failed units sort first, always — and puts the journal that explains why one key away. Timers show what is scheduled and when it last fired; the boot view shows what made the last boot slow.

The unit list merges list-units --all with list-unit-files, so a unit that is installed but has never started is visible too. Every read works as an ordinary user, so the tool opens instantly and without a password; only an action escalates, and only behind a confirm dialog showing the exact systemctl command line.

Run tui-systemd --demo for a sample machine with a couple of interesting failures. Nothing touches your system.

Keys

KeyAction
j / enterJournal for the selected unit
fIn the journal: follow, re-reading every 2s
s / xStart / stop the selected unit
r / lRestart / reload the selected unit
e / DEnable / disable the selected unit
m / MMask / unmask the selected unit
dReload the systemd manager (daemon-reload)
tabCycle the state filter: all, failed, active, inactive
/Filter by name, description or state
tTimers
bBoot times, slowest first
?Help
qQuit

Press ? inside the tool for the full help screen, which is generated from the same action table as the key map.

Compatibility

This tool is a face on the program below, so its version matters.Tested is not a claim: a version lands there only after the tool's own suite passed against it on a real machine in the lab, and the run is kept as evidence in the repository. At startup the tool probes the backend once and says what it found in its header — a version nobody has run against is shown as(untested) in the warning colour, one older than the minimum as (below minimum) in the error colour. Neither stops it: the backend still refuses what it cannot do, in its own words.

systemd

systemctl ≥ 230
Binary
systemctl
Minimum
230
Probed with
systemctl --version
Tested
255259261

Needs a version this new

  • timerssince 250
  • boot-blamesince 230

What changes on older versions

  • systemd <250

    list-timers has no JSON output, so the timers view is not offered: the text table cannot be parsed without mangling its timestamps

  • systemd <245

    list-units --plain is absent on some builds, so the unit list falls back to the decorated output

Install

Once per machine, then every tool in the family is one pacman away.

Add the repository
$ curl -fsSL https://pkgs.tui.tools/install.sh | sh
Or run the same thing yourself, one command at a time

A family whose whole promise is preview before you run is not going to insist you pipe a script into a shell. These are the commands that script runs.

The one-time setup, by hand
$ curl -fsSL -o /tmp/tui-tools.asc https://pkgs.tui.tools/pubkey.asc
  sudo pacman-key --add /tmp/tui-tools.asc
  sudo pacman-key --lsign-key \
    "$(gpg --show-keys --with-colons /tmp/tui-tools.asc | awk -F: '/^fpr:/{print $10; exit}')"
  printf '[tui-tools]\nServer = https://pkgs.tui.tools/arch/$arch\n' \
    | sudo tee -a /etc/pacman.conf
  sudo pacman -Sy
Arch Linux · tui-systemd
$ sudo pacman -S tui-systemd

Upgrades then arrive with the rest of your system updates.

What it can do to your machine

  • Preview, then confirm

    Every change is shown as an exact command line and confirmed before it runs. The dialog and the runner receive the same value, so the preview cannot drift from what executes.

  • Escalates for actions

    Only actions escalate: start, stop, restart, reload, enable, disable, mask, unmask and daemon-reload. Every read — the unit list, the journal, timers and boot times — works as an ordinary user. Escalation goes through sudo -n, which never prompts.

  • No daemon, no state of its own

    Nothing keeps running after you quit, and nothing is installed to run later. The system is the source of truth; the tool re-reads it after every change.

  • No network access

    The tool opens no network connection of its own. No telemetry, no update check, no phone home.

  • Static binary

    Released statically linked, with no runtime dependencies to install.

  • Releases are not signed yet

    Releases carry SHA-256 checksums but no signature. Verify the checksum, and read this as the open item it is.

Reporting

Report a security issue privately, through GitHub's private vulnerability reporting on the repository's Security tab. The family-wide policy, and what counts as in scope, is on the security page.

Downloads

v0.1.1 · 2026-08-30
FileSizeSHA-256
checksums.txt800 B
tui-systemd-0.1.1-1-aarch64.pkg.tar.zst1.6 MB15812a8e8091f1550c0619571e93aa98f06d45c1b5d0e109bdca23845989b139
tui-systemd-0.1.1-1-x86_64.pkg.tar.zst1.8 MB2c9669ade34f89076c441d6782a92420259fb36b12e6b1d4ea7df4be4b4fe0ef
tui-systemd-0.1.1-1.aarch64.rpm1.6 MBfe6b868729343a3a1a53ad9b22202d8811b811b06a854f79d67dccc081740590
tui-systemd-0.1.1-1.x86_64.rpm1.8 MB90b934a2ace936d028e8db96b05164e0d105417aa2f9666208c091060e53174c
tui-systemd_0.1.1_amd64.deb1.8 MBa2fbad2130f1c9cc5be064f13054043264877503142fb97aa557c54af8dc4179
tui-systemd_0.1.1_arm64.deb1.6 MBf0c6ac599e47e9b7fab1c3a92da40a95882582790beab3060488816c8982d760
tui-systemd_0.1.1_linux_amd64.tar.gz1.8 MB6bd47534c81e614b0ac47a8f93e06641b6e7224edf723419371357358d5e5eb7
tui-systemd_0.1.1_linux_arm64.tar.gz1.6 MBf0d3d9c39a0eb4451dc80ff238a0ce2ef4aa8fc6cd3b3502be690fc3d2e61295

Every release ships a checksums.txt. Download it next to the archive and run sha256sum -c checksums.txt --ignore-missing. See verifying a download.

Releases

v0.1.1

2026-08-30
## Changelog
* 55c26e36517200cf3eb916a0d859a6ab9b4903c9 Add --check, a non-interactive read path, and a backend smoke test
* 52960eba1d2c6411dd6c5f4a90bf856a7659ef01 Add tool.json and generate the README Install section from it
* 37182a9e794425cd61069a1baa6d6ceb8e7af1a4 Ask systemd what it can do instead of assuming
* c14626c0231c384400b90851f672686181f7dee6 Bump the github-actions group with 5 updates (#1)
* 1e83fa96c2b7ed0e5754df7c78392b5cb68c71aa Hold this tool to the family's lint bar
* ac2444ed78c1bb6f0663e55f3c2e0714eb00f2ed Packages are available from pkgs.tui.tools
* 7e53d37debbd473656a1fd2dbea0be8983c8914c Re-pin the kit at v0.1.3 for the help panel width fix
* 7ad6994385857efd512dbd079c5844ce915e8608 Re-pin the kit at v0.2.3
* 3a933fd3a85dafb9a423996d7bbcaeefa830871e Ship the tool as a .deb, an .rpm and a pacman package

v0.1.0

2026-08-29
## Changelog
* 442fa7abb0c573356df05ae4c54e973473a7ad2f Add tui-systemd v0.1, a TUI for systemd units