Wget and cURL Command Builder

Build copy-ready wget and cURL download commands — headers, authentication, output paths and retry options included.

Stop guessing flags. Enter a URL, add request headers, basic auth or Bearer / API-key credentials, choose where the file lands, and tune retries, timeouts, resume and rate limits — the builder writes the exact command line for you in either the wget or cURL dialect, updating live as you type. Already have a command you don’t fully understand? Paste it into the parser below and it breaks back into its parts. Need many files? Feed the batch builder a list of URLs (pasted or from a local .txt file) and get a ready-to-run shell script.

🔒 100% private — nothing is uploaded or stored. Command building, parsing and batch-script generation all run locally in your browser with plain JavaScript. Your URLs, credentials and file lists never leave your device — we don’t see, log or store them. The only way anything gets out is when you copy the generated command or download the script yourself.

Build your download command

wget cURL

Add any extra headers the server expects — e.g. Referer, a custom User-Agent, or a license key.

Your command

Format:

        

Parse an existing command

Paste a wget or cURL command you found in docs, a README or an old script — the builder recognises its flags and fills in the form above so you can tweak it instead of editing raw text.

Batch download from a URL list

Paste one or more URLs (one per line, # comments allowed) or choose a local .txt file. The builder turns them into a shell script that reuses your retry, resume and rate-limit options above. Each file keeps its remote name.

The file is read in your browser with the FileReader API and never uploaded — it flows into exactly the same pipeline as pasted text.

How it works

The builder keeps a small model of your request — URL, authentication, headers, output path and transfer options — and re-renders the command line every time you change anything. It translates each option into the correct flag for the selected dialect: --tries becomes --retry, -c becomes -C -, and so on (see the equivalence table below). Values containing spaces or shell metacharacters are quoted automatically, using single quotes with embedded quotes escaped, so the result is safe to paste into bash. The parser works in reverse: it tokenises a pasted command — respecting single and double quotes — and maps every recognised flag back onto the form. Nothing is sent anywhere; all of this is plain JavaScript running on your machine.

Wget vs cURL — flag equivalents

GoalwgetcURL
Save to a specific file-O file-o file
Download into a directory-P dir--output-dir dir (7.71+), or put the path in -o
Resume an interrupted download-c-C - (needs -o)
Retry N times--tries N (total attempts)--retry N (extra retries after failure)
Wait between retries--waitretry N--retry-delay N
Basic authentication--user U --password P-u U:P
Custom header--header='K: V'-H 'K: V'
Follow redirectson by default-L
Rate limit--limit-rate=512K--limit-rate 512K
Custom User-Agent--user-agent='UA'-A 'UA'
Skip SSL verification--no-check-certificate-k
Timeout (seconds)--timeout N--connect-timeout N / --max-time N

When to use which

Use wget for file transfer work: big downloads, interrupted transfers you want to resume (-c), mirrors and recursive site grabs. It follows redirects by default and its retry semantics count total attempts, which makes --tries 3 do what you think it does. Use cURL when the request itself matters more than the file: inspecting response headers (-I), custom verbs and bodies, or piping the payload straight into another command. For a plain download with auth and retries, either tool is fine — this builder keeps both in lockstep so you can pick per environment (cURL ships on macOS by default, wget on most Linux distros).

Common pitfalls

  • Quoting. Any value with spaces or shell metacharacters ($, &, quotes) must be quoted. This builder always single-quotes values that need it; if you edit the command by hand, keep the quotes.
  • Resume needs the same file on both ends. wget -c and curl -C - resume against the local file they are writing — change the output name and you restart from zero. cURL additionally refuses to resume without -o.
  • Retry semantics differ. wget’s --tries 3 means 3 total attempts (1 + 2 retries); cURL’s --retry 3 means 1 attempt + 3 retries. And cURL only retries transient failures (408, 429, 500–504) unless you add --retry-all-errors.
  • Passwords in command lines are visible. Anything on the command line shows up in your shell history and in ps output while it runs. For anything real, use an environment variable or a .netrc file instead.
  • -k / --no-check-certificate is a last resort. It turns off the check that proves you are talking to the real server. Fine for a self-signed internal endpoint; never for public downloads.

Related tools


Luke Keam
Thank you for reading. Get in touch
Luke Keam | techgeek.biz