Hook supports three proxy protocols:
http:// scheme. For HTTPS targets, Hook opens a CONNECT
tunnel through the proxy. For plain HTTP targets, Hook sends requests
with an absolute URI.https:// scheme. Hook connects to the proxy over TLS, then
opens a CONNECT tunnel to the target. The proxy connection itself is
encrypted.socks5:// scheme. The proxy handles routing transparently
for both HTTP and HTTPS targets.All three proxy types support optional username/password authentication embedded in the proxy URL.
Set the global proxy in the Settings tab or in hook.conf:
proxy_enabled = 1
proxy_url = http://proxy.corp.example.com:3128
The proxy URL format is:
scheme://[user:pass@]host:port
Examples:
http://proxy.corp.example.com:3128
http://alice:s3cret@proxy.corp.example.com:3128
https://secure-proxy.corp.example.com:3129
socks5://socks.corp.example.com:1080
socks5://alice:s3cret@socks.corp.example.com:1080
When proxy_enabled is 0 (default), no proxy is used
regardless of the proxy_url value.
Each request has an optional proxy override field in its Settings tab. When set, it overrides the global proxy for that request only.
In the GUI, type the proxy URL into the “Proxy override” field in the request Settings tab.
In collection JSON:
"proxy_override": "http://other-proxy:8080"
When the override field is empty or absent, the global proxy setting applies.
Set the proxy override to the special value direct:// to
bypass the proxy entirely for one request, even when a global proxy is
enabled.
In collection JSON:
"proxy_override": "direct://"
In the curl export, this produces --noproxy '*'.
The no_proxy configuration field is a comma-separated
list of hostnames or patterns that should bypass the proxy. Set it in
the Settings tab or in hook.conf:
no_proxy = localhost,127.0.0.1,.corp.example.com
Matching rules:
proxy.corp matches
only proxy.corp..example.com matches api.example.com and
v2.api.example.com but not example.com.* matches everything (bypass
proxy for all targets).Matching is case-insensitive. Whitespace around entries is trimmed.
Embed credentials directly in the proxy URL:
http://alice:s3cret@proxy.corp.example.com:3128
For HTTP and HTTPS proxies, this sends a
Proxy-Authorization: Basic header with the CONNECT request
(HTTPS targets) or with the proxied request (plain HTTP targets).
For SOCKS5 proxies, this uses the SOCKS5 username/password authentication sub-negotiation (RFC 1929).
When the target URL is HTTPS and the proxy is an HTTP proxy, Hook:
CONNECT target_host:target_port HTTP/1.1.Proxy-Authorization: Basic ... if credentials
are set.200 Connection established.The proxy sees only the CONNECT request. It cannot inspect the encrypted TLS payload.
When the target URL is plain HTTP and the proxy is an HTTP proxy, Hook:
GET http://target_host:port/path HTTP/1.1.Proxy-Authorization: Basic ... if credentials
are set.The proxy forwards the request to the target server.
When the proxy scheme is https://, Hook:
CONNECT target_host:target_port HTTP/1.1 over the
encrypted channel.Proxy-Authorization: Basic ... if credentials
are set.200 Connection established.This is useful when the proxy itself requires an encrypted connection (e.g., corporate proxies exposed over the internet).
When the proxy scheme is socks5://, Hook:
SOCKS5 handles routing transparently. The request line uses a normal relative path, not an absolute URI.
In the Settings tab, the proxy URL is validated when entered. To test proxy connectivity, enable the proxy and send a request. Proxy connection errors appear in the response error message and in the activity log.
When the curl subprocess backend is selected (Settings tab checkbox), proxy settings are passed to curl as command-line flags:
--proxy <url>--noproxy <list>--noproxy '*'curl handles CONNECT tunneling, SOCKS5, and proxy authentication natively.
The hook export CLI command includes proxy flags in the
generated curl command:
curl -X GET "https://api.example.com/users" --proxy http://proxy:3128 --noproxy localhost,.internal
When proxy_override is direct://:
curl -X GET "https://api.example.com/users" --noproxy '*'
The proxy URL is malformed. Check the format:
http://host:port, https://host:port, or
socks5://host:port.
Hook connected to the proxy but the CONNECT or SOCKS5 handshake failed. Common causes:
Hook could not reach the proxy server. Check:
The TCP tunnel through the proxy was established, but the TLS handshake with the target server failed. This usually means a certificate issue with the target server, not the proxy. See the TLS troubleshooting section in TLS and Certificates.
If your proxy inspects HTTPS traffic (MITM proxy), it replaces the server certificate with one signed by its own CA. To trust it: