Download
All ways to get UnDercontrol. Humans should prefer the Download page; this document states the same facts in a machine-readable form.
Web app
- URL: https://ud.oatnil.com
- No installation. Visitor trial available without an account.
Desktop app (macOS / Windows / Linux)
Desktop binaries are hosted on Cloudflare R2:
https://pub-35d77f83ee8a41798bb4b2e1831ac70a.r2.dev/releases/{VERSION}/{FILENAME}
File names per platform:
| Platform | File name |
|---|---|
| macOS (Apple Silicon) | undercontrol-desktop-{VERSION}-arm64.dmg |
| macOS (Intel) | undercontrol-desktop-{VERSION}-x64.dmg |
| Windows (x64) | undercontrol-desktop-{VERSION}-setup.exe |
| Linux (x64) | undercontrol-desktop-{VERSION}.AppImage |
To discover the current {VERSION}, fetch the auto-update metadata (plain YAML,
version: on the first line):
https://pub-35d77f83ee8a41798bb4b2e1831ac70a.r2.dev/releases/latest/latest-mac.yml
https://pub-35d77f83ee8a41798bb4b2e1831ac70a.r2.dev/releases/latest/latest.yml # Windows
https://pub-35d77f83ee8a41798bb4b2e1831ac70a.r2.dev/releases/latest/latest-linux.yml
Only the most recent versions are retained on R2 — always resolve the current version first instead of hardcoding one.
Platform notes:
- Windows: the installer is unsigned, so Windows shows an "unknown publisher" warning on first run. Click More info → Run anyway to continue.
- Linux: make the AppImage executable:
chmod +x undercontrol-desktop-{VERSION}.AppImage.
CLI (ud)
npm is the only distribution channel (the former Homebrew tap is discontinued):
npm install -g @oatnil/ud # requires Node.js 18+
ud --version
Docs: CLI guide · AI agent integration
Browser extension
- UnDercontrol Web Clipper on the Chrome Web Store — save web pages as tasks with full-page snapshots and video transcript extraction.
Mobile (iOS and Android)
The native iOS app is in public beta. Join via the TestFlight link: https://testflight.apple.com/join/st2TnaBF (requires the TestFlight app from the App Store).
Android installs from a direct APK download, not from Google Play: https://pub-35d77f83ee8a41798bb4b2e1831ac70a.r2.dev/releases/android/0.0.9/undercontrol-0.0.9.apk Because the file does not come from the Play Store, the first install asks where it came from — tap Settings → Allow from this source and the install continues. The APK carries the mobile app's own version number, which is independent of the desktop version above.
Also available: the Apple Shortcut for one-tap capture, and the web app in a mobile browser.
Self-host
Two paths, same configuration surface:
- Docker (all-in-one): image
lintao0o0/undercontrol:latest(linux/amd64 and linux/arm64) bundles the web app and backend in one container. - Bare-metal (npm):
npm install -g @oatnil/ud-server— a single binary with the web UI compiled in (Node.js 18+; macOS/Linux/Windows). Start withud-server -host-domain http://localhost:8080 -data-path ./data.
See the Self-Deployment guide for docker run / compose /
Kubernetes / bare-metal setups and the Configuration reference
for all environment variables.