
Helping someone troubleshoot a terminal problem remotely often involves a frustrating loop:
“Run this command and send me the output.”
Then you wait for a screenshot, send another command, and repeat the process.
I built rsynx to make that workflow more direct.
What is rsynx?
rsynx is an open-source tool for sharing a live terminal between two people.
It does not require:
- Exchanging SSH credentials or keys
- A public IP address
- Port forwarding
- Inbound firewall configuration
The host remains in control of the session. A guest must be approved before joining, and typing access requires an additional approval.
It can be useful for:
- Remote technical support
- Collaborative troubleshooting
- Pair debugging
- Helping someone manage a Linux machine
- Demonstrating terminal commands in real time
Installation
On Linux and macOS, run:
curl -fsSL https://rsynx.ir/i | sh
Enter fullscreen mode Exit fullscreen mode
The installer downloads the appropriate binary and installs rsynx into your local binary directory.
If you prefer not to pipe an installation script into your shell, you can inspect the script first:
curl -fsSL https://rsynx.ir/i
Enter fullscreen mode Exit fullscreen mode
You can also manually download a binary from the project’s GitHub Releases page:
Download rsynx from GitHub Releases
Windows users can manually download the appropriate binary from the Releases page.
How it works
1. Start a session
The person sharing their terminal becomes the host:
rsynx host
Enter fullscreen mode Exit fullscreen mode
rsynx creates a new session and displays:
- A six-digit session code
- A four-character password
The host sends these temporary credentials to the guest through a trusted communication channel.
2. Join the session
The guest connects using the session code:
rsynx join <code>
Enter fullscreen mode Exit fullscreen mode
For example:
rsynx join 123456
Enter fullscreen mode Exit fullscreen mode
The guest is then asked to enter the four-character password.
Providing the correct code and password does not automatically grant access. A connection request is shown in the host’s terminal.
3. Approve the connection
The host can review the incoming request and either approve or reject it.
Only after approval can the guest enter the shared session.
4. Watch and chat
Once connected, the guest can:
- Watch the host’s terminal live
- Follow commands and output in real time
- Chat with the host on the same screen
This avoids moving constantly between the terminal, screenshots, and a separate messaging application.
5. Request typing control
Watching the terminal does not automatically give the guest permission to type.
If interaction is required, the guest can request temporary typing control. The host must approve this request separately.
The host remains in control and can revoke typing access at any moment.
A deliberate approval flow
Since terminal access is sensitive, rsynx separates the process into explicit steps:
- The guest enters the session code and password.
- The host approves or rejects the connection.
- The guest initially watches the terminal.
- Typing control requires another host approval.
- The host can revoke control whenever necessary.
This workflow is intended to make remote collaboration understandable for both participants while keeping the host in control.
rsynx is not a replacement for SSH
SSH remains the standard choice for persistent, administrative access to remote systems.
However, SSH is not always convenient for a temporary support session. It may require exchanging keys, creating accounts, exposing a reachable address, or changing network and firewall settings.
rsynx focuses on a different use case: temporary, interactive terminal collaboration between two people.
Open source
rsynx is open source and released under the MIT License.
You can inspect the source code, report issues, suggest improvements, or contribute to the project on GitHub:
- Website: https://rsynx.ir
- GitHub: https://github.com/arazshah/rsynx
- Releases: https://github.com/arazshah/rsynx/releases
Feedback is welcome
I would especially appreciate feedback about:
- Terminal compatibility
- Host and guest user experience
- Connection and approval flow
- Typing-control handoff
- Security expectations
- Real-world remote-support scenarios
- Windows, Linux, and macOS behavior
If you try rsynx, please let me know what worked, what broke, and what you would improve.
You can leave a comment here or open an issue on GitHub.
One command to install. One code to connect.