Backed by mandō

Fetch is the autonomous, non-interactive network downloader that retrieves files from the web while you sleep. HTTP, HTTPS, FTP — mirrored, resumed, rate-limited, authenticated. Set it and forget it.

retry resilience
3 protocols
0 human intervention
Network Status

Real-time transfer intelligence

Active Downloads
47
↑ live
Bandwidth
142 MB/s
↑ 8.3%
Queue Depth
1,284
— steady
Success Rate
99.94%
↑ 0.03%
Data Retrieved
8.7 TB
↑ 22.1%
Mirrors Active
23
↑ 3
Core Capabilities

Built for unattended retrieval

Every flag is a feature. Every feature works autonomously, in the background, without human intervention.

📥

Output Control

Direct any download to any destination with -O FILE. Pipe to stdout. Pipe to disk. You choose where the bytes land.

🔄

Resume Engine

Network died mid-transfer? -c resumes exactly where you left off. Range headers, partial content, zero wasted bandwidth.

🕸️

Recursive Crawl

Follow every link -r to any depth -l DEPTH. Traverse entire site structures. Download the web, not just pages.

🪞

Mirror Protocol

--mirror creates perfect offline replicas. Recursion, timestamping, infinite depth, directory listings — all in one flag.

📄

Page Requisites

-p pulls every asset a page needs — images, CSS, scripts. Combine with -k to convert links for offline browsing.

Timestamping

-N only downloads files newer than your local copy. Incremental syncs. Smart bandwidth. No redundant transfers.

🌑

Background Mode

-b sends Fetch to the background immediately. Disconnect your session. Walk away. The download continues autonomously.

🚦

Rate Limiter

--limit-rate throttles bandwidth consumption. Be a good neighbor. Download at exactly the speed you specify.

🔐

Authenticated Fetch

HTTP Basic, digest, or FTP credentials with --user/--password. Access gated content programmatically.

📋

Batch Queue

Feed a list of URLs from a file with -i FILE. Thousands of downloads, one command. Industrial-scale retrieval.

🕵️

Spider Mode

--spider checks if URLs exist without downloading. Validate link integrity. Audit your bookmarks. Zero disk usage.

🎯

Accept / Reject

Filter downloads with --accept and --reject. Only get .pdf files. Skip all .png files. Precision targeting.

Workflow

Three steps to autonomous retrieval

01

Target

Point Fetch at a URL, a list of URLs, or an entire domain. Set your depth, filters, and authentication. Configure once.

02

Deploy

Send Fetch to the background with -b. It detaches from your terminal, logs to wget-log, and starts retrieving autonomously.

03

Retrieve

Come back to a perfectly organized local mirror. Links converted for offline viewing. Timestamps preserved. Resume if interrupted.

Live Terminal

Watch Fetch in action

Every command below is a real Fetch workflow. Non-interactive. Autonomous. Relentless.

fetch — session
$ fetch -O report.pdf https://example.com/report.pdf
--2026-04-07 09:14:22-- https://example.com/report.pdf
Resolving example.com... 93.184.216.34
HTTP request sent, awaiting response... 200 OK
Length: 2,847,391 (2.7M) [application/pdf]
Saving to: 'report.pdf'
report.pdf 100%[==================>] 2.71M 4.22MB/s in 0.6s
$ fetch -c https://mirror.example.com/dataset-8GB.tar.gz
Continuing at byte position 3,221,225,472.
Length: 8,589,934,592 (8.0G) [application/gzip]
dataset-8GB.tar.gz 78%[=============> ] 6.24G 12.8MB/s eta 2m 18s
$ fetch --mirror -p -k -np https://docs.example.com/
--mirror: recursion + timestamping + infinite depth
Converting links in docs.example.com/index.html... 47 links.
Converting links in docs.example.com/api/ref.html... 124 links.
FINISHED --2026-04-07 09:17:44-- Downloaded: 312 files, 48M
$ fetch -b -i urls.txt --limit-rate=500k --random-wait
Continuing in background, pid 28471.
Output will be written to 'wget-log'.
Mirror Mode

Visualize your site mirror

Watch Fetch recursively crawl and replicate entire site structures in real time.

🌐 docs.example.com/
📄 index.html 24 KB
📁 api/
📄 reference.html 142 KB
📄 endpoints.html 89 KB
📁 assets/
🎨 style.css 18 KB
app.js 67 KB
📁 guides/
📄 getting-started.html 31 KB
Files Retrieved
7 / 10
Total Size
371 KB
Links Converted
214
Depth
∞ (--mirror)
Download Queue

Batch operations at industrial scale

Feed Fetch a URL list. Watch every transfer in real time. Resume failures automatically.

