velo

package module
v0.8.29 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 29, 2026 License: MIT Imports: 2 Imported by: 0

README

Velo

Velo

Fast downloads. A smoother internet. Velo is a free, open-source download manager: a Windows desktop app with browser integration, and a standalone command-line downloader for Windows, Linux and macOS.

Website · Latest release · CLI installation guide

Download

Platform Download Available today
Windows 10/11 Installer · Portable ZIP Desktop app, browser integration and veloctl
Linux Intel/AMD x64 · ARM64 Standalone veloctl get
macOS Apple Silicon · Intel Standalone veloctl get

After extracting a Linux/macOS archive:

./veloctl get "https://example.com/file.zip"
./veloctl get "https://example.com/file.zip" "$HOME/Downloads"

Press Ctrl+C to pause; repeat the same command and destination to resume. No desktop app is needed. See installation and checksum verification. A Linux desktop app and browser registration are planned. macOS binaries are unsigned and not notarized.

Install veloctl

How Command
One-line script (Linux, macOS) curl -fsSL https://velo.adoxcol.com/install.sh | sh
Homebrew (macOS, Linux) brew install adoxcol/tap/veloctl
Scoop (Windows) scoop bucket add adoxcol https://github.com/Adoxcol/scoop-bucket then scoop install veloctl
Debian / Ubuntu Download veloctl_<version>_amd64.deb (or arm64) from the latest release, then sudo apt install ./veloctl_*.deb
Fedora / RHEL / openSUSE Download veloctl-<version>-1.x86_64.rpm (or aarch64), then sudo dnf install ./veloctl-*.rpm
Go 1.27+ go install github.com/Adoxcol/velo/cmd/veloctl@latest
Windows app The installer includes veloctl and can add it to PATH

The install script checks the download's SHA-256 and puts veloctl in ~/.local/bin (set VELO_INSTALL_DIR to choose another folder).

Windows desktop features

  • Segmented downloads: files are split into parts (16 by default) downloaded in parallel over separate connections. When a part finishes, its connection takes over half of the part with the most left, and servers that cap each connection (GitHub, many CDNs) automatically get more, up to 32.
  • Survives network drops: a lost connection waits and resumes by itself; Windows is kept awake while downloading; free disk space is checked first.
  • Pause and resume, even after closing Velo or restarting the PC.
  • Video grabber: the extension finds HLS (.m3u8) and DASH (.mpd) streams and media files while a video plays. Velo picks the best quality and merges audio and video with ffmpeg.
  • Browser integration: click a download link in Chrome, Edge, Brave or Firefox and Velo takes over: its download dialog opens (file name, size, folder, parts) instead of the browser's downloader. Can be set to start straight away instead. Plus a "Download with Velo" right-click item.
  • Updates: Velo checks GitHub Releases, verifies the installer's SHA-256 and updates itself when idle; an unpacked extension reloads itself after an update.
  • Queue and scheduler: downloads at once, a daily download window, and sleep or shut down when everything finishes.
  • Velo Mini: a small always-on-top progress window in the corner while downloads run.
  • Download all with Velo: right-click a page (or a selection) to send its links to Velo, then pick the files in a batch dialog. Cookies are only sent to links on the same site as the page.
  • Extension popup: videos found on the tab, a quality picker for HLS streams, and a Download with Velo button over supported video players.
  • Queue control: start now, download next, move up and down; refresh an expired link and continue the same file; optional checksum (SHA-256, SHA-1, MD5) checked when done.
  • Proxy (follows Windows by default) and password-protected downloads.
  • Portable version: unzip and run; settings stay next to the program.
  • Nine languages: English, বাংলা, Deutsch, Español, Français, हिन्दी, 日本語, Português (Brasil) and 简体中文, following your Windows language (the extension follows the browser's).
  • Speed limit, auto-categorized folders (Video, Music, Images, Documents, Compressed, Programs), history, notifications, clipboard link detection, light and dark themes.

Velo downloads what websites serve openly. It does not bypass DRM, encryption or other protections, so DRM-protected streaming services are not supported. Individual YouTube videos/Shorts, Facebook video/reel pages and X/Twitter posts use the optional yt-dlp integration.

Install on Windows

Download Velo-Setup-<version>.exe from the releases page and run it. It installs for your user account only (no administrator rights), adds Velo to the Start menu and to Settings → Apps for uninstalling, and connects Chrome, Edge, Brave and Firefox. Then add the browser extension:

Prefer no installer? Velo-Portable-<version>.zip runs from any folder (see its README.txt).

Firefox: install the add-on from Firefox Add-ons. For development, open about:debugging → This Firefox → Load Temporary Add-on and pick manifest.json from an unzipped velo-firefox-<version>.zip (temporary add-ons are removed when Firefox closes).

The installer is not code-signed yet, so Windows SmartScreen may warn about an unknown publisher.

Build a release

Tagged GitHub releases build Windows packages and Linux/macOS CLI archives. See the release guide. To build the Windows packages locally:

.\tools\release.ps1 -Version 0.1.0

Writes dist\Velo-Setup-0.1.0.exe (the installer, which embeds the app and the extension), dist\Velo-Portable-0.1.0.zip, dist\velo-firefox-0.1.0.zip (for Firefox Add-ons) and dist\velo-extension-0.1.0.zip (for the Chrome Web Store and Edge Add-ons; see docs/store-listing.md and docs/privacy.md).

Build from source

Standalone CLI: Windows, Linux and macOS

Requires Go 1.27+. From the repository root:

go build -o veloctl ./cmd/veloctl
go test -race ./internal/engine ./internal/ipc ./cmd/veloctl

On Windows, use -o veloctl.exe. On Linux/macOS, run ./veloctl get "<url>".

Windows desktop app

Requirements: Windows 10/11, Go 1.27+, the WebView2 runtime (included with Windows 11), and optionally ffmpeg on PATH for video streams.

.\install.ps1

This builds bin\velo.exe, bin\velo-host.exe and bin\veloctl.exe, registers the native messaging host for Chrome, Edge, Brave and Firefox (current user only) and adds Velo to the Start menu.

To change the icon, edit tools/mkicon and run go run ./tools/mkicon then go generate ./cmd/velo.

Then load the extension: open chrome://extensions or edge://extensions, turn on Developer mode, click Load unpacked and choose the extension folder. Its ID is dmdcijgljocjdmafenflenjhdjhenokc.

Command line (veloctl)

veloctl get <url> [folder] and veloctl version run independently on all three platforms. The other commands below control a running Windows desktop app; Linux/macOS do not yet have a desktop app or background service.

On Windows, veloctl.exe is included in the installer and portable ZIP. The installer can add Velo to PATH; open a new terminal afterwards. On Linux/macOS, extract your archive and use ./veloctl, or follow the PATH setup guide.

Command What it does
veloctl version Print the installed version (all platforms)
veloctl list Show all downloads with their number (#id), status, progress, speed and connections
veloctl add <url> Add a download to Velo (files, HLS, DASH and supported video pages are recognised); prints ok <id>
veloctl pause <id> Pause a download
veloctl resume <id> Resume a paused or failed download
veloctl remove <id> Remove a download from the list (unfinished partial files are deleted)
veloctl limit <KB/s> Set the speed limit for all downloads; 0 removes it
veloctl get <url> [folder] Download right in the terminal, without the app. Saves to ~/Downloads/Velo unless you give a folder. Ctrl+C pauses; run the same command again to resume

Examples:

veloctl add https://example.com/big-file.zip
veloctl list
veloctl pause 3
veloctl resume 3
veloctl limit 2048        # 2 MB/s
veloctl limit 0           # no limit
veloctl get https://example.com/big-file.zip D:\Downloads

Video page downloads

Install yt-dlp, ffmpeg and Deno for YouTube's JavaScript challenges. Put the tools on PATH or beside veloctl (or velo.exe on Windows), then restart Velo. For the standalone CLI, use veloctl get "<video-page-url>"; regular files need no extra tools. These optional tools are not bundled in the installer. Keep yt-dlp current as sites change. The official Windows yt-dlp executable includes the EJS components; Deno and ffmpeg remain separate tools. If YouTube reports "The page needs to be reloaded", update yt-dlp; the upstream fix is available in its nightly builds (yt-dlp --update-to nightly).

With the Windows browser extension, open an individual YouTube, Facebook video/reel, or X/Twitter post and hover over its video, then click Download with Velo. You can also use the extension popup or paste the video page URL into Velo. On feeds, the hover button uses the enclosing post's permalink when available; otherwise open the individual video/post first. Facebook CDN byte-range fragments are resolved to the original video page when the link identifies it; otherwise Velo refuses the fragment. Videos requiring a Facebook login must be sent through the browser extension so it can supply the page cookies. Other sites retain the existing HLS, DASH and direct media detection.

Page downloads select the best available audio and video and save a merged MKV. They support cancellation and resuming partial files. Browser cookies for the page host are passed through a temporary cookie file and removed after extraction; logins requiring cookies from other domains may still fail. DRM and live streams are excluded. Availability depends on the site and yt-dlp; not every video works. The speed limit is captured when each page download starts and applies per download, not as Velo's shared live bandwidth budget. Quality selection is currently automatic for page downloads; the existing HLS quality picker is unchanged.

Translations

Velo's text is written in English and translated at runtime. To add or fix a language:

  1. Run node tools/i18n/extract.js to see any new English text, and add it to internal/i18n/locales/app/keys.json (or ext/keys.json for the extension).
  2. Add the translation at the same position in tools/i18n/app/<code>.json (and tools/i18n/ext/<code>.json). A new language also goes in Languages in internal/i18n/i18n.go.
  3. Run node tools/i18n/build.js. It checks every line keeps its {0} placeholders and HTML tags, and writes the files Velo and the extension load.

Layout

Path What it is
cmd/velo/ The desktop app: tray icon, window (WebView2, ui.html), queue, scheduler, settings
cmd/velo-host/ Native messaging host: the browser starts it per message; it forwards to the app
cmd/velo-setup/ Installer and uninstaller (per user); embeds the release build
cmd/veloctl/ Command-line control: list, add, pause, resume, remove, limit, get
internal/engine/ Download engine: segmented HTTP, HLS, DASH, speed limit, categories
internal/ipc/ How the host and CLI find the app: %APPDATA%\Velo\endpoint.json (port + token)
extension/ Manifest V3 extension: download capture, video detection, popup, hover button
How the browser talks to Velo

The extension never opens a network port. It uses the browser's native messaging: Chrome starts velo-host.exe (allowed only for Velo's extension ID) and exchanges length-prefixed JSON over stdin and stdout. The host forwards each message to the app over 127.0.0.1 on a random port, with a random token from %APPDATA%\Velo\endpoint.json, so web pages can't add downloads.

Development

Windows (all packages):

go test -race ./...        # engine and app tests (local test servers, no internet needed)
go vet ./...

For Linux/macOS, run the portable package test command under Build from source; Windows UI packages are not portable yet.

Windows desktop data lives in %APPDATA%\Velo (settings, history, log). Set VELO_HOME to use another folder.

License

MIT

Documentation

Overview

Package velo provides the release notes bundled with the application.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ReleaseNotes

func ReleaseNotes(version string) string

ReleaseNotes returns the changelog section for an exact release version.

Types

This section is empty.

Directories

Path Synopsis
cmd
velo command
velo is the download manager app for Windows: a tray icon plus a download window.
velo is the download manager app for Windows: a tray icon plus a download window.
velo-host command
velo-host is the Chrome/Edge/Firefox native messaging host.
velo-host is the Chrome/Edge/Firefox native messaging host.
velo-setup command
velo-setup installs and uninstalls Velo for the current user (no admin rights needed).
velo-setup installs and uninstalls Velo for the current user (no admin rights needed).
veloctl command
veloctl is the command-line companion to the Velo tray app.
veloctl is the command-line companion to the Velo tray app.
internal
engine
Package engine is a segmented HTTP downloader with pause/resume and dynamic segmentation.
Package engine is a segmented HTTP downloader with pause/resume and dynamic segmentation.
hostreg
Package hostreg registers Velo's native messaging host with Chromium browsers, so the extension can talk to Velo.
Package hostreg registers Velo's native messaging host with Chromium browsers, so the extension can talk to Velo.
i18n
Package i18n translates Velo's interface.
Package i18n translates Velo's interface.
ipc
Package ipc is the link between the native messaging host and the app.
Package ipc is the link between the native messaging host and the app.
update
Package update checks GitHub Releases for a newer Velo, downloads its installer and verifies it before running it.
Package update checks GitHub Releases for a newer Velo, downloads its installer and verifies it before running it.
version
Package version holds Velo's version, set at build time:
Package version holds Velo's version, set at build time:
tools
changelog command
changelog turns CHANGELOG.md into the website's changelog page.
changelog turns CHANGELOG.md into the website's changelog page.
hostreg command
hostreg connects browsers (Chrome, Edge, Brave, Chromium, Firefox) to the velo-host.exe in a folder, for development builds.
hostreg connects browsers (Chrome, Edge, Brave, Chromium, Firefox) to the velo-host.exe in a folder, for development builds.
mkicon command
mkicon draws the Velo icon (a white lightning bolt on a rounded blue square) at every size Windows and the browser extension need, and writes the .ico and .png files.
mkicon draws the Velo icon (a white lightning bolt on a rounded blue square) at every size Windows and the browser extension need, and writes the .ico and .png files.
packext command
packext builds the browser extension .zip for the Chrome Web Store and Microsoft Edge Add-ons, or (-browser firefox) for Firefox Add-ons.
packext builds the browser extension .zip for the Chrome Web Store and Microsoft Edge Add-ons, or (-browser firefox) for Firefox Add-ons.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL