https://github.com/kainctl/isd
isd (interactive systemd) – a better way to work with systemd units
https://github.com/kainctl/isd
cli systemctl systemd textual tui
Last synced: 4 months ago
JSON representation
isd (interactive systemd) – a better way to work with systemd units
- Host: GitHub
- URL: https://github.com/kainctl/isd
- Owner: kainctl
- License: other
- Created: 2025-01-16T19:37:15.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-10-22T05:22:48.000Z (6 months ago)
- Last Synced: 2025-11-30T20:48:05.981Z (5 months ago)
- Topics: cli, systemctl, systemd, textual, tui
- Language: Python
- Homepage: https://kainctl.github.io/isd/
- Size: 24.5 MB
- Stars: 2,008
- Watchers: 7
- Forks: 22
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Security: docs/security.md
- Roadmap: docs/roadmap.md
Awesome Lists containing this project
- awesome - kainctl/isd - isd (interactive systemd) – a better way to work with systemd units (Python)
- my-awesome - kainctl/isd - 03 star:2.1k fork:0.0k isd (interactive systemd) – a better way to work with systemd units (Python)
README
# isd – *i*nteractive *s*ystem*d*

> `isd` – a better way to work with `systemd` units
Simplify `systemd` management with `isd`!
`isd` is a TUI offering fuzzy search for units, auto-refreshing previews,
smart `sudo` handling, and a fully customizable interface
for power-users and newcomers alike.
`isd` is a keyboard-focused, highly customizable TUI with the following features:
- Quickly switch between `system` and `user` units
- Fuzzy search units
- Auto refresh previews
- Quickly open outputs in a pager or editor
- Auto `sudo` prefixing if required
- Auto rescale depending on terminal window size (fluid design)
- Extensive command palette with many keyboard shortcuts
- Fully configurable keybindings
- Optional input state caching for common inputs
- Theme support
- YAML configuration file _with auto-complete_
## Demo
https://github.com/user-attachments/assets/a22868c0-fc01-4973-86ea-410b80b188a8
[Click here for a higher quality recording](https://kainctl.github.io/isd/#working-with-isd).
## Documentation
The documentation is live at:
-
## Installation
The tool can be installed via `uv`, `nix`, and as an `AppImage`.
Refer to the [official installation documentation](https://kainctl.github.io/isd/#installation) for more details.
## Road map
A collection of some _unordered_ ideas that could improve `isd`:
- [x] Add icon for project and application menu
- [x] Support old `systemd` version
- [ ] Option to view the security rating of units
- [ ] Improve highlighting of `systemd` units (tree-sitter grammar)
- [ ] Write a custom, more secure `$EDITOR` integration (more secure `sytemctl edit`)
- [ ] Allow customization of preview windows
- [ ] Improve `journal_pager` integration
- [ ] Add custom sort options
- [ ] Faster fuzzy search
- [ ] Improve default themes
## Acknowledgments
Big thanks to the developers of:
- [systemd](https://systemd.io/) for creating the most widely used service manager for Linux
- [NixOS](https://nixos.org/) for piquing my interest in `systemd` and service managers
- [`sysz`](https://github.com/joehillen/sysz) for providing a starting point and a desire to build a more complex `systemctl` TUI
- [textual](https://textual.textualize.io/) for making it a breeze to create TUIs in Python
- [mkdocs-material](https://squidfunk.github.io/mkdocs-material/) for building a solid and simple to use static site generator for the documentation
- [asciinema](https://docs.asciinema.org/) for developing an easy to use _and self-hostable_ terminal recorder and player
- [vhs](https://github.com/charmbracelet/vhs) for creating a scriptable terminal program
- [posting](https://github.com/darrenburns/posting) for showing me how to use `textual`
## Star history ⭐
[](https://star-history.com/#kainctl/isd&Date)