The agent · CLI + GitHub Action

Egret.
Default-deny egress for your CI.

Egret wraps a command and watches it through eBPF - every outbound connection, process, and file write. In block mode it enforces a domain allowlist. No server, no account, no phone-home.

Capabilities

What Egret watches.

Network egress

Records every outbound connection - PID, process, IP, port, and domain when DNS is correlated. See exactly what your build talks to.

Egress enforcement

Block mode is default-deny with a domain allowlist, backed by a local DNS proxy and an nftables dynamic allow set. Fail-closed teardown.

Process tree

Observes execve/fork through eBPF to reconstruct the whole process tree of a run - what spawned what.

File writes

Flags writes to protected paths - .git/, ~/.ssh/, /etc/ - so a compromised step tampering with your source is visible.

Audit mode

Observe a run, then emit a ready-to-paste suggested allowlist. Start in audit, graduate to block with confidence.

Reports everywhere

Markdown + JSON + SARIF, written to the GitHub Actions job summary and uploaded to Code Scanning. No server required.

All features → · How enforcement works →

Quickstart

Audit first, then enforce.

Observe a run in audit mode (zero risk), turn the observed endpoints into a policy, then flip to block to enforce it - as a GitHub Action or the CLI.

Track it

Roadmap & changelog.

See what shipped and what's next for the agent.