TL;DR
all CLI options can be specified in the 'default config file'
# set timeout to 2.5 seconds globally
echo 'connect-timeout = 2.5' > ~/.curlrc
From man page: "When curl is invoked, it (unless -q, --disable is used) checks for a default config file and uses it if found".
-K, --config <file>
Specify a text file to read curl arguments from. The command line
arguments found in the text file will be used as if they were provided
on the command line.
Options and their parameters must be specified on the same line in the
file, separated by whitespace, colon, or the equals sign. Long option
names can optionally be given in the config file without the initial
double dashes and if so, the colon or equals characters can be used as
separators. If the option is specified with one or two dashes, there
can be no colon or equals character between the option and its
parameter.
If the parameter contains whitespace (or starts with : or =), the
parameter must be enclosed within quotes. Within double quotes, the
following escape sequences are available: \, ", \t, \n, \r and \v. A
backslash preceding any other letter is ignored.
If the first column of a config line is a '#' character, the rest of
the line will be treated as a comment.
Only write one option per physical line in the config file.
Specify the filename to -K, --config as '-' to make curl read the file
from stdin.
Note that to be able to specify a URL in the config file, you need to
specify it using the --url option, and not by simply writing the URL
on its own line. So, it could look similar to this:
url = "https://curl.se/docs/"
# --- Example file ---
# this is a comment
url = "example.com"
output = "curlhere.html"
user-agent = "superagent/1.0"
# and fetch another URL too
url = "example.com/docs/manpage.html"
-O
referer = "http://nowhereatall.example.com/"
# --- End of example file ---
When curl is invoked, it (unless -q, --disable is used) checks for a
default config file and uses it if found, even when -K, --config is
used. The default config file is checked for in the following places
in this order:
$CURL_HOME/.curlrc
$XDG_CONFIG_HOME/curlrc
(Added in 7.73.0)
$HOME/.curlrc
Windows: %USERPROFILE%\.curlrc
Windows: %APPDATA%\.curlrc
Windows: %USERPROFILE%\Application Data\.curlrc
Non-Windows: use getpwuid to find the home directory
On Windows, if it finds no .curlrc file in the sequence described
above, it checks for one in the same dir the curl executable is
placed.
On Windows two filenames are checked per location: .curlrc and
_curlrc, preferring the former. Older versions on Windows checked for _curlrc only.