fetch -i urls.txt --limit-rate=1m Downloading 3 of 8
https://cdn.example.com/assets/bundle.js 284 KB
https://cdn.example.com/assets/vendor.css 142 KB
https://api.example.com/data/export.json 1.8 MB
https://mirror.example.com/archive-2026.tar.gz 4.2 GB
https://releases.example.com/v3.1.0-linux.deb 89 MB
https://docs.example.com/manual.pdf 12 MB
https://static.example.com/images/hero.webp 890 KB
https://backup.example.com/db-snapshot.sql.gz 2.1 GB
0
retries
Default resilience per URL
0
%
Success rate with --retry-connrefused
0
interaction
Required during transfer
0
depth
Default recursive levels
Why Fetch

The autonomous advantage

Side-by-side against every alternative. Non-interactive wins every time.

Capability Fetch Competitor A Competitor B Competitor C
Non-interactive / background Partial
Recursive site mirroring ✅ --mirror Manual
Resume broken downloads ✅ -c
Link conversion for offline ✅ -k
Batch URL input file ✅ -i FILE Partial
Timestamping / incremental ✅ -N
Spider / link validation ✅ --spider
Price Free tier $39/mo $69/mo Enterprise only
Live

Downloads never sleep

Pricing

Plans for every workload

Start downloading for free. Scale when your retrieval demands it.

Starter
$0/mo

For individual downloads and experiments.

  • Single URL downloads
  • -O output control
  • -c resume support
  • -q quiet mode
  • 20 retries per URL
Get Started
Team
$79/seat/mo

Mirror and retrieve across the whole org.

  • Everything in Pro
  • --spider link validation
  • --accept/--reject filters
  • --user/--password auth
  • -P DIR directory prefix
  • Shared download configs
  • Audit logs & SSO
Start Team Trial
Enterprise
Custom

Mission-critical autonomous retrieval.

  • Everything in Team
  • --no-check-certificate policy
  • Dedicated mirror clusters
  • Custom SLA & uptime
  • On-premise deployment
  • 24/7 dedicated support
  • Custom integrations
Contact Sales
Social Proof

Trusted by autonomous teams

★★★★★

"We mirror our entire documentation site nightly with a single Fetch command. --mirror -p -k -np. That's it. 4,000 pages, perfectly converted for offline viewing. Our field teams love it."

Tanya Srivastava VP of Engineering, OmniDocs
★★★★★

"We had an 8GB dataset transfer fail at 6GB. One -c flag and Fetch picked up exactly where it left off. Zero re-download. Zero bandwidth wasted. That's the kind of resilience we need."

Felix Chen Data Engineer, NeuralForge AI
★★★★★

"Fetch's batch queue with -i changed our entire content pipeline. 2,000 URLs in a text file, --random-wait to be polite, --limit-rate for bandwidth. Set it at 6pm, done by morning."

Rosa Lindqvist CTO, ArchiveNet
★★★★★

"We use --spider to validate 50,000 internal links every night. Catches broken references before they hit production. It's our silent QA engineer that never sleeps."

Nadia Kowalski Head of QA, LinkStream
What's New

Shipping relentlessly

v5.3

WARC Archive Mode

Full Web Archive format support with --warc-file. Preserve complete request/response pairs for compliance, auditing, and web preservation at scale.

Feature
v5.2

Random Wait Intelligence

--random-wait now uses a smarter distribution to mask retrieval patterns. Combined with --wait, Fetch appears indistinguishable from human browsing.

Improvement
v5.1

Retry on Connection Refused

--retry-connrefused now available by default. Unreliable servers that drop connections are retried automatically with exponential backoff.

Feature Resilience
FAQ

Questions? Answers.

What does "non-interactive" actually mean?

It means Fetch doesn't need you. Once launched, it operates autonomously — no prompts, no confirmations, no babysitting. Start a download, log out, and Fetch keeps working. It was designed for exactly this: retrieval without human presence.

How does --mirror differ from -r (recursive)?

Think of --mirror as the "give me everything" flag. It combines recursive downloading, infinite depth, timestamping, and FTP directory listings into one convenient option. Equivalent to -r -N -l inf --no-remove-listing. One flag, total replication.

Can Fetch resume a download that was interrupted?

Yes. The -c flag instructs Fetch to check the local file size and request the server to continue from that byte offset using the HTTP Range header. Works with both HTTP and FTP servers that support range requests.

How does link conversion work for offline browsing?

After downloading completes, -k rewrites all links in downloaded files to point to local copies using relative paths. Links to files not downloaded are rewritten to use absolute URLs. The result is a perfectly browsable offline copy.

Is there a way to download URLs from a file?

Yes — -i FILE reads URLs line by line from a text file. Combine with --wait and --random-wait for polite batch retrieval, or --limit-rate to throttle bandwidth across all downloads.

Backed by mandō