{"id":37836007,"url":"https://github.com/surge-downloader/surge","last_synced_at":"2026-04-01T21:58:37.382Z","repository":{"id":332669192,"uuid":"1085475816","full_name":"surge-downloader/Surge","owner":"surge-downloader","description":"Blazing fast TUI download manager built in Go for power users","archived":false,"fork":false,"pushed_at":"2026-03-29T04:40:56.000Z","size":30028,"stargazers_count":2617,"open_issues_count":31,"forks_count":104,"subscribers_count":12,"default_branch":"main","last_synced_at":"2026-03-29T07:28:19.073Z","etag":null,"topics":["cli","download-manager","downloader","go","golang","hacktoberfest","poweruser","terminal","tui"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/surge-downloader.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/funding.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"buy_me_a_coffee":"surge.downloader","github":"surge-downloader"}},"created_at":"2025-10-29T05:00:15.000Z","updated_at":"2026-03-29T07:17:12.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/surge-downloader/Surge","commit_stats":null,"previous_names":["junaidislam2105/surge","junaid2005p/surge","surge-downloader/surge"],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/surge-downloader/Surge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surge-downloader%2FSurge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surge-downloader%2FSurge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surge-downloader%2FSurge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surge-downloader%2FSurge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/surge-downloader","download_url":"https://codeload.github.com/surge-downloader/Surge/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surge-downloader%2FSurge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31292631,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T21:15:39.731Z","status":"ssl_error","status_checked_at":"2026-04-01T21:15:34.046Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","download-manager","downloader","go","golang","hacktoberfest","poweruser","terminal","tui"],"created_at":"2026-01-16T15:53:09.074Z","updated_at":"2026-04-01T21:58:37.375Z","avatar_url":"https://github.com/surge-downloader.png","language":"Go","funding_links":["https://buymeacoffee.com/surge.downloader","https://github.com/sponsors/surge-downloader","https://www.buymeacoffee.com/surge.downloader"],"categories":["Table of Contents","Go"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Surge\n\n**Blazing fast TUI download manager built in Go for power users**\n\n[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/surge-downloader/surge)\n[![Release](https://img.shields.io/github/v/release/surge-downloader/surge?style=flat-square\u0026color=blue)](https://github.com/surge-downloader/surge/releases)\n[![Go Version](https://img.shields.io/github/go-mod/go-version/surge-downloader/surge?style=flat-square\u0026color=cyan)](go.mod)\n[![License](https://img.shields.io/badge/License-MIT-grey.svg?style=flat-square)](LICENSE)\n[![BuyMeACoffee](https://raw.githubusercontent.com/pachadotdev/buymeacoffee-badges/main/bmc-violet.svg)](https://www.buymeacoffee.com/surge.downloader)\n[![Stars](https://img.shields.io/github/stars/surge-downloader/surge?style=social)](https://github.com/surge-downloader/surge/stargazers)\n\n[Installation](#installation) • [Usage](#usage) • [Fonts](docs/FONTS.md) • [Benchmarks](#benchmarks) • [Extension](#browser-extension) • [Settings](docs/SETTINGS.md) • [CLI Reference](docs/USAGE.md)\n\n\u003c/div\u003e\n\n---\n\n## What is Surge?\n\nSurge is designed for power users who prefer a keyboard-driven workflow. It features a beautiful **Terminal User Interface (TUI)**, as well as a background **Headless Server** and a **CLI tool** for automation.\n\n![Surge Demo](assets/demo.gif)\n\n---\n\n## Why use Surge?\n\nMost browsers open a single connection for a download. Surge opens multiple (up to 32), splits the file, and downloads chunks in parallel. But we take it a step further:\n\n- **Blazing Fast:** Designed to maximize your bandwidth utilization and download files as quickly as possible.\n- **Multiple Mirrors:** Download from multiple sources simultaneously. Surge distributes workers across all available mirrors and automatically handles failover.\n- **Sequential Download:** Option to download files in strict order (Streaming Mode). Ideal for media files that you want to preview while downloading.\n- **Daemon Architecture:** Surge runs a single background \"engine.\" You can open 10 different terminal tabs and queue downloads; they all funnel into one efficient manager.\n- **Beautiful TUI:** Built with Bubble Tea \u0026 Lipgloss, it looks good while it works.\n\nFor a deep dive into how we make downloads faster (like work stealing and slow worker handling), check out our **[Optimization Guide](docs/OPTIMIZATIONS.md)**.\n\n---\n\n## Support the Project\n\nWe are just two CS students building Surge in between classes and exams. We love working on this, but maintaining a project of this scale takes time and resources. That's where you come in!\n\nIf Surge saves you time, consider supporting the development! Donations go directly toward:\n\n- **Publishing the Extension:** Paying the Chrome Web Store fee so you can finally install the extension officially (no more sideloading!).\n- **Dev Tools:** Licenses for tools like **GoReleaser Pro** to help us automate our builds.\n- **Debrid Integration:** Covering subscription costs so we can test and build native Debrid support.\n\n[**☕ Buy us a coffee**](https://www.buymeacoffee.com/surge.downloader)\n\n_Totally optional—your stars, issues, and contributions already mean the world to us! :)_\n\n---\n\n## Installation\n\nSurge is available on multiple platforms. Choose the method that works best for you.\n\n| Platform / Method                  | Command / Instructions                                                           | Notes                                        |\n| :--------------------------------- | :------------------------------------------------------------------------------- | :------------------------------------------- |\n| **Prebuilt Binary**          | [Download from Releases](https://github.com/surge-downloader/surge/releases/latest) | Easiest method. Just download and run.       |\n| **Arch Linux (AUR)**         | `yay -S surge`                                                                 | Managed via AUR.                             |\n| **macOS / Linux (Homebrew)** | `brew install surge-downloader/tap/surge`                                      | Recommended for Mac/Linux users.             |\n| **Windows**         | `winget install surge-downloader.surge`\u003cbr /\u003eor\u003cbr /\u003e`scoop install surge` | Recommended for Windows users.               |\n| **Dockerfile**               | [See instructions](#4-server-mode-with-docker-compose)                              | Run Surge in server mode with Docker Compose |\n| **Go Install**               | `go install github.com/surge-downloader/surge@latest`                          | Requires Go 1.25+                           |\n\n---\n\n## Usage\n\nSurge has two main modes: **TUI (Interactive)** and **Server (Headless)**.\n\nFor a full reference, see the **[Settings \u0026amp; Configuration Guide](docs/SETTINGS.md)** and the **[CLI Usage Guide](docs/USAGE.md)**.\n\n### 1. Interactive TUI Mode\n\nJust run `surge` to enter the dashboard. This is where you can visualize progress, manage the queue, and see speed graphs.\n\n```bash\n# Start the TUI\nsurge\n\n# Start TUI with downloads queued\nsurge https://example.com/file1.zip https://example.com/file2.zip\n\n# Combine URLs and batch file\nsurge https://example.com/file.zip --batch urls.txt\n```\n\n### 2. Server Mode (Headless)\n\nGreat for servers, Raspberry Pis, or background processes.\n\n```bash\n# Start the server\nsurge server\n\n# Start the server with a download\nsurge server https://url.com/file.zip\n\n# Start with explicit API token\nsurge server --token \u003ctoken\u003e\n```\n\n`surge` and `surge server` bind the HTTP API to `0.0.0.0` (all interfaces) by default.\nThis means the server is accessible via `localhost` (127.0.0.1) as well as your local network IP.\n\nThe API is token-protected. Generate/read your token by running:\n\n```bash\nsurge token\n```\n\n### 3. Remote TUI\n\nConnect to a running Surge daemon (local or remote).\n\n```bash\n# Connect to local server (auto-detected)\nsurge connect\n\n# Connect to a remote daemon\nsurge connect 192.168.1.10:1700 --token \u003ctoken\u003e\n\n# Equivalent global-flag form\nsurge --host 192.168.1.10:1700 --token \u003ctoken\u003e\n```\n\nBy default, `surge connect` uses:\n\n- `http://` for loopback and private IP targets\n- `https://` for public/hostname targets\n\n### 4. Global Connection Flags (CLI + TUI)\n\nThese global flags are available on all commands:\n\n- `--host \u003chost:port\u003e`: target server for TUI and CLI operations.\n- `--token \u003ctoken\u003e`: bearer token for authentication.\n\nEnvironment variable fallbacks:\n\n- `SURGE_HOST`\n- `SURGE_TOKEN`\n\n### 5. Server Mode with Docker Compose\n\nDownload the compose file and start the container:\n\n```bash\nwget https://raw.githubusercontent.com/surge-downloader/surge/refs/heads/main/docker/compose.yml\ndocker compose up -d\n```\n\nGet the API token:\n\n```bash\ndocker compose exec surge surge token\n```\n\nSave this token - you'll need it to authenticate API requests and connect remotely.\n\nCheck downloads/API availability:\n\n```bash\ndocker compose exec surge surge ls\n```\n\nView logs:\n\n```bash\ndocker compose logs -f surge\n```\n\n---\n\n## Fonts\n\nSurge ships a bundled Nerd Font for the TUI, but your terminal controls the\nactual font selection. See [docs/FONTS.md](docs/FONTS.md) for install steps and\nlicensing details.\n\n---\n\n## Benchmarks\n\nWe tested Surge against standard tools. Because of our connection optimization logic, Surge significantly outperforms single-connection tools.\n\n| Tool            | Time             | Speed                | Comparison    |\n| --------------- | ---------------- | -------------------- | ------------- |\n| **Surge** | **28.93s** | **35.40 MB/s** | **—**  |\n| aria2c          | 40.04s           | 25.57 MB/s           | 1.38× slower |\n| curl            | 57.57s           | 17.79 MB/s           | 1.99× slower |\n| wget            | 61.81s           | 16.57 MB/s           | 2.14× slower |\n\n\u003e _Test details: 1GB file, Windows 11, Ryzen 5 5600X, 360 Mbps Network. Results averaged over 5 runs._\n\nWe would love to see you benchmark Surge on your system!\n\n---\n\n## Browser Extension\n\nThe Surge extension intercepts browser downloads and sends them straight to your terminal. It communicates with the Surge client on port **1700** by default.\n\n### Chrome / Edge / Brave\n\n1. Download `extension-chrome.zip` from the latest GitHub release.\n2. Unzip it somewhere on disk.\n3. Open your browser and navigate to `chrome://extensions`.\n4. Enable **\"Developer mode\"** in the top right corner.\n5. Click **\"Load unpacked\"**.\n6. Select the unzipped `extension-chrome` folder.\n\n### Firefox\n\n1. **Stable:** [Get the Add-on](https://addons.mozilla.org/en-US/firefox/addon/surge/)\n2. **Development:**\n   - Download `extension-firefox.zip` from the latest GitHub release.\n   - Navigate to `about:debugging#/runtime/this-firefox`.\n   - Click **\"Load Temporary Add-on...\"**.\n   - Select the zip file (or unzip and select `manifest.json`).\n\n---\n\n## Acknowledgements\n\nHuge thanks to the teams and sponsors helping us build and ship Surge:\n\n- [Charm](https://charm.sh/) for the incredible terminal UI ecosystem (Bubble Tea, Lip Gloss, and more).\n- [GoReleaser Pro](https://goreleaser.com/pro/) for release automation (provided free for open source).\n\n---\n\n## Community \u0026 Contributing\n\nWe love community contributions! Whether it's a bug fix, a new feature, or just cleaning up typos.\nPRs are always welcome. For a quick guide, see [CONTRIBUTING.md](CONTRIBUTING.md).\n\nYou can check out the [Discussions](https://github.com/surge-downloader/surge/discussions) for any questions or ideas, or follow us on [X (Twitter)](https://x.com/SurgeDownloader)!\n\n## License\n\nDistributed under the MIT License. See [LICENSE](https://github.com/surge-downloader/surge/blob/main/LICENSE) for more information.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://star-history.com/#surge-downloader/surge\u0026Date\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=surge-downloader/surge\u0026type=Date\u0026theme=dark\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=surge-downloader/surge\u0026type=Date\" /\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=surge-downloader/surge\u0026type=Date\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n\n\u003cbr /\u003e\nIf Surge saved you some time, consider giving it a ⭐ to help others find it!\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsurge-downloader%2Fsurge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsurge-downloader%2Fsurge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsurge-downloader%2Fsurge/lists"}