Supported Protocols
Netcatty supports five connection types:- SSH - Secure Shell connections (default)
- Telnet - Unencrypted text protocol for legacy devices
- Mosh - Mobile Shell for unreliable networks
- Serial - Direct serial port connections
- Local - Local terminal sessions
Multi-Protocol Configuration
Each host can be configured with multiple protocols, allowing you to quickly switch between connection types.Per-Protocol Settings
In the host configuration, each protocol can have its own settings:Quick Protocol Switching
When opening a host connection:- If only one protocol is enabled, it connects automatically
- If multiple protocols are enabled, you’ll see a protocol selection dialog
- The last-used protocol is remembered for quick access
SSH Protocol
The primary and most secure protocol for remote connections.Features
- Public key authentication (RSA, ECDSA, ED25519)
- Password authentication
- Certificate-based authentication
- SSH agent forwarding
- Jump host / bastion support
- SOCKS5 and HTTP proxy support
- Port forwarding (local, remote, dynamic)
Configuration Options
Key settings defined indomain/models.ts:44-52:
port- SSH port (default: 22)agentForwarding- Enable SSH agent forwardingkeepaliveInterval- Seconds between keepalive packets (0 = disabled)legacyAlgorithms- Enable older algorithms for network equipment
Telnet Protocol
Unencrypted text-based protocol for legacy network equipment.Configuration
Telnet-specific settings:telnetPort- Telnet port (default: 23)telnetUsername- Telnet login usernametelnetPassword- Telnet login passwordtelnetEnabled- Enable Telnet for this host
Use Cases
- Legacy network switches and routers
- Embedded systems without SSH support
- Serial-over-IP devices
- Testing and debugging network services
Mosh Protocol
Mobile Shell (Mosh) provides resilient connections over unreliable networks.Features
- Survives IP address changes (WiFi to cellular)
- Instant local echo for better responsiveness
- Predictive text for low-latency feel
- Uses UDP for better roaming support
Configuration
Mosh settings:moshEnabled- Enable Mosh for this hostmoshServerPath- Custom path to mosh-server (e.g.,/usr/local/bin/mosh-server)
Requirements
- Mosh client installed locally
- Mosh server installed on remote host
- UDP ports 60000-61000 accessible
- SSH access (Mosh uses SSH for initial handshake)
Installation
macOS:Serial Protocol
Direct serial port connections for embedded systems, console servers, and hardware devices.Serial Configuration
Defined indomain/models.ts:28-41:
Common Port Paths
Linux:/dev/ttyUSB0,/dev/ttyUSB1- USB serial adapters/dev/ttyACM0- USB CDC devices (Arduino, etc.)/dev/ttyS0- Built-in serial ports
/dev/cu.usbserial-*- USB serial adapters/dev/cu.SLAB_USBtoUART- Silicon Labs USB-to-UART
COM1,COM2, etc. - Serial ports
Common Baud Rates
- 9600 - Legacy equipment, slow devices
- 19200 - Networking equipment
- 38400 - Industrial devices
- 57600 - Embedded systems
- 115200 - Modern devices (most common)
- 230400, 460800, 921600 - High-speed devices
Use Cases
- Router/switch console access
- Embedded Linux systems (Raspberry Pi, etc.)
- Microcontroller debugging
- Industrial equipment
- Serial console servers
Local Terminal
Local shell sessions on your machine.Configuration
Local terminal settings in Terminal Settings:localShell- Path to shell executable (empty = system default)localStartDir- Starting directory (empty = home directory)
Default Shells
macOS:/bin/zsh (macOS 10.15+) or /bin/bashLinux:
/bin/bash, /bin/zsh, /usr/bin/fishWindows:
powershell.exe, cmd.exe
Environment Variables
Local terminals inherit your system environment. Custom environment variables can be set per-host in theenvironmentVariables field.
Protocol Switching
You can switch protocols without recreating the host:- Open host details panel
- Navigate to Protocols section
- Enable/disable protocols and configure settings
- When connecting, choose the desired protocol
ProtocolSelectDialog component (components/ProtocolSelectDialog.tsx:1) handles protocol selection when multiple protocols are enabled.
Implementation Details
Protocol handling is implemented in:- SSH:
electron/bridges/sshBridge.cjs- SSH connection management - Telnet/Mosh/Local:
electron/bridges/terminalBridge.cjs- PTY-based connections - Serial: Uses
serialportpackage via terminalBridge - Models:
domain/models.ts:26- Protocol types and configuration
Best Practices
Security
Security
- Always prefer SSH over Telnet when possible
- Use Mosh over SSH on unreliable networks, not as a replacement for secure networks
- Encrypt serial console connections with SSH tunnels when accessing over network
- Keep credentials in Keychain, not individual host configs
Network Equipment
Network Equipment
- Use Telnet for legacy switches/routers without SSH
- Enable legacy algorithms for older network equipment (see Legacy Algorithms)
- Use serial console for initial configuration or recovery
- Set appropriate timeout values for slow devices
Performance
Performance
- Use Mosh for high-latency or unstable connections
- Adjust serial baud rate to match device capabilities
- Enable compression for slow network links
- Use local terminal for frequent command-line work
