Local output boundary
for command execution
HushLine runs a command, then redacts and shapes stdout and stderr before they reach a prompt chain, automation step, or CI log. No telemetry. No cloud dependency.
Beta AGPL-3.0 Active Development
$ hushline mute -- terraform plan
Plan: 3 to add, 1 to change
token = [REDACTED]
… 1,284 noisy lines bounded
✓ exit code preserved
01 / Capabilities
A smaller, quieter execution boundary. HushLine is deliberately thin — it does not replace a secret manager or sandbox; it gives command output a deterministic local filter before the next system sees it.
◈Local by construction — Filtering happens on the machine running the command, with no network reporting or telemetry.
◈Regex redaction — Mask tokens, credentials, and project-specific patterns using explicit, reviewable rules.
◈Output bounds — Limit line count and width so unexpected command output cannot flood prompts or logs.
◈Noise shaping — Strip ANSI sequences and apply ordered silence rules while preserving useful structure.
◈Permit gate — Optionally require a local marker before commands can execute in a working directory.
◈Exit semantics — Keep the child process exit code and choose whether stderr is shaped or discarded.
Command contract
One command surface, implemented identically by all four cores. See Cores for the full registry and isolation rules.
hushline mute -- <command> [args...] # run and shape output
hushline manifest init [--global|--local]
hushline permit [status|allow] [path] # local permit gate
hushline version
02 / Pipeline
One contract, four implementations. The Go reference, Rust, Python, and Node cores implement the same command contract independently and produce byte-identical output in the published benchmark corpus.
→
→
Redact + bound
strip, mask, limit
→
Return shaped
output + status
03 / Install
Choose the core that fits your stack. Each core is a standalone package — you do not need the other runtimes.
go install github.com/anulum/HushLine/cmd/hushline@latest
04 / Evidence
Measured, not generalized. Published results for a 20,000-line, approximately 1.04 MB fixture over seven repetitions. Output was byte-identical across all four cores.
| Core | Median latency | Throughput | Output parity |
| Rust | 5.07 ms | 204.7 MB/s | Byte-identical |
| Go | 12.85 ms | 80.7 MB/s | Byte-identical |
| Node | 52.94 ms | 19.6 MB/s | Byte-identical |
| Python | 59.85 ms | 17.3 MB/s | Byte-identical |
These figures are hardware- and workload-specific, not universal performance claims. Reproduce them from the public repository before making deployment decisions.
05 / Security boundary
Defense in depth, with explicit limits
HushLine reduces accidental disclosure in output; it is not a secret-management guarantee.
⚠The child process still receives its configured environment and permissions.
⚠--raw intentionally bypasses redaction and shaping.
⚠Redaction regexes need review and tests for your own credential formats.
⚠Use sandboxing, least privilege, and a real secret manager alongside it.