2026-06-26 21:21:58 +02:00
|
|
|
NAME
|
|
|
|
|
goget - Modern IPv6-First Downloader
|
|
|
|
|
|
|
|
|
|
SYNOPSIS
|
|
|
|
|
goget --url <URL> [OPTIONS]
|
|
|
|
|
|
|
|
|
|
DESCRIPTION
|
|
|
|
|
curl/wget replacement in Go. IPv6-first, parallel downloads, resume,
|
|
|
|
|
checksum verification, recursive mirroring, and 8 protocols.
|
|
|
|
|
|
|
|
|
|
TARGET
|
|
|
|
|
--url <URL> URL to download (repeatable)
|
|
|
|
|
|
|
|
|
|
OUTPUT
|
|
|
|
|
--output <FILE> Output file (default: auto from URL)
|
|
|
|
|
--restart Delete existing file and restart download
|
|
|
|
|
--overwrite Overwrite existing file (no atomic rename)
|
|
|
|
|
--content-disposition Use server-provided filename
|
|
|
|
|
--keep-timestamps Set file modification time from Last-Modified
|
|
|
|
|
|
|
|
|
|
PROGRESS
|
|
|
|
|
--verbose Verbose output with progress bar (default)
|
|
|
|
|
--no-progress Hide progress bar
|
|
|
|
|
--progress=dot Wget-style dot progress
|
|
|
|
|
--quiet Suppress all output except errors
|
|
|
|
|
--json Output progress as JSON-lines (for scripting)
|
|
|
|
|
--debug Debug mode with detailed info
|
|
|
|
|
|
|
|
|
|
NETWORK
|
|
|
|
|
--timeout <DURATION> Connection timeout (0 = auto)
|
|
|
|
|
--max-time <DURATION> Maximum total transfer time
|
|
|
|
|
--max-retries <N> Maximum retry attempts on failure
|
|
|
|
|
--max-filesize <SIZE> Abort if file exceeds size (e.g., 100MB)
|
|
|
|
|
--proxy <URL> Proxy server URL
|
|
|
|
|
--no-ipv4 Disable IPv4 fallback
|
|
|
|
|
--no-redirect Disable following HTTP redirects
|
|
|
|
|
--dns-servers <IPs> Custom DNS servers (comma-separated)
|
|
|
|
|
--bind-interface <IFACE> Bind to specific network interface
|
|
|
|
|
--allow-private Allow connections to private/internal IPs
|
2026-06-29 19:23:10 +02:00
|
|
|
--pinned-cert <SHA256> Certificate pinning (TLS: HTTPS, FTPS, Gemini, WebDAVS)
|
|
|
|
|
--pinned-host-key <FP> SSH host-key pinning (SFTP): SHA256:<base64> or hex
|
2026-06-26 21:21:58 +02:00
|
|
|
|
|
|
|
|
CURL-COMPATIBLE
|
|
|
|
|
--header "K: V" Custom HTTP header (repeatable)
|
|
|
|
|
--insecure Skip TLS certificate verification
|
|
|
|
|
--cert <FILE> Client certificate (PEM)
|
|
|
|
|
--key <FILE> Client private key (PEM)
|
|
|
|
|
--data "key=value" Send POST data
|
|
|
|
|
--form "field=value" Multipart form data (repeatable)
|
|
|
|
|
--form "field=@file" Upload file via multipart form
|
|
|
|
|
--spider Check URL existence only (HEAD request)
|
|
|
|
|
--write-out FORMAT Print metadata (curl format)
|
|
|
|
|
--trace-time Print HTTP timing breakdown
|
|
|
|
|
|
|
|
|
|
WGET-COMPATIBLE
|
|
|
|
|
--accept "*.pdf" Accept patterns (filename glob or MIME)
|
|
|
|
|
--no-parent Do not ascend to parent directory
|
|
|
|
|
--adjust-extension Append .html extension to HTML files
|
|
|
|
|
--wait <DURATION> Delay between requests (recursive)
|
|
|
|
|
--random-wait Randomize wait time (0.5x - 1.5x)
|
|
|
|
|
--page-requisites Download CSS/JS/images for pages
|
|
|
|
|
--span-hosts Follow links to external domains
|
|
|
|
|
--convert-links Convert links for local viewing
|
|
|
|
|
--warc-file <FILE> Write WARC output for archiving
|
|
|
|
|
--progress=dot Wget-style dot progress
|
|
|
|
|
|
|
|
|
|
RECURSIVE / MIRROR
|
|
|
|
|
--recursive Enable recursive downloading
|
|
|
|
|
--mirror Mirror entire website (infinite depth)
|
|
|
|
|
--max-depth <N> Maximum recursion depth
|
|
|
|
|
--follow-external Follow external domains
|
|
|
|
|
--exclude-pattern <P> Exclude URL patterns (comma-separated)
|
|
|
|
|
--no-convert-links Don't convert links in mirror mode
|
|
|
|
|
--no-mirror-assets Don't download CSS/JS/images in mirror
|
|
|
|
|
--no-robots Don't respect robots.txt in mirror
|
|
|
|
|
--rate-limit <RATE> Rate limit (e.g., 1MB/s)
|
|
|
|
|
|
|
|
|
|
DOWNLOAD MANAGEMENT
|
|
|
|
|
--queue Add to download queue
|
|
|
|
|
--queue-list List queue items
|
|
|
|
|
--queue-process Process download queue
|
|
|
|
|
--queue-clear Clear completed items from queue
|
|
|
|
|
--queue-file <PATH> Custom queue file path
|
|
|
|
|
--queue-priority <N> Priority (1-10)
|
|
|
|
|
--batch-file <FILE> Download URLs from file (one per line)
|
|
|
|
|
--schedule <TIME> Schedule download (datetime or cron)
|
|
|
|
|
--on-complete <CMD> Run command after successful download
|
|
|
|
|
|
|
|
|
|
AUTHENTICATION
|
|
|
|
|
--username <USER> Username for HTTP Basic/Digest Auth
|
|
|
|
|
--password <PASS> Password (prefer --password-file for security)
|
|
|
|
|
--password-file <FILE> Read password from file
|
|
|
|
|
--auth-type <TYPE> Auth type: basic, digest, auto
|
|
|
|
|
--cookie-jar <FILE> Load/save cookies (Netscape format)
|
|
|
|
|
--oauth-client-id <ID> OAuth 2.0 Client ID
|
|
|
|
|
--oauth-client-secret <S>OAuth 2.0 Client Secret
|
|
|
|
|
--oauth-token-url <URL> OAuth 2.0 Token URL
|
|
|
|
|
--oauth-access-token <T> OAuth 2.0 Access Token
|
|
|
|
|
--oauth-refresh-token <T>OAuth 2.0 Refresh Token
|
|
|
|
|
|
|
|
|
|
UPLOAD
|
|
|
|
|
--upload Upload file instead of downloading
|
|
|
|
|
--upload-method <M> PUT or POST (default: PUT)
|
|
|
|
|
--upload-file <FILE> File to upload
|
|
|
|
|
--form-data "k=v" Form data (comma-separated)
|
|
|
|
|
--file-field <NAME> Form field name (default: file)
|
|
|
|
|
|
|
|
|
|
VERIFICATION
|
|
|
|
|
--checksum <HASH> Expected checksum
|
|
|
|
|
--checksum-algo <ALG> Algorithm: sha256, sha512, blake2b, sha3-256, sha3-512
|
|
|
|
|
--checksum-file <FILE> Read checksum from SHA256SUMS file
|
|
|
|
|
|
|
|
|
|
PGP / GPG
|
|
|
|
|
--pgp-decrypt Decrypt PGP file after download
|
|
|
|
|
--pgp-verify Verify PGP signature
|
|
|
|
|
--pgp-sig <FILE> Path to signature file (.asc, .sig)
|
|
|
|
|
--pgp-key <FILE> Path to key file
|
|
|
|
|
--pgp-passphrase <PASS> Passphrase for private key
|
|
|
|
|
--pgp-passphrase-file F Read passphrase from file
|
|
|
|
|
|
|
|
|
|
METALINK
|
|
|
|
|
--metalink Treat URL as Metalink (multi-source)
|
|
|
|
|
--metalink-file <PATH> Path to local Metalink file
|
|
|
|
|
|
|
|
|
|
CONFIGURATION
|
|
|
|
|
--init-config Generate default config file
|
|
|
|
|
--config-get <KEY> Get config value
|
|
|
|
|
--config-set <K> <V> Set config value
|
|
|
|
|
--config-list List all config values
|
|
|
|
|
--config-unset <KEY> Unset config value
|
|
|
|
|
|
|
|
|
|
INFORMATION
|
|
|
|
|
--info <URL> Show file info without downloading
|
|
|
|
|
--benchmark <URL> Benchmark download speed
|
|
|
|
|
--generate-man-page Generate man page and exit
|
|
|
|
|
--completion <SHELL> Generate shell completion (bash, zsh, fish)
|
|
|
|
|
--help Show this help
|
|
|
|
|
--version Show version
|
|
|
|
|
|
|
|
|
|
PROTOCOLS
|
|
|
|
|
http:// https:// HTTP/1.1, HTTP/2, TLS 1.2/1.3
|
|
|
|
|
ftp:// ftps:// FTP (active/passive, explicit TLS)
|
|
|
|
|
file:// Local file copy + recursive directories
|
|
|
|
|
data: Inline data (base64 + plain text)
|
|
|
|
|
gopher:// RFC 1436 with type parsing
|
|
|
|
|
gemini:// Gemini protocol (TLS, redirect)
|
|
|
|
|
|
|
|
|
|
EXAMPLES
|
|
|
|
|
goget --url https://example.com/file.zip
|
|
|
|
|
goget --url https://a.com/1.zip --url https://b.com/2.zip
|
|
|
|
|
goget -H "Authorization: Bearer TOKEN" --url https://api.example.com
|
|
|
|
|
goget --form "name=value" --form "file=@./data.csv" --url https://httpbin.org/post
|
|
|
|
|
goget --recursive --accept "*.pdf" --url https://example.com/docs/
|
|
|
|
|
goget --mirror --convert-links --url https://example.com --output ./mirror
|
|
|
|
|
goget --schedule "0 2 * * *" --url https://example.com/daily.zip
|
|
|
|
|
goget --json --no-progress --url https://example.com/file.zip
|
|
|
|
|
|
|
|
|
|
FILES
|
|
|
|
|
~/.config/goget/config.json Configuration
|
|
|
|
|
<file>.goget.meta Resume metadata
|
|
|
|
|
|
|
|
|
|
More: https://codeberg.org/petrbalvin/goget
|