dae 0.1.13

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 subdued KnottCode-inspired dark palette 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 nginx
dae journal nginx
dae events nginx
dae start nginx
dae stop nginx
dae restart nginx
dae reload nginx
dae enable nginx
dae disable nginx
dae term nginx
dae kill nginx
```

Bare names such as `nginx` are treated as service units like `nginx.service`.

Useful startup options:

```bash
dae --anomalies
dae --sort memory
dae --theme phosphor
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.
- 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.
- `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.