Advanced SSH connection management for Visual Studio Code with enterprise-grade features.
TerminaX provides comprehensive SSH session management directly within VS Code, featuring hierarchical host organization, secure credential storage, multi-session terminals, and broadcast command execution across multiple hosts simultaneously.
Download the latest packaged extension (VSIX) from GitHub Releases: terminax-1.0.1.vsix
To install, open VS Code, run the command palette Extensions: Install from VSIX..., and select the downloaded file.
- Hierarchical Host Organization - Organize SSH hosts into folders and nested subfolders for logical grouping
- Visual Connection Status - Real-time indicators showing connection state (connected, disconnected, error)
- Multiple Concurrent Sessions - Connect to the same host multiple times with independent terminal sessions
- Secure Credential Storage - Passwords and passphrases stored securely using OS-native keychain integration
Multi-pane terminal workspace with split-screen layout for managing multiple SSH sessions simultaneously:
- Automatic grid layout (1-3 columns based on session count)
- Independent terminal panes with xterm.js rendering
- Per-workspace broadcast mode
- Copy/paste support with bracketed-paste for multi-line content
- Real-time status indicators per session
ClusterSSH-style command broadcasting for executing commands across multiple terminals:
- Send commands to selected hosts simultaneously
- Works with both integrated terminals and workspace sessions
- Scope selection via host picker or folder selection
- Independent broadcast control per workspace
Background TCP health checks for all configured hosts:
- Non-intrusive port accessibility probes
- Configurable check interval and timeout
- Visual health indicators in tree view
- No impact on active terminal sessions
- Password Authentication - Standard SSH password with optional secure storage
- SSH Key Authentication - Private key file support with optional passphrase
- SSH Agent - Integration with running SSH agent via
SSH_AUTH_SOCK
- Clone the repository
- Install dependencies:
npm install
- Compile the extension:
npm run compile
- Press
F5in VS Code to launch Extension Development Host
- Click the TerminaX icon in the Activity Bar
- Click the + button or use
Ctrl+Alt+Shift+H/Cmd+Alt+Shift+H - Provide the following information:
- Host Name: Friendly identifier (e.g., "Production Server")
- Hostname/IP: Server address (supports IPv4, IPv6, and DNS names)
- Username: SSH username
- Port: SSH port (default: 22)
- Authentication Method: Password, SSH Key, or SSH Agent
Single Connection:
- Click on a host in the tree view
- Or right-click and select "Connect"
Multiple Connections:
- Select multiple hosts using
Ctrl+Click/Cmd+Click - Click "Connect Multiple Hosts" or use
Ctrl+Alt+Shift+C/Cmd+Alt+Shift+C - Hosts open in the Terminal Workspace with split-screen layout
- Open a Terminal Workspace and connect at least one host
- Enable workspace broadcast from the workspace titlebar button, or press
Ctrl+B/Cmd+Bwhile the workspace tab is active - Type in any workspace terminal pane
- Input is mirrored to all other connected sessions in that same workspace
Create Folders:
- Click the folder icon or use
Ctrl+Alt+Shift+N/Cmd+Alt+Shift+N - Folders can be nested for hierarchical organization
Reorganize:
- Drag hosts or folders to move them
- Drop on folders to nest items
- Drag within the same level to reorder
Folder Operations:
- Right-click folder for context menu
- "Connect Multiple Hosts" to open all hosts in folder
Export Configuration:
- Execute
TerminaX: Export Configuration - Saves host configurations to JSON file
- Credentials are excluded for security
Import Configuration:
- Execute
TerminaX: Import Configuration - Select JSON file to import
- Creates backup of existing configuration before import
Settings are available under File > Preferences > Settings > Extensions > TerminaX:
-
terminax.keepaliveInterval(default:30000)- SSH keepalive interval in milliseconds
- Prevents idle connection timeouts
-
terminax.keepaliveCountMax(default:3)- Maximum keepalive attempts before considering connection dead
-
terminax.terminalScrollback(default:1000)- Terminal scrollback buffer size
-
terminax.healthChecks.enabled(default:true)- Enable background health monitoring
-
terminax.healthChecks.intervalMs(default:60000)- Interval between health checks in milliseconds
-
terminax.healthChecks.timeoutMs(default:5000)- Timeout for each health probe in milliseconds
Most shortcuts are scoped to the TerminaX hosts view:
| Shortcut | Action |
|---|---|
Ctrl+Alt+Shift+C / Cmd+Alt+Shift+C |
Connect Multiple Hosts |
Ctrl+Alt+Shift+F / Cmd+Alt+Shift+F |
Search Hosts Tree |
Ctrl+Alt+Shift+H / Cmd+Alt+Shift+H |
Add Host |
Ctrl+Alt+Shift+N / Cmd+Alt+Shift+N |
Add Folder |
Ctrl+B / Cmd+B |
Toggle Workspace Broadcast (when TerminaX Workspace tab is active) |
Ctrl+Alt+Shift+T / Cmd+Alt+Shift+T |
Open Terminal Workspace |
Ctrl+Alt+Shift+/ / Cmd+Alt+Shift+/ |
Open Help |
Available via Command Palette (Ctrl+Shift+P / Cmd+Shift+P):
TerminaX: Add SSH Host- Add new SSH hostTerminaX: Add Folder- Create new folderTerminaX: Edit Host- Modify host configurationTerminaX: Delete Host- Remove hostTerminaX: Connect- Connect to hostTerminaX: Connect Multiple Hosts- Multi-host connectionTerminaX: Disconnect- Close host connectionsTerminaX: Workspace Toggle Broadcast- Toggle broadcast in active workspaceTerminaX: Open Terminal Workspace- Open workspace panelTerminaX: Search Hosts Tree- Search hosts and foldersTerminaX: Refresh- Refresh tree and run health checksTerminaX: Export Configuration- Export to JSONTerminaX: Import Configuration- Import from JSONTerminaX: Open Help- Show help documentation
- Passwords and passphrases are stored using VS Code's
SecretStorageAPI - Storage backends:
- macOS: Keychain
- Windows: Credential Store
- Linux: libsecret (requires
libsecret-1-devpackage)
- Credentials are automatically deleted when hosts are removed
- Export operations exclude all credentials
- Only the file path to private keys is stored
- Key content is read at connection time and never persisted
- Encrypted keys prompt for passphrase with optional secure storage
- Health checks use TCP probes only (no authentication)
- All SSH connections use standard SSH2 protocol
- No credential transmission outside SSH protocol
The Terminal Workspace provides a dedicated webview panel for managing multiple SSH sessions:
- Automatic grid arrangement (1, 2, or 3 columns)
- Dynamic resizing based on session count
- Individual terminal panes with independent scrollback
- Per-session status indicators and controls
- Session Header: Shows hostname, status, and disconnect button
- Terminal Pane: Full xterm.js terminal with mouse support
- Broadcast Toggle: Enable/disable workspace-wide broadcast
- Add Hosts: Add additional sessions to workspace
- Disconnect All: Close all workspace sessions
Ctrl+C/Cmd+C: Copy selected textCtrl+Shift+V/Ctrl+V: PasteShift+Insert: Paste (Linux/Windows)- Right-click: Copy selection or paste
- Multi-line paste uses bracketed-paste mode
- Green Circle: Active SSH session
- Grey Circle: No active session
- Red Circle: Connection error or failure
Status is updated in real-time based on connection events and background health checks.
- Check Output panel:
View > Output > TerminaX - Verify VS Code version is 1.85.0 or higher
- Check extension host logs for errors
Authentication Failed:
- Verify username and credentials
- For key-based auth, check file permissions (should be 600)
- Ensure SSH service is running on target host
Connection Refused:
- Verify hostname/IP is correct
- Check SSH port (default: 22)
- Verify firewall rules allow SSH connections
Connection Timeout:
- Check network connectivity
- Verify host is reachable (
pingtest) - May indicate firewall blocking SSH port
DNS Resolution Failed:
- Verify hostname is correct
- Check DNS configuration
- Try using IP address instead
Linux:
- Install libsecret:
sudo apt-get install libsecret-1-dev - Or on Fedora/RHEL:
sudo dnf install libsecret-devel
macOS/Windows:
- Native keychain support, no additional setup required
- Requires VS Code 1.85.0 or higher
- Try refreshing the tree view
- Check for conflicting extensions
- VS Code: 1.85.0 or higher
- Node.js: 20.x or higher (for development)
- Operating System: Windows, macOS, or Linux
For credential storage:
# Debian/Ubuntu
sudo apt-get install libsecret-1-dev
# Fedora/RHEL
sudo dnf install libsecret-devel
# Arch Linux
sudo pacman -S libsecret# Install dependencies
npm install
# Compile TypeScript
npm run compile
# Watch mode for development
npm run watch
# Run linter
npm run lint
# Run extension in debug mode
# Press F5 in VS Codeterminax/
├── src/
│ ├── commands/ # Command implementations
│ ├── managers/ # Core logic managers
│ ├── models/ # Data models and interfaces
│ ├── providers/ # Tree and webview providers
│ ├── services/ # Credential and utility services
│ ├── utils/ # Helper functions
│ └── extension.ts # Extension entry point
├── resources/ # Icons and static assets
├── docs/ # Documentation
└── package.json # Extension manifest
- SFTP Browser - Browse and transfer files directly within VS Code
- Port Forwarding Management - GUI for managing local and remote port forwards
- Jump Host Support - Connect through bastion/jump servers
- Cloud Integration - Import hosts from AWS, Azure, GCP
- Session Recording - Record and replay terminal sessions
- Saved Command Snippets - Store and execute frequently used commands
ISC
Contributions are welcome. Please submit issues and pull requests via the project repository.
For issues, feature requests, or questions:
- Check the troubleshooting section above
- Review existing issues in the repository
- Submit new issues with detailed reproduction steps
TerminaX - Professional SSH management for Visual Studio Code