linroid/Ketch

▲ 54 stars today★ 247⑂ 20

A fast, open-source download manager for every device you own.

About linroid/Ketch

linroid/Ketch is an open-source project on GitHub, mainly written in Kotlin. A fast, open-source download manager for every device you own. It currently holds 247 stars and 20 forks with 7 open issues, and was last pushed on 2026-10-08 (repository created 2026-02-07).

Project Overview

Git Homed tracks it on the Today's Trending board, currently at rank #61 with 54 new stars today.

GitHub Repository Details

Repository linroid/Ketch · default branch main · size 22510 KB · watchers 2 · source: GitHub REST API and repository README

README

https://github.com/linroid/Ketch/blob/HEAD/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

https://github.com/linroid/Ketch/blob/HEAD/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][release] | | Windows (x64, ARM64) | .msi, or the portable .zip that runs without installing, from the [latest release][release] (about the portable app) | | Linux (x64, ARM64) | .deb from the [latest release][release] | | Android 8.0+ | .apk from the [latest release][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][release] (how to install) | | Command line and server | macOS, Linux and Windows: install script or the [latest release][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).

[release]: https://github.com/linroid/Ketch/releases/latest

Features

Faster downloads

Connections tab shows every connection as a lane with its own speed, and you can add or remove connections while the download runs. cellular data (how it works). changed before it continues, and retries failed connections on its own.

Every kind of link

the download. engine written in pure Kotlin (details). HLS master playlists use the highest-bandwidth variant (support and limits). the file manager lands in Ketch.

All your devices in one app

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. keystroke, or open All devices to list every download in one table. sidebar, or send or move a download to another device, without switching. web app built in, and the apps find it on your network.

In control of your bandwidth

switches between them on a weekly schedule. a download runs. Urgent pauses a less important download to start right away. download later, at a time you pick.

Built for how you work

downloads and magnet links and adds Download with Ketch to the context menu, for this computer or another device (details). copy. palette, and the shortcut sheet lists every key. the list. on the desktop; downloads that keep running in the background on Android and on iOS 26. 简体中文, 繁體中文, 日本語, 한국어, Español, Português (Brasil), Deutsch and Français (translating).

Find downloads with AI (preview)

searches the web, checks the links and ranks the downloads it finds; a failed download can Find another source the same way. Narrow a search down with follow-up messages, discard what you don't want and pick up past searches from the history. Discover asks before it opens a website, unless you let it. 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). the Model Context Protocol.

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][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://: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

browser-store extensions and verified installation/update paths (plan) AES-128 HLS encryption; finite, unencrypted single-stream downloads are already supported ones, so a download no longer waits on its slowest connection choose timeouts and how often to retry, unlimited included their real name once complete rules you set and change the selection while it downloads shut down when they finish downloads of the Ketch app or a server, instead of starting a second engine check and a fixed torrent port other device continues instead of starting over (plan) connection, added or removed while it runs (proposal)

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

privacy

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

GitHub Stars & Activity

247Stars
20Forks
7Open issues
KotlinLanguage

GitHub Popularity

GitHub stars247
Forks20
Open issues7
Primary languageKotlin
LicenseApache-2.0
Stars gained today54
Created2026-02-07
Last pushed2026-10-08

Trending History

Daily boardrank #61 · ▲ 54 stars

Related GitHub Projects

1

gkd-kit / gkd

Kotlin★ 42,609⑂ 2,024▲ 45 stars
→
2

mihonapp / mihon

Kotlin★ 24,128⑂ 1,583▲ 40 stars
→
3

open-ani / animeko

Kotlin★ 20,688⑂ 606▲ 75 stars
→
4

PimpinPumpkin / Vela

Kotlin★ 1,163⑂ 48▲ 287 stars
→
5

mattpocock / skills

Shell★ 281,061⑂ 23,557▲ 1,774 stars
→
6

jackfrued / Python-100-Days

Jupyter Notebook★ 186,953⑂ 55,750▲ 43 stars
→
7

ollama / ollama

Go★ 182,413⑂ 18,166▲ 128 stars
→
8

msitarzewski / agency-agents

Shell★ 158,336⑂ 25,541▲ 344 stars
→

More Trending Repositories