Stream any terminal session to the web in real-time. Monitor and control remote processes from anywhere using just a browser.
- Universal Compatibility - Works with ANY command-line program (bash, vim, htop, docker, etc.)
- Real-time Streaming - Watch terminal output in real-time through your browser
- Remote Control - Send input to running processes from the web interface
- Mobile Friendly - Responsive design works great on phones and tablets
- File Browser - Browse and view project files alongside terminal output
- Session Management - Multiple concurrent sessions with automatic grouping by directory
- Zero Configuration - Works out of the box with automatic server management
- Transparent Wrapper - Your terminal works exactly as normal while being streamed
npm install -g @daviddawson/shellstreamOr use directly with npx:
npx @daviddawson/shellstream <command># Stream any command to the web
shellstream npm start
shellstream python app.py
shellstream docker logs -f mycontainer
# Or use the short alias
ss npm testNavigate to http://localhost:47832 in your browser
# Start an interactive bash session
shellstream bash
# Monitor a development server
shellstream npm run dev
# Stream a Python REPL
shellstream python- Remote Monitoring - Watch long-running processes from your phone
- Team Collaboration - Share terminal sessions with teammates
- Teaching & Demos - Stream coding sessions for educational purposes
- DevOps & Debugging - Monitor deployments and debug issues remotely
- CI/CD Pipelines - Watch build and test output in real-time
Shellstream uses a transparent wrapper pattern:
- Wrapper Process - Spawns your command in a pseudo-terminal (PTY)
- Auto-starting Server - Automatically starts a local web server if needed
- WebSocket Streaming - Streams all terminal I/O through WebSockets
- Web Interface - Renders the terminal using xterm.js with full ANSI support
Your local terminal continues to work exactly as normal - Shellstream just broadcasts a copy to the web.
The web interface is fully responsive with:
- Touch-friendly controls
- Horizontal scrolling for wide terminal output
- Collapsible sidebar for maximum screen space
- Gesture support for navigation
# Check server status
shellstream --status
# Stop the server
shellstream --stop
# Restart the server
shellstream --restart
# View server logs
shellstream --logs# Use a custom port
SHELLSTREAM_PORT=8080 shellstream npm startThe web interface includes a built-in file browser that lets you:
- Browse the project directory structure
- View source code with syntax highlighting
- See git status for modified files
- Navigate between multiple terminal sessions
For remote access, use SSH tunneling:
ssh -L 47832:localhost:47832 user@remote-hostContributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with node-pty for pseudo-terminal support
- Uses xterm.js for terminal rendering
- Inspired by tools like tmux, screen, and ttyd
- Firefox mobile may experience input duplication (workaround implemented)
- Some complex ncurses applications may not render perfectly
- Windows support requires Windows Terminal or WSL
- GitHub: @daviddawson
- Issues: GitHub Issues
Made with ❤️ for developers who need to monitor their terminals from anywhere