Automatic redaction: what it covers
hiloop run wraps your process in a capture proxy. That proxy uses a maintained credential detector
catalog to scrub high-confidence matches out of the copy it captures, before the copy is stored.
Traffic forwarded to the destination is never modified, so redaction cannot change what your agent
sends or receives.
On that path, automatic redaction covers:
- Captured HTTP request and response bodies. High-confidence detectors cover common provider,
source-control, chat, payment, cloud, and private-key credential formats, plus
Bearerandhil_tokens. Each match is replaced with[REDACTED]. PII and generic high-entropy matching are deliberately disabled, so ordinary prose and useful payloads survive untouched. - Environment variable values you opted into capturing with
--env-allowlist. Each listed value runs through the same patterns before it is recorded. Variables you do not list are never read.
OAuth token exchanges are metadata-only
For supported Claude Code and Codex login and refresh token endpoints, hiloop does not collect the request body, response body, or query values at all. It records only query-free exchange metadata, status, encoding, observed byte counts, and the fact that the payload was omitted. Neighboring model requests and other traffic to the same providers remain full capture. This is an exact list of reviewed stock-client endpoints, not a generic OAuth classifier. Unknown OAuth providers and custom login endpoints remain captured and receive the normal credential scan. The omission is independent of the redaction toggle because the sensitive bytes never enter capture storage in the first place.What automatic redaction does not cover
This is the part to plan around. Everything below reaches the store as produced, because it does not pass through the pattern scrubber at any layer.
A separate category never reaches the store at all, which is a different mechanism with a different
failure mode:
- Request and response headers are not captured, apart from
Content-TypeandContent-Encoding. No other header value is written to telemetry, soAuthorization,Cookie,X-Api-Keyand friends do not appear there. This is a stronger outcome than scrubbing, but it comes from not collecting headers rather than from scanning them. - Body bytes past the per-message capture cap are not captured, so they are neither stored nor scanned.
- Environment variables you did not list in
--env-allowlistare never read.
Is redaction on, and can it be turned off?
Forhiloop run and managed sandbox capture, generic credential-pattern redaction is on by default.
For a local run, hiloop run --no-redact disables that generic scan and persists ordinary captured
bodies and explicitly allowlisted environment values verbatim. This can preserve a payload when a
detector mistakes useful data for a credential. Managed sandbox capture does not expose this
opt-out.
--no-redact never disables the supported OAuth token-exchange omission. Those exact exchanges
remain metadata-only because their body and query bytes never enter capture storage.
The open-source capture engine also accepts --no-redact or HILOOP_NO_REDACT when invoked
directly.
Ingest and export do not add a layer
There is no server-side redaction stage. The gateway stores what it receives, and the forward sink and OTLP exporter re-run no redaction, so forwarded events carry whatever scrubbing happened at capture and nothing more. If your destination needs a stricter guarantee than the capture layer provides, apply it in the pipeline you own on the far side.What to protect
Avoid capturing or exporting:- API keys and bearer tokens;
- session cookies;
- private keys;
- passwords;
- cloud credentials;
- package registry tokens;
- customer personal data unless your deployment and agreement allow it;
- proprietary prompts or payloads where policy requires metadata-only capture.
Capture controls
hiloop run captures network traffic, OTLP telemetry, and stdio by default. Use opt-outs when a run
should capture less:
--net-capture=off when decrypting the child process’s HTTPS traffic is not appropriate. Use
--no-otlp when you only want network and stdio capture. Use --no-redact only when preserving
ordinary payloads verbatim is more important than the generic credential-pattern backstop.
Capturing less is the most reliable control on this page. It is the only one that does not depend on
a pattern matching the secret you are worried about.