Project Overview
ThumbCommand is a mobile-first web dashboard designed for developers who run tmux sessions on Android via Termux. It provides touch-optimized thumb navigation for monitoring and controlling terminal sessions, with real-time updates via WebSocket.
Built specifically for the constraints of ARM64 Android, where tools like Next.js fail due to missing SWC binaries. ThumbCommand uses Vite + React instead, which compiles cleanly on Termux. The result is a PWA-ready dashboard that turns a phone into a terminal control center.
Why Vite instead of Next.js?
Next.js depends on SWC for compilation, and SWC does not ship pre-built ARM64 Linux binaries. On Termux (ARM64 Android), this means Next.js simply cannot build. Vite uses esbuild which compiles natively on ARM64, making it the only viable modern React framework for this platform.
By the Numbers
Tech Stack
Frontend
- React 18
- TypeScript
- Vite (ARM64 compatible)
- Tailwind CSS v4
- shadcn/ui components
Backend
- Express.js
- Socket.io (real-time)
- tmux CLI integration
- Termux API bridge
Platform
- ARM64 Android
- Termux environment
- PWA manifest
- Dark theme + gradients
Architecture
Key Features
Thumb Navigation
Touch-optimized UI designed for one-handed phone operation. Large tap targets, swipe gestures, and bottom-anchored navigation for easy thumb reach.
Real-Time Monitoring
Live tmux session status via WebSocket. See which sessions are running, their window counts, and output streams updating in real time.
PWA Ready
Install as a Progressive Web App on Android. Full-screen experience with offline support, home screen icon, and native-app feel.
ARM64 Native
Built to run on Termux ARM64 Android. No SWC dependency, no architecture mismatches. Vite + esbuild compile cleanly on mobile hardware.
Dark Theme
Carefully designed dark interface with gradient accents. Easy on the eyes for late-night terminal monitoring from bed or couch.
Claude Code Status
Monitor Claude Code sessions running in tmux. See thinking/writing/idle status at a glance without switching to the terminal.
Reflections
ThumbCommand was a deep dive into mobile development on Android/Termux constraints. The biggest lesson was ARM64 compatibility — many Node.js tools assume x86_64 and ship pre-built binaries that simply do not work on ARM. Learning to navigate these gaps (Vite over Next.js, esbuild over SWC) was essential.
The touch UX for terminal interfaces was its own challenge. Terminals are inherently keyboard-first, but ThumbCommand proved that monitoring and session management can be made genuinely touch-friendly. The thumb-reachable bottom navigation pattern turned out to be the key insight for mobile developer tools.