Ketch README

The project's README from github.com/linroid/Ketch. As one markdown file: README.md.

Ketch

Ketch

English · 简体中文 · Español · 日本語 · Deutsch · Français

A fast, open-source download manager for every device you own.
macOS · Windows · Linux · Android · iOS · Web · Command line
A Kotlin Multiplatform library you can embed in your own application.

Latest release Maven Central Web app Android iOS Desktop License

Download · Watch demo · Features · Getting started · For developers

Ketch on the desktop, Android, iOS and the command line: the downloads table with each download split into live connection lanes, the devices on Android, a download's connections on iOS, and ketch in a terminal

▶ Watch Ketch in action

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.

Building your own app? Embed the same download engine that powers Ketch's apps, with parallel downloads, pause and resume, queues and speed limits. The Kotlin Multiplatform library is available on Maven Central. Start integrating Ketch →

[!WARNING] 🚧 Ketch is in active development and only has release candidates so far. Expect rough edges, and please report what you find.

Download

Platform Get it
macOS (Apple silicon, Intel) .dmg from the latest release
Windows (x64, ARM64) .msi, or the portable .zip that runs without installing, from the latest release (about the portable app)
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.github.io/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).

Features

Faster downloads

All your devices in one app

In control of your bandwidth

Built for how you work

Find downloads with AI (preview)

Getting started

  1. Install Ketch from Download and open it. On phones, a few welcome screens ask where downloads go.
  2. Add a download: paste a link (⌘V, or Ctrl+V), drop a link or a .torrent file on the window, or choose Add.
  3. To control this computer from your phone, open Settings → Sharing, choose Allow another device and scan the QR code with the phone's camera.
  4. Install the browser extension to send the browser's downloads to Ketch.

Run Ketch on a server

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 | bash

Start the server, with its REST API and web app on port 8642:

ketch server

Then 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.zip

Set an access code, the port and other options in a config file; the CLI documentation lists every command.

Roadmap

For developers

Embed Ketch in your application. Its Kotlin Multiplatform library gives you the same download engine used by the Ketch apps, with your own UI and application logic. Add the modules you need from Maven Central under com.linroid.ketch.

Run the engine inside your Android, iOS or JVM app with core and ktor; Node.js and WASI can use core with a custom HTTP engine. Or use remote to control a Ketch server from Android, iOS, the JVM or the browser through the same KetchApi.

Documentation

Contributing

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.

License

Apache-2.0

Ketch (linroid/Ketch)

Searching Database…

406 ·GitHub
What is this?Ketch is a fast, open-source download manager that works across macOS, Windows, Linux, Android, iOS, web and the command line, letting you pair your devices and control downloads from any of them.
Is this a ready-made app or a library I embed?Both: Ketch ships as ready-to-use apps for every platform, and the same download engine is also a Kotlin Multiplatform library published on Maven Central that you can embed in your own app.
How do I get it running?Grab the installer for your platform from the latest release (.dmg, .msi/.zip, .deb, .apk), or build iOS from source with Xcode. On a NAS or server you can instead run the CLI's 'ketch server' for a headless instance with a REST API and web app on port 8642.
Do I need Java or anything else installed first?No. The desktop apps bundle their own runtime and the CLI is a single native binary, so neither requires a separate Java install; both also self-update.
Is Ketch stable enough to rely on?Not yet fully: the project is still in active development with only release candidates so far, so expect rough edges and report issues you find.
How do downloads get spread across my devices?You pair devices by scanning a QR code or using a pairing link from Settings → Sharing; each paired device then shows up in the sidebar with its live speed, and you can send or move a download between them.
What kinds of links can Ketch download?It handles HTTP/HTTPS, FTP/FTPS, BitTorrent and magnet links (v1, v2 and hybrid, via a pure-Kotlin torrent engine), plus HLS (.m3u8) and DASH (.mpd) for finite unencrypted streams.
What does the AI Discover feature do?Discover is a preview AI agent that searches the web for a download you describe (e.g. 'the latest Ubuntu Server ISO'), checks links and ranks results; it works with OpenAI, Anthropic, Gemini, Ollama or any OpenAI-compatible model you bring yourself.
Can AI assistants control my downloads directly?Yes — running ketch mcp exposes an MCP server so AI assistants and agents can start, watch and manage downloads through the Model Context Protocol.
Creator
linroid
Size
37.4 MB
Stars
406
Age
8mo
Commits · 90 Days