dae 0.1.17

A Linux daemon management TUI and CLI with a subdued scrin interface.
# dae

`dae` is a Linux daemon management TUI and CLI for systemd services. It uses `scrin` for terminal UI structure with a red/orange flare dark palette by default and plain command output for direct service control.

Built by Trevor Knott and Knott Dynamics.

## Install

```bash
cargo install dae
```

## Run

```bash
dae
```

Run a direct CLI command when you do not need the TUI:

```bash
dae list
dae status
dae status nginx
dae check nginx
dae failed
dae journal nginx
dae events nginx
dae active nginx
dae enabled nginx
dae start nginx
dae stop nginx
dae restart nginx
dae try-restart nginx
dae reload nginx
dae reload-or-restart nginx
dae enable nginx
dae disable nginx
dae mask nginx
dae unmask nginx
dae daemon-reload
dae term nginx
dae kill nginx
```

`dae status` without a service prints a summary and the currently running services. `dae status nginx` prints the full `systemctl status` for `nginx.service`. Bare names such as `nginx` are treated as service units like `nginx.service`.
Short aliases are available for common commands: `ls`, `st`, `log`, `up`, `down`, `bounce`, `ror`, `is-active`, and `is-enabled`.

Useful startup options:

```bash
dae --anomalies
dae --sort memory
dae --theme phosphor
dae --theme cypher
dae --lookback-hours 6
dae --page anomalies
```

## What It Does

- Lists Linux systemd services in a fast terminal cockpit.
- Shows state, PID, memory, restart count, and anomaly signals.
- Ranks services by a heuristic rarity/commonality score to surface custom or unusual daemons.
- Keeps active services grouped above inactive rows, with inactive rows visually subdued.
- Provides a dedicated anomaly page with severity, service, signal, and detail rows.
- Opens service status, journal output, and notable event timelines for the selected daemon.
- Flags failed units, restart storms, missing PIDs, non-success results, and high memory use.
- Provides direct service commands through `systemctl`.
- Also works as a plain CLI for scripts and quick daemon actions: `dae <command> <service>`.

## Rendering

`dae` uses the current published `scrin` render path with an initial full repaint, resize full repaint, and dirty-bounds updates for steady-state frames. Text and table areas are forced back onto solid panel backgrounds so transparent terminals, background images, or old shell output do not bleed through the TUI while scrolling or hovering.

## Controls

- `Tab`: cycle active pane.
- `j` / `k`: move selection or scroll the active pane.
- `Wheel`: scroll the pane under the pointer one row at a time.
- `PgUp` / `PgDn`: scroll by half a pane.
- `Home` / `End`: jump within the active pane.
- `/`: filter services.
- `a`: anomaly-only view.
- `A`: open anomaly page.
- `S`: return to services page.
- `Enter`: from anomaly page, jump to the selected service.
- `Ctrl+P` / `F1` / `?`: command overlay.
- `/` inside command overlay: search commands.
- `N`: start a daemon by typing a service name.
- `H`: action log for this session; `j` / `k` scroll it.
- `o`: cycle sort mode.
- `p`: cycle theme.
- `v`: switch detail pane between journal, status, and events.
- `R`: refresh services.
- `Enter` / `y`: confirm a disruptive action prompt.
- `Esc` / `n`: cancel a disruptive action prompt.

Daemon actions:

- `s`: start selected service.
- `x`: stop selected service.
- `r`: restart selected service.
- `l`: reload selected service.
- `t`: send TERM.
- `K`: send KILL.
- `e`: enable selected service.
- `d`: disable selected service.

`stop`, `restart`, `disable`, `TERM`, and `KILL` ask for confirmation before running.

## Keywords

linux, daemon, systemd, scrin, aisling, dae, rust, Trevor Knott, Knott Dynamics

## Cargo Package

The crate manifest uses a restrictive `include` list for source-controlled package inputs: `Cargo.toml`, `README.md`, `LICENSE`, and `src/**`. Cargo also generates package metadata such as `.cargo_vcs_info.json`, `Cargo.lock`, and `Cargo.toml.orig`. Local sessions, scratch notes, and workspace-only files stay out of releases.