wcurl(1)
๐ wcurl(1) โ the General Commands Manual, but make it cute โจ
okay so bestie, you're reading the General Commands Manual page for wcurl, and i promise this is gonna be the most painless download tool you've ever met ๐ซถ
๐ธ NAME ๐ธ
wcurl โ a simple wrapper around curl to easily download files. that's it. that's the whole vibe. โจ
๐ SYNOPSIS ๐
wcurl <URL>...
wcurl [--curl-options <CURL_OPTIONS>]... [--dry-run]
[--no-decode-filename] [-o|-O|--output <PATH>] [--] <URL>...
wcurl [--curl-options=<CURL_OPTIONS>]... [--dry-run]
[--no-decode-filename] [--output=<PATH>] [--] <URL>...
wcurl -V|--version
wcurl -h|--help
๐ฆ DESCRIPTION ๐ฆ
wcurl is a simple curl wrapper that lets you use curl to download files without having to remember any of the parameters. literally the whole point. no cap. ๐
You call wcurl with a list of URLs you want to download, and it picks sane defaults for you, like a friend who actually knows what they're doing ๐
If you need anything more complex, you can provide any of curl's supported parameters via the --curl-options option. Beware though โ if your use case isn't covered, you likely should be using curl directly. highkey true ๐
By default, wcurl does all of this:
- Percent-encode whitespace in URLs;
- Download multiple URLs in parallel โ if the installed curl's version is
>= 7.66.0(--parallel); - Use a total number of 5 parallel connections to the same protocol + hostname + port number target โ if the installed curl's version is
>= 8.16.0(--parallel-max-host); - Follow redirects;
- Automatically choose a filename as output;
- Avoid overwriting files โ if the installed curl's version is
>= 7.83.0(--no-clobber); - Perform retries;
- Set the downloaded file timestamp โ to the value provided by the server, if available;
- Default to
httpsโ if the URL does not contain any scheme; - Disable curl's URL globbing parser โ so
{}and[]characters in URLs are not treated specially; - Percent-decode the resulting filename;
- Use
index.htmlas the default filename โ if there is none in the URL, or if it is-.
โญ OPTIONS โญ
--curl-options,--curl-options=<CURL_OPTIONS>...โ Specify extra options to be passed when invokingcurl. May be specified more than once. yes you can stack 'em ๐ฅ-o,-O,--output,--output=<PATH>โ Use the provided output path instead of getting it from the URL. If multiple URLs are provided, resulting files share the same name with a number appended to the end (curl >= 7.83.0). If this option is provided multiple times, only the last value is considered โ the rest get ghosted ๐--no-decode-filenameโ Do not percent-decode the output filename, even if the percent-encoding in the URL was done bywcurl, e.g.: the URL contained whitespace ๐--dry-runโ Do not actually executecurl, print what would be invoked. peek before you leap, bestie ๐-V,--versionโ Print version information.-h,--helpโ Print help message.
๐ง CURL_OPTIONS ๐ง
Any option supported by curl can be set here. This is not used by wcurl โ it is instead forwarded to the curl invocation. middle-man energy, but make it useful โจ
The value is split on whitespace (spaces, tabs and newlines) and each resulting word is passed to curl as a separate argument. Quotes and backslashes are not interpreted, so an argument containing whitespace cannot be passed this way. For example, --curl-options='-H "Cookie: a=1; b=2"' passes the four arguments -H, "Cookie:, a=1; and b=2" to curl, which treats the extra words as URLs to download. ๐ญ yeah. it do be like that.
To pass arguments that contain whitespace, write them to a curl config file and pass it with --curl-options="--config <FILE>", or use curl directly.
โ ๏ธ Everything in<CURL_OPTIONS>becomes part of thecurlcommand line, so never build it from untrusted input. seriously. this is not the moment for main character energy, protect yourself ๐
๐ URL ๐
URL to be downloaded. Anything that is not a parameter is considered an URL. Whitespace is percent-encoded and the URL is passed to curl, which then performs the parsing. May be specified more than once. drop as many as you want, queen ๐
๐ EXAMPLES ๐
Download a single file:
wcurl example.com/filename.txt
Download two files in parallel:
wcurl example.com/filename1.txt example.com/filename2.txt
Download a file passing the --progress-bar and --http2 flags to curl:
wcurl --curl-options="--progress-bar --http2" example.com/filename.txt
Resume from an interrupted download. The options necessary to resume the download (--clobber --continue-at -) must be the last options specified in --curl-options. Note that the only way to resume interrupted downloads is to allow wcurl to overwrite the destination file:
wcurl --curl-options="--clobber --continue-at -"
example.com/filename.txt
Download multiple files without a limit of concurrent connections per host (the default limit is 5):
wcurl --curl-options="--parallel-max-host 0" example.com/filename1.txt
example.com/filename2.txt
๐ AUTHORS ๐
- Samuel Henrique
<samueloph@debian.org> - Sergio Durigan Junior
<sergiodj@debian.org> - and many contributors, see the
AUTHORSfile. ily all ๐ซถ
๐ REPORTING BUGS ๐
If you experience any problems with wcurl that you do not experience with curl, submit an issue on GitHub: https://github.com/curl/wcurl โ pls include the deets so it can actually get fixed ๐
โจ COPYRIGHT โจ
wcurl is licensed under the curl license.
๐ฆ SEE ALSO ๐ฆ
curl(1), trurl(1) โ go read those too, iykyk ๐
and that's the whole page, bestie!! this version of wcurl (version wcurl) dropped on 2026-10-25, so if your copy dates differently, that's why ๐ slay, go download something ๐
๐ฆ where this page comes from
- alpine 3.23: curl-doc 8.23.0-r0 ยท curl
- alpine 3.24: curl-doc 8.23.0-r0 ยท curl
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms