A fast, open-source download manager for every device you own.
macOS · Windows · Linux · Android · iOS · Web · Command line
Download · Features · Getting started · For developers
Ketch splits every download across parallel connections, and shows each one as a live lane. It takes web links, FTP servers, torrents and magnet links in one place. Pair your laptop, phone and home server, and you can watch and control the downloads on all of them from any one of them.
Warning
🚧 Ketch is in active development and only has release candidates so far. Expect rough edges, and please report what you find.
| Platform | Get it |
|---|---|
| macOS (Apple silicon, Intel) | .dmg from the latest release |
| Windows (x64, ARM64) | .msi from the latest release |
| Linux (x64, ARM64) | .deb from the latest release |
| Android 8.0+ | .apk from the latest release |
| iOS 18+ | Build from source with Xcode (app/ios) |
| Web | linroid.com/Ketch, to control Ketch running on another device |
| Browser extension | Chrome, Edge, Brave, Firefox and others: .zip from the latest release (how to install) |
| Command line and server | macOS, Linux and Windows: install script or the latest release |
The desktop apps bring their own runtime, and the command line is a single native binary: neither
needs Java. Both update themselves from the releases here: the desktop app from Settings → About,
the command line with ketch update (how updates work).
- Parallel connections — Ketch splits a file into ranges and downloads them at once. The Connections tab shows every connection as a lane with its own speed, and you can add or remove connections while the download runs.
- Several networks at once — Spread one download over Wi-Fi, Ethernet and, on Android, cellular data (how it works).
- Pause and resume, even after a restart — Ketch checks that the file on the server has not changed before it continues, and retries failed connections on its own.
- HTTP and HTTPS, with the cookies and referrer of the page when the browser extension sends the download.
- FTP and FTPS, with parallel connections and resume.
- BitTorrent and magnet links — v1, v2 and hybrid torrents, with a choice of files, in an engine written in pure Kotlin (details).
- Ketch can open magnet links and
.torrentfiles for your system, so a click in the browser or the file manager lands in Ketch.
- Pair by QR code — On the device to share, open Settings → Sharing and choose Allow another device; scan the code with your phone, or copy the pairing link. Or pick the device under Find on network and allow it there, once both show the same four digits.
- Every device in the sidebar with its live speed and health. Switch between them with a keystroke, or open All devices to list every download in one table.
- Send downloads where they belong — Add a link to any device, drop it on a device in the sidebar, or send or move a download to another device, without switching.
- Headless on a NAS or server —
ketch serverruns the same engine with a REST API and the web app built in, and the apps find it on your network.
- Speed modes — Full speed, Slow lane to leave room for a video call, or Auto, which switches between them on a weekly schedule.
- Per-download control — Speed limits, connection counts and priorities you can change while a download runs. Urgent pauses a less important download to start right away.
- A queue that behaves — Limit how many downloads run at once and per site, and start a download later, at a time you pick.
- Browser extension for Chrome, Edge, Brave, Firefox and other browsers: it takes over downloads and magnet links and adds Download with Ketch to the context menu, for this computer or another device (details).
- Paste to download — Paste a link to add it, with Undo, or let Ketch suggest the links you copy.
- Keyboard first on the desktop:
⌘K(Ctrl+Kon Windows and Linux) opens the command palette, and the shortcut sheet lists every key. - Finished means openable — Open a file, show it in its folder or drag it out, straight from the list.
- At home on each platform — The menu bar or tray, notifications, Dock and taskbar progress on the desktop; downloads that keep running in the background on Android and on iOS 26.
- Your look, your language — Light and dark themes with four accent colors, in English, 简体中文, 繁體中文, 日本語, 한국어, Español, Português (Brasil), Deutsch and Français (translating).
- Discover — Describe what you want, such as "the latest Ubuntu Server ISO", and an AI agent
searches the web, checks the links and ranks the downloads it finds. A failed download can
Find another source the same way. Bring your own model: OpenAI, Anthropic, Gemini, Ollama
or any OpenAI-compatible service. In the desktop and Android apps, and with
ketch ai-discover(setup). - MCP server —
ketch mcplets AI assistants start, watch and manage your downloads through the Model Context Protocol.
- Install Ketch from Download and open it. On phones, a few welcome screens ask where downloads go.
- Add a download: paste a link (
⌘V, orCtrl+V), drop a link or a.torrentfile on the window, or choose Add. - To control this computer from your phone, open Settings → Sharing, choose Allow another device and scan the QR code with the phone's camera.
- Install the browser extension to send the browser's downloads to Ketch.
Install the command line on macOS or Linux (on Windows, take the .zip from the
latest release):
curl -fsSL https://raw.githubusercontent.com/linroid/Ketch/main/install.sh | bashStart the server, with its REST API and web app on port 8642:
ketch serverThen add it in the apps under Devices → Add device, or open http://<server address>:8642 in
a browser. The command line also downloads on its own:
ketch https://example.com/file.zipSet an access code, the port and other options in a config file; the CLI documentation lists every command.
- Metalink — Downloads from several mirrors at once, with checksums
- WebDAV — Download from WebDAV servers, with resume
- HLS — Download and merge HTTP Live Streaming videos
- Media extraction — Save the media of web pages
- Resource sniffer — Find the downloadable files on a web page
- Transfers between devices — Send to and Move to carry what is already downloaded, so the other device continues instead of starting over (plan)
- Helper devices — Let your other devices download parts of the same file over their own connection, added or removed while it runs (proposal)
Everything the apps do is built on Ketch's Kotlin Multiplatform library, which you can use in your
own app: embed the download engine on Android, iOS, the JVM, Node.js or WASI, or control a Ketch
server from Android, iOS, the JVM or the browser, through the same KetchApi.
- Developer guide — Modules, a quick start, the REST API and extending Ketch
- API reference — Installation, configuration, priorities, errors and logging
- Architecture — The download pipeline and how the apps are put together
- Command line — Downloads, the server, MCP, AI discovery and the config file
- Browser extension — Setup, capturing, permissions and privacy
- BitTorrent — Torrent and magnet support and its limits
- Multiple networks — Spreading downloads across network interfaces
- AI discovery — Providers, keys, web search and environment variables
- Logging — Where the logs are, and what to attach to a bug report
Contributions are welcome! Please open an issue to discuss your idea before submitting a PR. See the code style rules, testing rules and localization guide for development guidelines; translations come in by pull request.
Coding agents should start with AGENTS.md, the shared instructions for all agents
and editors. If your tool does not load it automatically, ask it to read AGENTS.md and its linked
rules before making changes. Keep shared instructions in these files; tool-specific entry points
should only reference them.
Apache-2.0