The terminal moves with you. Access and control your terminal from any mobile device.
mobile-terminal creates a local web server that streams your terminal output to your phone in real-time. When your terminal needs input (like Y/N prompts, passwords, or any user input), you get notified on your phone and can respond directly from there.
Perfect for:
- Long-running scripts that occasionally need input
- Remote deployments that ask for confirmation
- AI coding assistants (like Claude) that need permissions
- Any command that might interrupt your workflow
- 📱 Real-time terminal streaming to your phone
- 🔔 Instant notifications when input is needed
- ⌨️ Send commands from your phone
- 🚫 Prevents laptop sleep while running
- 🔒 Local network only - secure by default
- 🎯 Zero configuration - just run and go
pip install mobile-terminal
# Coming soon!
brew tap josharsh/tap
brew install mobile-terminal
pipx install mobile-terminal
git clone https://github.com/josharsh/mobile-terminal.git
cd mobile-terminal
pip install -e .
# Coming soon!
docker run -p 8080:8080 josharsh/mobile-terminal
- Python 3.7 or higher
- Works on macOS, Linux, and Windows (WSL)
# Run any command with mobile-terminal
mobile-terminal npm install
# Or use the short alias
mterm npm install
# Or start an interactive shell
mobile-terminal
# Or simply
mterm
# Then open the URL on your phone:
# http://192.168.1.42:8080
Monitor a deployment:
term-cast ./deploy-to-production.sh
Watch AI coding assistant:
term-cast claude-code
System updates:
term-cast sudo apt upgrade
- term-cast creates a pseudo-terminal (PTY) that captures all input/output
- Starts a local web server on port 8080
- Your phone connects via WebSocket for real-time streaming
- When input is detected, your phone gets notified
- You can type responses directly from your phone
- Laptop stays awake while term-cast is running
- Python 3.7+
- Same WiFi network for laptop and phone
- Modern web browser on phone
- Local network only - no data leaves your network
- No authentication by default - only use on trusted networks
- Optional encryption - use
--ssl
flag for HTTPS - Session isolation - each run gets a unique session
MIT