Over-the-air updater for a fleet of rooted android devices or redroid.
It watches for new Pokémon GO .apkm releases, caches them once on your
server, and installs them on one device or a whole fleet from a dashboard. Supports per-device
progress, automatic retries, canary rollouts and a hands-off mode.
Built for boxes already running the Unown# stack.
The scanning stack it plugs into names everything after Pokémon: Dragonite, Golbat, Rotom, Koji, Poracle, so this one keeps the habit. Magnemite is the magnet: it pulls new builds down once and sticks them onto every box. It is also the Pokémon that only becomes interesting in numbers: three of them make a Magneton, and this tool exists precisely because updating one box by hand is fine and updating two hundred is not.
Monorepo (pnpm workspaces):
apps/
hub/ Fastify server — device enrollment, WebSocket control, job orchestration
web/ Next.js dashboard — fleet view, rollouts, settings
docs/ Documentation site (Fumadocs)
packages/
db/ Prisma schema + client, shared by hub and web
protocol/ Shared types/contracts between hub and devices
agent/ Go agent that runs on each box, talks to the hub over WebSocket
magisk/ Magisk module that installs and launches the agent on the box
scripts/ Build, enrollment and local fleet-simulation scripts
data/ Local runtime data (cached APK artifacts, etc.)
deploy/ Docker Compose stacks, Caddy edge config
Devices connect to the hub over a persistent WebSocket, register, and receive install/update jobs. The web dashboard talks to the hub over HTTP/internal routes and reads the same database for fleet state.
- 📡 Source feeds — watches upstream sources for new Pokémon GO releases and caches them once on the server; add as many sources as you need.
- 📦 Manual installs — upload and push an APK by hand, outside any source feed or rollout.
- 🖥️ Fleet management — enroll devices, group them, and see live status for the whole fleet at a glance.
- 🚀 Rollouts — roll a new version out gradually (canary-style), with per-device progress and automatic retries.
- ⚙️ Auto-update or manual mode — choose per-device or fleet-wide between hands-off auto-updates and manual approval.
- 🧾 Jobs & events — full history of install/update jobs and what happened on each device.
- 👀 Watched packages — keep an eye on any extra app installed on a device, not just the main one.
- 📊 Device detail dashboard — a page per device with monitoring stats, installed packages, hardware info and current state.
- 🎮 Remote actions & commands — run commands on a device straight from the dashboard, including a reboot.
- 📜 Live logs & logcat download — watch a device's logs stream in real
time, or download the full bundle as
logcat.zip. - 🔄 Agent auto-update — the on-device agent keeps itself up to date too.
- ❤️ Health & scheduling — periodic health checks and scheduled jobs keep the fleet honest.
- 🔐 Auth & audit — accounts, sessions, and an audit log of admin actions.