An open-source tool for securely sharing terminal sessions over the web, enabling remote pair programming and debugging.
Upterm is an open-source tool that allows developers to share terminal sessions securely over the internet. It creates an SSH server on the host machine and establishes a reverse tunnel to a central server, enabling clients to connect from anywhere. This solves problems like remote pair programming, accessing machines behind firewalls, and real-time debugging of CI/CD pipelines.
Developers and DevOps engineers who need to collaborate on terminal sessions remotely, debug servers or CI environments in real-time, or provide secure access to machines behind restrictive networks.
Developers choose Upterm because it's a modern, hackable alternative to older tools like tmate, written in Go for easy deployment and extensibility. It supports flexible authentication, file transfers, and WebSocket connectivity, and can be self-hosted on various platforms like Kubernetes, Fly.io, or Heroku.
Instant Terminal Sharing
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Hosts can start a terminal session with a single command like `upterm host` and share the connection string effortlessly, enabling quick collaboration.
Supports public key authentication and integrates with GitHub, GitLab, and other Git services for user-based access control, as shown in the --github-user flags.
Clients can use SCP or SFTP for file transfers, with security options like host approval prompts and read-only modes, detailed in the SFTP/SCP section.
Connections can be established via WebSocket when SSH is restricted, ensuring accessibility in diverse network environments, as documented in the WebSocket connectivity guide.
The GitHub Actions integration via action-upterm allows real-time SSH access to runners for troubleshooting workflows, highlighted in the debugging section.
Requires running an uptermd server; self-hosting involves deployment on platforms like Kubernetes or Fly.io, which adds setup overhead and maintenance.
Limited to terminal sessions only, so it cannot share graphical applications or desktop interfaces, which may restrict use cases requiring visual collaboration.
Integration with Tmux requires manual edits to ~/.tmux.conf to carry environment variables, adding friction for users who rely on Tmux sessions.
Without the --accept flag, each file operation prompts the host for approval, which can disrupt workflow in fast-paced collaborative sessions.
upterm is an open-source alternative to the following products: