Your Tdarr server. Your pocket.
Unofficial Android ops console for self-hosted Tdarr — glance, pause, re-queue, and dig into workers without opening a laptop.
Unofficial disclaimer — Tdarr Pocket is an independent community project. It is not affiliated with, endorsed by, or sanctioned by the Tdarr project or its creators (HaveAGitGat / Tdarr). Tdarr® and related marks belong to their respective owners. Use at your own risk with your own server.
The Tdarr web UI is excellent on a desktop. On a phone, it’s a lot of pinch-zoom for a simple job: is anything failing, and can I stop or fix it right now?
Tdarr Pocket is a native Android companion for that job — built for LAN/VPN self-hosters who want:
- One-thumb ops while dinner’s on the stove
- Shade & home-screen controls that don’t need the full app open
- Honest stats pulled from your server (no fake demo charts)
- Sideload simplicity — GitHub Releases, not a store listing
If you’re already running Tdarr at home, this is the remote for it.
| Overview | Space saved, queue chips, LIVE/OFFLINE + poll age, pull-to-refresh |
| Analytics | Per-library storage savings + codec pies by file count (same get-pies source as the desktop console) |
| Throughput | Live combined transcode FPS while workers are running (session / ~60s window) |
| Limits | Bump health-check / transcode CPU & GPU worker caps |
| Pause / resume | Per-node or global pause |
| Jobs in flight | See active workers, %, FPS, cancel or kill when something’s stuck |
| Night schedule | Auto-boost worker limits overnight, then restore |
| Tabs | Transcode / health-check success & error queues, staging, reports |
| Bulk actions | Select files and re-queue, skip, or clear |
| Re-queue all errors | One action for the current error list |
| Staging | Review staged output before accepting |
| Reports & logs | Open job reports and dig into failure detail |
| Library CRUD | Create / edit libraries, cache path, flow assign, trigger scan |
| Flow canvas | Browse flow graphs on-device (view-first; deep editor parity deferred) |
| Search | Rich file search with filters |
| Log streamer | Dark terminal view with live polling |
| Filters | INFO / WARN / ERROR levels + text search |
| Copy | Grab log chunks to clipboard |
| Quick Settings tile | Pause / resume all workers from the shade |
| Home widget | FAIL count, active workers, one-tap Pause All |
| Alerts | WorkManager polls; notification actions (e.g. re-queue from the banner) |
| Test alert | More → Alerts → Send test alert to verify permission + actions |
| Ops tips | In-app guide for tile, widget, and battery unrestricted |
| Themes | Pitch Black OLED, Matrix Green, Cyberpunk Cyan, Amber Terminal, Dark Console |
| Profiles | Multiple servers; encrypted API key storage |
| Export / import | Backup connection profiles as JSON; restore on another device |
| Global tools | Pause-all, auto-accept, staged limit, schedules, bumped files, variables |
| Webhooks | Discord / Slack / Ntfy template builder + test send |
| Onboarding | Welcome → test connection → connect; tile / widget / battery tips |
| About | Version line under More for support reports |
Requires JDK 17+, Android SDK, and your Tdarr server reachable on LAN or VPN.
./gradlew :app:assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apkPackage: com.tdarr.mobile.debug
- Copy
keystore.properties.example→keystore.propertiesand generate a keystore (see file comments).
Never commit*.jksorkeystore.properties. - Build & install:
./gradlew :app:assembleRelease
adb install -r app/build/outputs/apk/release/app-release.apkPackage: com.tdarr.mobile · version 0.2.1
Or download the signed APK from Releases.
Full checklist: docs/RELEASE_CHECKLIST.md.
- Welcome → Add server — enter URL, optional API key, Test connection, then save.
- First profile enables local alerts and prompts for notification permission.
- Follow the tile / widget / battery tips so shade controls and alerts stay reliable.
Alerts use WorkManager. On aggressive OEMs (Samsung, Xiaomi, etc.):
Settings → Apps → Tdarr Pocket → Battery → Unrestricted
Then: More → Alerts → Send test alert.
- Tile: Shade → edit → “Tdarr Active” → drag into tiles
- Widget: Long-press home → Widgets → Tdarr Pocket
- Tips are also under More → Alerts → Tile, widget & battery tips
Device captures of Overview and Queue (personal library/file names redacted in-frame).
| File | Screen |
|---|---|
docs/screenshots/02-overview.png |
Overview + analytics |
docs/screenshots/04-queue.png |
Queue · TC Done |
Native Android · Jetpack Compose · Hilt · Ktor · WorkManager · Glance
app/src/main/java/com/tdarr/mobile/
├── alerts/ # WorkManager alerts, notification actions
├── data/ # DataStore, encrypted keys, Ktor API, repos
├── domain/ # Models + contracts
├── ui/ # Screens, Canvas charts, widget, QS tile, themes
└── di/ # Hilt
Something broken, confusing, or missing? Open a GitHub Issue:
→ github.com/fefsf/tdarr-pocket/issues
Please include:
- App version (More → About, e.g.
v0.2.1) and debug vs release build - Android version / device (optional)
- What you expected vs what happened
- Steps to reproduce
- Relevant logs (Log streamer or logcat) — redact API keys, hostnames, and personal file paths
Feature ideas are welcome as Issues too. Known deferred gaps include persisted 24h FPS history, deeper flow editing, and Play Store publishing.
See CONTRIBUTING.md. Licensed under MIT.
Not on the Play Store (by design for now). Sideload from Releases.

