hypertube is a system for data hoarders that lets you enqueue downloads on a central device from anywhere.
it's a spiritual companion to akasha.
hypertube wraps downloader apps (by default gallery-dl) and provides thin clients (currently: desktop CLI, Android app, Chromium browser extension) that sends downloads via a tiny JSON API.
This repository is a monorepo containing the server and all official clients.
.
├── server/ # Rust server + shared types + CLI reference client
├── browser-chromium/ # Chromium/Vivaldi Manifest V3 extension
├── android/ # Android share-target app
├── docs/ # Project brief, sketches, and API contract
└── .github/workflows/ # Path-based CI for each component
The durable HTTP server and the desktop CLI client. Written in Rust.
cd server
cargo run -p hypertube-server
# in another terminal:
cargo run -p hypertube-cli -- "https://example.com/art"Browser extension for Chromium-based browsers (tested on Vivaldi.) Supports toolbar popup, context menus, and clipboard.
cd browser-chromium
npm install
npm run build
# Load browser-chromium/dist/ as an unpacked extension.Android app that appears in the share sheet for text/plain URLs.
cd android
./gradlew buildThe current v0 API is documented in docs/api.md and formalized in docs/schema/enqueue-request.json. All clients communicate with the server through this contract.
- High-speed, low-drag: clients do minimal work; all real logic lives on the server.
- Server is the source of truth: configuration, downloader choice, and organization rules live in
server/. - Thin clients: browser and Android clients only need to know the server URL and how to POST a URL.
pre-alpha. Server and clients are functional but need fleshing out.