A modern Windows desktop application for managing SSH and serial port connections with an embedded terminal.
- Host Management - Store and organize SSH connections with groups
- Embedded Terminal - Full-featured terminal with xterm.js (vim, tmux, htop all work)
- Multiple Tabs & Split Panes - Work with multiple sessions side by side
- Secure Credential Storage - Passwords encrypted with Windows DPAPI
- SSH Key Support - SSH Agent, private key files, or password authentication
- SSH Key Management - Generate, import, and manage SSH keys with passphrase support
- PPK Import Wizard - Batch convert PuTTY keys to OpenSSH format
- SFTP Browser - Graphical file transfer with drag-and-drop
- Port Forwarding - Local and remote port forwarding profiles
- Jump Hosts - ProxyJump support for bastion/jump host connections
- Import/Export - Import from SSH config or PuTTY, backup to cloud
- COM Port Support - Connect to serial devices (routers, switches, embedded systems)
- Full Configuration - Baud rate, data bits, stop bits, parity, flow control
- DTR/RTS Control - Toggle hardware signals for device reset/boot modes
- Local Echo - Optional local character echo for half-duplex devices
- Quick Connect - Enumerate and connect to available COM ports instantly
- Save & Organize - Store serial port configurations alongside SSH hosts
- Modern UI - Dark theme with Fluent Design (WPF-UI)
- Session Recording - Record and playback terminal sessions (ASCIINEMA format)
- Windows 10/11 (64-bit)
- .NET 8.0 SDK or later
- WebView2 Runtime (pre-installed on Windows 10/11)
# Clone the repository
git clone https://github.com/tomertec/sshmanager.git
cd sshmanager
# Build
dotnet build SshManager.sln
# Run
dotnet run --project src/SshManager.App/SshManager.App.csprojCheck the Releases page for pre-built binaries.
- Add a host: Click the + button and enter connection details
- Connect: Double-click a host or press Enter
- Organize: Create groups to organize your hosts
- Split panes: Right-click a tab to split horizontally/vertically
For detailed usage instructions, see the Getting Started Guide.
- Getting Started - First-time setup and basic usage
- Full Documentation - Complete feature documentation
- Architecture - Technical architecture details
- API Reference - Terminal services API for developers
| Component | Technology |
|---|---|
| Framework | .NET 8, WPF |
| UI Library | WPF-UI (Fluent Design) |
| MVVM | CommunityToolkit.Mvvm |
| Database | SQLite via EF Core |
| SSH | SSH.NET |
| Serial | System.IO.Ports + RJCP.SerialPortStream |
| Terminal | xterm.js via WebView2 |
# Debug build
dotnet build SshManager.sln
# Release build
dotnet build SshManager.sln -c Release
# Run tests
dotnet test
# Publish self-contained executable
dotnet publish src/SshManager.App/SshManager.App.csproj -c Release -r win-x64 --self-containedContributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- SSH.NET - SSH library for .NET
- RJCP.SerialPortStream - Cross-platform serial port library
- WPF-UI - Modern WPF controls
- xterm.js - Terminal emulator for the web
- CommunityToolkit.Mvvm - MVVM framework
