Prerequisites
Before you begin, ensure you have:- Windows 10 or later (Windows Server 2019+ also supported)
- Windows Terminal, CMD, or PowerShell
- Downloaded the latest release binaries
Installation
Download Binaries
Download the latest release from GitHub:Extract the archive to a directory (e.g.,
C:\Program Files\UndyingTerminal)Basic Usage
1. Start the Server
Open a terminal and start the server:By default, the server listens on port
2022. You can change this in the configuration file.2. Start a Terminal
In a new terminal window, start a terminal session:The
echo "XXX/ignored" provides a dummy stdin input. The terminal will print its client ID and passkey on first run - save these for the next step!3. Connect the Client
In a third terminal window, connect to the session:Testing Session Persistence
Let’s verify that your session survives disconnects:Success! Your session survived the disconnect and recovered seamlessly.
One-Shot Commands
Execute a single command without interactive mode:- Connect to the session
- Send the command
- Wait for output
- Exit when idle
SSH Bootstrap (Remote Servers)
Connect to a remote server and start a persistent session:- SSH to the remote server
- Start
undying-terminal-terminalremotely - Extract the client ID and passkey
- Connect directly via TCP
- Keep the session alive even if SSH drops
Tmux Integration (v1.1.0+)
For servers with tmux installed, auto-attach to a tmux session:Predictive Echo (v1.1.0+)
For high-latency connections, enable local echo:Configuration File (Optional)
Create a config file for persistent settings:Built-in UI (v1.1.0+)
For managing multiple sessions, use the built-in UI:Learn More
Full guide to the built-in UI
Next Steps
Port Forwarding
Learn how to forward ports through your session
Jumphost Setup
Connect through intermediate servers
Built-in UI
Manage multiple sessions interactively
Windows Service
Run the server as a Windows service
Troubleshooting
Server won't start - port already in use
Server won't start - port already in use
Check if port 2022 is already in use:Either:
- Kill the process using the port
- Change the port in
ut.cfg - Use
--portflag:./undying-terminal-server.exe --port 2023
Client can't connect - connection refused
Client can't connect - connection refused
Verify:
- Server is running (
netstat -ano | findstr :2022) - Firewall isn’t blocking port 2022
- Client ID and passkey match terminal output
Named pipe errors on multi-server setup
Named pipe errors on multi-server setup
If running multiple servers on one machine (dev), set unique pipe names:
Summary
You’ve learned how to:- Install and run all three components
- Create and connect to persistent sessions
- Test session recovery
- Execute one-shot commands
- Use SSH bootstrap for remote servers