Surge Download Manager
by @kexu9
Blazing fast TUI download manager with multi-connection, queue management, server mode, multiple mirrors, and a beautiful terminal interface.
clawhub install surgeπ About This Skill
name: surge description: Blazing fast TUI download manager with multi-connection downloads. Use when: (1) Fast downloads with parallel connections, (2) Queue management, (3) Server/daemon mode for headless downloads, (4) Beautiful TUI interface, (5) Multiple mirror support. version: 1.1.0 changelog: "v1.1.0: Added reasoning framework, decision tree, troubleshooting, self-checks" metadata: openclaw: requires: bins: - surge emoji: "β‘" category: "utility" homepage: https://github.com/surge-downloader/Surge
Surge
Blazing fast TUI download manager with multi-connection downloads.
When This Skill Activates
This skill triggers when user wants to download files fast with parallel connections or manage downloads via TUI.
Reasoning Framework
| Step | Action | Why | |------|--------|-----| | 1 | INSTALL | Install surge binary (brew/go/binary) | | 2 | START | Launch server mode or TUI | | 3 | ADD | Add URLs to download queue | | 4 | MANAGE | Monitor, pause, resume, or remove downloads | | 5 | RETRIEVE | Get completed files from output directory |
Install
# macOS
brew install surge-downloader/tap/surgeGo
go install github.com/surge-downloader/surge@latestOr download binary from releases
Decision Tree
What are you trying to do?
βββ Quick single download
β βββ Use: surge add "URL" -o ./folder
β
βββ Multiple files (batch)
β βββ Use: surge add -b urls.txt -o ./folder
β
βββ Headless/daemon downloads
β βββ Use: surge server + surge add
β
βββ Beautiful TUI interface
β βββ Use: surge (no args, starts TUI)
β
βββ Manage running downloads
βββ Use: surge ls/pause/resume/rm
Basic Usage
Start TUI Mode
surge
Start Server Mode (Headless)
# Start server daemon
surge serverAdd download via CLI
surge add "https://example.com/file.zip"List downloads
surge ls
Commands
| Command | Description |
|---------|-------------|
| surge server | Start headless daemon |
| surge add | Add download to queue |
| surge ls | List downloads |
| surge pause | Pause download |
| surge resume | Resume download |
| surge rm | Remove download |
| surge token | Get API token |
Options
| Flag | Description | Default |
|------|-------------|---------|
| -o, --output PATH | Output directory | ./downloads |
| -b, --batch FILE | Batch file with URLs | - |
| --exit-when-done | Exit when complete | false |
| --host HOST | Target server | localhost:9090 |
| --token TOKEN | API token | - |
Common Examples
# Download single file
surge add "https://example.com/file.zip" -o ~/DownloadsBatch download from file
surge add -b urls.txt -o ./downloadsStart server with output folder
surge server -o /tmp/downloadsAdd to running server
surge add "https://url.com/file.zip"Pause/Resume
surge pause 1
surge resume 1Remove from queue
surge rm 1
Server Mode
Workflow
# Terminal 1: Start server
surge serverTerminal 2: Add downloads
surge add "https://file1.zip"
surge add "https://file2.zip" -o /other/folderCheck status
surge lsServer runs in background, downloads continue
API Token
# Get token for remote control
surge tokenUse token to connect
surge add "URL" --token YOUR_TOKEN --host remote:9090
Troubleshooting
Problem: surge: command not found
brew install surge-downloader/tap/surge or go install github.com/surge-downloader/surge@latestProblem: Connection refused
surge serverProblem: Permission denied
-o with writable pathProblem: Download failed
Problem: Too many connections
Self-Check
surge --versionsurge ls to check)Notes
Quick Reference
| Task | Command |
|------|---------|
| Start TUI | surge |
| Start server | surge server |
| Add download | surge add "URL" -o ./folder |
| Batch download | surge add -b urls.txt |
| List downloads | surge ls |
| Pause/Resume | surge pause / surge resume |
| Remove | surge rm |
βοΈ Configuration
| Flag | Description | Default |
|------|-------------|---------|
| -o, --output PATH | Output directory | ./downloads |
| -b, --batch FILE | Batch file with URLs | - |
| --exit-when-done | Exit when complete | false |
| --host HOST | Target server | localhost:9090 |
| --token TOKEN | API token | - |