class Rooibos::Command::System

Runs a shell command and routes its output back as messages.

Apps run external tools: linters, compilers, scripts, system utilities. The runtime dispatches the command in a thread, so the UI stays responsive. Batch mode (default) waits for completion; streaming mode shows output live. Orphaned child processes linger and waste resources, so cancellation sends SIGTERM for graceful shutdown, then SIGKILL to prevent orphans.

Use it to run builds, lint files, execute scripts, or invoke any CLI tool.

Batch Mode (default)

A single message arrives when the command finishes: [tag, {stdout:, stderr:, status:}]

Streaming Mode

Messages arrive incrementally:

The status is the integer exit code (0 = success).