Self-hosted media · iOS apps · Telegram bots · AI coding tools · Proxy rules
I build tools for the things I actually run: a home media setup, a few servers, my phones, and the AI agents I code with.
What starts as “can I make this easier?” often turns into a script, an app, or a service I keep maintaining, with docs someone else can follow on the first try. 📝
🎬 Media & self-hosting
- Mi302 · Python — An Emby-compatible server for videos stored on 115 cloud. Syncs folders to
.strmand plays through 302 direct links, with no proxying or transcoding. Comes with MoviePilot plugins. - qBitGlass · Swift — A native iOS remote for qBittorrent WebUI, built with SwiftUI and Liquid Glass.
📱 iOS
- Mi-Dama · Swift — On-device screenshot redaction for phone numbers, ID numbers, addresses, faces, chat avatars and nicknames. Works offline; nothing is uploaded.
🤖 Bots & AI coding tools
- mibot-lite · Go — A memory-light Telegram userbot: one static binary, about 30–50 MB of RAM, and a drop-in replacement for MiBox configs.
- miswitch · TypeScript — A desktop app for switching providers in Claude Code, Codex CLI and Pi Coding Agent.
- context-hud · TypeScript — A Claude Code mod that shows usage windows and prompt-cache state in one line above the prompt.
🌐 Network & servers
- Rule · Python — Proxy rule sets for Surge, Loon, Shadowrocket, Mihomo, Quantumult X and sing-box, converted daily.
- sub-store-node-pm2-manager · Shell — Install, update and run multiple Sub-Store instances with Node.js + PM2, with automatic backup and rollback.
🧩 Android & web
- HyperOS GMS Keeper · Java — An LSPosed module that stops HyperOS from freezing GMS while the screen is off, so FCM push keeps arriving.
- JSON Format Tool · JavaScript — Format, minify and validate JSON in the browser without losing big-integer precision.
Tools that are useful beyond the first run. Instructions that someone else can follow. Small improvements that make everyday use smoother.
🌱 Stay curious. Make it useful. Keep improving.


