In this section
Product / normative requirements

Product contract

Heimdall runs one CLI command and its descendants through an explicit TCP/UDP egress policy, with optional transparent TLS inspection. This page is the normative summary; detailed docs must agree with it.

One binary, one foreground lifecycle

Command-scoped network contract

Independent capture and TLS boundaries

ModeContract
offProxy TLS as opaque transport.
runtimeObserve supported startup-discovered OpenSSL APIs without changing trust.
relayTerminate TLS in the per-run relay with explicit private CA material.
CaptureWrite bounded private SHA-256 blobs referenced by heimdall.event/v1 with an explicit byte boundary.

Selecting a TLS mode is not proof of plaintext. Agents must read the reported capability and event boundary. When a complete bounded HTTP/1 header is present in explicit plaintext capture, Heimdall may emit a derived record linked to its source sequences; common credential headers are masked and bodies are not copied into JSONL.

Agent evidence is file-first

Optional viewer

A future Web UI is explicitly started, unprivileged, and read-only. It reads the same files directly and has no authority over policy, TLS, capture, or the data plane. Its lifecycle cannot affect a run.

Platform and acceptance scope

Linux cgroup v2 plus eBPF is available. macOS remains planned as separately measured wrapper and NETransparentProxyProvider paths. A capability becomes available only with a machine contract, documented failure behavior, and relevant unit or disposable real-eBPF VM acceptance.