Command-scoped egress

One command.
One guarded path.

Route a Linux command through an explicit TCP/UDP proxy. Add transparent TLS inspection only when you need request-level evidence.

  • One CLI binary
  • No daemon
  • Linux
  • JSONL evidence
A navy guarded arch opening onto a rainbow path

Bifröst is the route. The arch is the boundary.

Quick start

From install to first run.

Heimdall is a foreground CLI. Nothing stays running after the command exits.

  1. 1
    Install

    Choose npm, PyPI, Cargo, or a signed release archive.

  2. 2
    Authorize setup once

    Allow only the exact native binary's __setup-worker.

  3. 3
    Initialize and run

    Create a policy, validate it, then wrap one command.

terminal
# install the CLI
cargo install heimdall-egress --locked

# create and check config
heimdall init
heimdall config validate --json

# route one command
heimdall run -- curl https://example.com
Complete the narrow one-time authorization before the first run. Install guide →
npm i -g heimdall-egress uv tool install heimdall-egress cargo install heimdall-egress --locked All install options →
Usage

Proxy first. Inspect when needed.

Routing, capture, and TLS decryption are separate choices.

01

Proxy only

Route TCP and UDP through SOCKS5, direct, or reject rules. TLS stays opaque.

heimdall run -- your-command
Command workflows →
02

Proxy + TLS evidence

Opt into runtime or relay inspection. Evidence goes to the same per-run JSONL log.

heimdall logs query \
  --run RUN_ID --kind tls.* --jsonl
Capture and decrypt →
Agent-native

Files and standard Linux tools are the interface.

heimdall agentheimdall logs summary --run RUN_ID --json | jq
Architecture

A foreground path with a clear owner.

The CLI owns every per-run resource and removes it when the process tree exits.

01Commandheimdall run
02ScopeTransient cgroup
03PolicyDNS + route rules
04RelayPer-run TCP/UDP
05OutboundProxy / direct / reject
No host-wide proxyNo persistent listenerNo silent direct fallback Full architecture →