steerable-egress-proxy
Optional Steerable component: a local, allow-listing CONNECT egress proxy.
Why it exists
The sidecar's OS sandboxes cannot do per-host egress on their own:
macOS Seatbelt degrades hostnames to ports (*:443), and Linux bwrap can
only drop the whole network namespace. The remedy on both is the same —
confine the sidecar to localhost:<proxy port> and let this proxy own the
host list. See docs/spec/safety.md ("Egress allow-list") for the full
threat model.
Usage
steerable-egress-proxy --bind 127.0.0.1:8899 \
--allow api.deepseek.com \
--allow localhost:11434
- Only
CONNECT host:portis served (HTTPS tunneling). Plain-HTTP forwarding and TLS interception are deliberately out of v1 scope. - Bare
hostentries allow ports 443 and 80, mirroring the Seatbelt profile semantics so the two layers agree. - Fail-closed by construction: an empty allow-list is a startup error,
not "open"; targets off the list get
403; non-CONNECT gets405. - Request heads are capped at 16 KiB; upstream dials time out after 10s.
Wire-up with the sandbox: set the sidecar's egress allow-list to
localhost:8899 only, and point the sidecar's HTTP stack at the proxy
(HTTPS_PROXY=http://127.0.0.1:8899 — httpx honors it). The sandbox then
pins the process to the proxy and the proxy enforces the host list.
Release files for steerable-egress-proxy 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| steerable_egress_proxy-0.3.0.tar.gz | 7.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| steerable_egress_proxy-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.1 kB
Release files / steerable_egress_proxy-0.3.0.tar.gz
| Download URL | steerable_egress_proxy-0.3.0.tar.gz |
|---|---|
| Size | 7.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d46324572b56a01d1b78246964e5244bd547d0a697f1878e2cc01de05ca1737e
|
|
BLAKE2b-256 checksum How to use checksums |
834e3060aff334b9dd36b54f39ed6dd5090b56a9474c0a87e8ff16e9982b6adc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / steerable_egress_proxy-0.3.0-py3-none-any.whl
| Download URL | steerable_egress_proxy-0.3.0-py3-none-any.whl |
|---|---|
| Size | 7.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5e89656747193515c89eb40814a2eec64c09549687e3ee51ed0e97a2fb8a71d1
|
|
BLAKE2b-256 checksum How to use checksums |
760dd520b18e69f20061caca9f7464c1ccbe902afa0115f3a86c411ca107e4a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|