libcurl-env(3) Library Functions Manual libcurl-env(3)
NAME
libcurl-env - environment variables libcurl understands
DESCRIPTION
libcurl reads and understands a set of environment variables that if set
controls and changes behaviors. This is the full list of variables to
set and description of what they do. Also note that curl, the command
line tool, supports a set of additional environment variables indepen-
dently of this.
[scheme]_proxy
When libcurl is given a URL to use in a transfer, it first ex-
tracts the scheme part from the URL and checks if there is a
given proxy set for that in its corresponding environment vari-
able. A URL like https://example.com makes libcurl use the
http_proxy variable, while a URL like ftp://example.com uses the
ftp_proxy variable.
These proxy variables are also checked for in their uppercase
versions, except the http_proxy one which is only used lowercase.
Note also that some systems actually have a case insensitive han-
dling of environment variables and then of course HTTP_PROXY
still works.
An exception exists for the WebSocket ws and wss URL schemes,
where libcurl first checks ws_proxy or wss_proxy but if they are
not set, it falls back and tries the http and https versions in-
stead if set.
ALL_PROXY
This is a setting to set proxy for all URLs, independently of
what scheme is being used. Note that the scheme specific vari-
ables overrides this one if set.
CURL_SSL_BACKEND
When libcurl is built to support multiple SSL backends, it se-
lects a specific backend at first use. If no selection is done by
the program using libcurl, this variable's selection is used.
Setting a name that is not a built-in alternative makes libcurl
stay with the default.
SSL backend names (case-insensitive): BearSSL, GnuTLS, mbedTLS,
OpenSSL, Rustls, Schannel, Secure-Transport, wolfSSL
HOME When the netrc feature is used (CURLOPT_NETRC(3)), this variable
is checked as the primary way to find the "current" home direc-
tory in which the .netrc file is likely to exist.
USERPROFILE
When the netrc feature is used (CURLOPT_NETRC(3)), this variable
is checked as the secondary way to find the "current" home direc-
tory (on Windows only) in which the .netrc file is likely to ex-
ist.
LOGNAME
Username to use when invoking the ntlm-wb tool, if NTLMUSER was
not set.
NO_PROXY
This has the same functionality as the CURLOPT_NOPROXY(3) option:
it gives libcurl a comma-separated list of hostname patterns for
which libcurl should not use a proxy.
NTLMUSER
Username to use when invoking the ntlm-wb tool.
SSLKEYLOGFILE
When set and libcurl runs with an SSL backend that supports this
feature, libcurl saves SSL secrets into the given filename. Using
those SSL secrets, other tools (such as Wireshark) can decrypt
the SSL communication and analyze/view the traffic.
These secrets and this file might be sensitive. Users are advised
to take precautions so that they are not stolen or otherwise in-
advertently revealed.
USER Username to use when invoking the ntlm-wb tool, if NTLMUSER and
LOGNAME were not set.
Debug Variables
Debug variables are intended for internal use and are documented in
libcurl-env-dbg(3).
SEE ALSO
libcurl-env-dbg(3)
libcurl 2026-07-12 libcurl-env(3)
Generated by dwww version 1.16 on Sat Oct 3 04:26:08 CEST 2026.