curl/wcurl — a developer tool — sits at 515 GitHub stars in the Developer Tools space. a simple wrapper around curl to easily download files
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
wcurl is a simple curl wrapper which lets you use curl to download files
without having to remember any parameters.
Call wcurl with a list of URLs you want to download and wcurl picks
sane defaults.
If you need anything more complex, you can provide any of curl's supported
parameters via the --curl-options option. Beware that you likely should
be using curl directly if your use case is not covered.
By default, wcurl does:
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;
Disable curl's URL globbing parser so {} and [] characters in URLs are not treated specially;
Percent-decode the resulting filename;
Use "index.html" as 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 invoking curl. May be specified more than once.
-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.
--no-decode-filename
Do not percent-decode the output filename, even if the percent-encoding in the
URL was done by wcurl, e.g.: The URL contained whitespace.
--dry-run
Do not actually execute curl, print what would be invoked.
-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.
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.
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 the curl command line, so never
build it from untrusted input.
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.
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:
If you would like to run the tests, you first need to install the
shunit2 package. On Debian-like and Fedora-like systems, the
package is called shunit2.
After that, you can run the testsuite by invoking the test script:
./tests/tests.sh
Lint
To lint the shell scripts, you need to install shellcheck and checkbashisms. These tools check the scripts for issues and ensure they follow best practices.
On Debian-like systems: apt install shellcheck devscripts
On Fedora-like systems: dnf install shellcheck devscripts
After installation, you can run shellcheck and checkbashisms by executing the following commands:
The most recent commit recorded on curl/wcurl was 28 days ago, based on the GitHub push timestamp. The repository has 26 forks — one of the better signals of community interest.
How does curl/wcurl compare to other Developer Tools projects?
curl/wcurl is tracked by TopGit in the Developer Tools category, with 515 GitHub stars and written in Shell. Browse the Developer Tools topic page on TopGit to compare it against similar projects by stars and activity.
How many stars does curl/wcurl have?
curl/wcurl has 515 GitHub stars — refresh the page for the live number, or check github.com/curl/wcurl. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
Is curl/wcurl open source?
TopGit's metadata for curl/wcurl does not record a license. Most public repositories on GitHub ARE open source, but the exact terms vary — verify by opening the LICENSE file directly.
What is curl/wcurl?
curl/wcurl (curl/wcurl) is a Shell project on GitHub. From the project's own README: a simple wrapper around curl to easily download files
Where do I read more about curl/wcurl?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/curl/wcurl is the definitive source.
Read full README in the tab above.
Curious whether wcurl is right for you?
Let ChatGPT, Claude, or Perplexity look into it — click below and see what AI actually says about wcurl.