Releases: Termix-SSH/Termix
release-2.2.0
Added API keys, client tunnels, SSH tunnel session improvements, and major stability and performance fixes.
| Architecture | Windows | Linux | Mac | Android | iOS |
|---|---|---|---|---|---|
| x86-64 (64-bit) | EXE · MSI · Portable | AppImage · DEB · Portable | DMG | — | — |
| AArch64 (ARM64) | — | AppImage · DEB · Portable | DMG | APK (1.3.2) | IPA (1.3.2) |
| ARMv7 (32-bit) | — | AppImage · DEB · Portable | — | — | — |
| x86-32 (32-bit) | EXE · MSI · Portable | — | — | — | — |
| Universal | Chocolatey | Flatpak | DMG · App Store · Homebrew | — | — |
Update Log:
- API key management (create and manage API keys from admin settings)
- Client tunnel support (remote tunnels, bridge tunnels, and preset management)
- Folder tree view in the file manager with lazy-loading and animations
- SSH key passphrase prompt on use if none is saved
- Open file manager at the terminal's current working directory by clicking on the file manager icon on a terminal tab
- Read-only Docker container mode
- LOG_TIMESTAMP_FORMAT env var for 24h/ISO log timestamps
- OIDC_ALLOW_REGISTRATION env var to bypass allow_registration for OIDC users
- VNC token generation now supports an optional username parameter
- Improved lazy loading with loading spinners throughout the app
- Sessions preserved across restarts
- Upgraded runtime to Node 24
- Optimized frontend bundle splitting
Bug Fixes:
- SSH multi-factor auth with publickey + password now works correctly
- Browser crash when uploading large files (more than 100MB)
- WebSocket reconnect now reattaches to the existing SSH session instead of creating a new one
- Tab auto-closes on graceful SSH disconnect (exit/Ctrl+D)
- Editing a host folder no longer requires re-entering the password
- Reconnect overlay now shows when SSH server reboots mid-session
- Session no longer crashes when uploading to a permission-denied directory
- File manager reconnects automatically after disconnecting
- Stale frontend cache handling after upgrades
- Electron auth and cache handling after upgrades
- OIDC auth cookie readiness on startup
- Docker image platforms for Node 24
- Fetch password from API for Copy Password button
- Several security related patches
release-2.1.0
Added tmux integration, themes, and automation features with major security, stability, and bug fixes.
| Architecture | Windows | Linux | Mac | Android | iOS |
|---|---|---|---|---|---|
| x86-64 (64-bit) | EXE · MSI · Portable | AppImage · DEB · Portable | DMG | — | — |
| AArch64 (ARM64) | — | AppImage · DEB · Portable | DMG | APK (1.3.2) | IPA (1.3.2) |
| ARMv7 (32-bit) | — | AppImage · DEB · Portable | — | — | — |
| x86-32 (32-bit) | EXE · MSI · Portable | — | — | — | — |
| Universal | Chocolatey | Flatpak | DMG · App Store · Homebrew | — | — |
Update Log:
- Add reconnect button for disconnected SSH sessions
- Configurable log level in admin settings
- Inline OPKSSH provider selection in dialog
- Many new UI themes (Dracula, midnight espresso, etc.)
- Command history toggle in user profile
- Right click menu in terminal for copy/paste/open in file manager
- Tmux integration for terminals
- Snippet sharing with users/roles
- Export all hosts as JSON
- Wake on LAN support
- Port knocking for SSH connections
- Session timeout configuration in Admin Settings
- Add select all / deselect all buttons for snippet terminal selection
- Switch to adjacent tab when closing current tab
- Enhance WebSocket connection handling for embedded mode
- Implement SSH algo mapping and refactor cipher usage across SSH modules
- Enhance terminal theme preview and persistence
- Remove password requirement for database export/import
- Improved network handling for activity, metrics, and status (optimized fetching, less overall api requests and errors)
Bug Fixes:
- Reset TOTP sessions when its enabled
- OPKSSH proxy integration
- OPKSSH cert auth for ssh2
- Allow file:// origin in CORS middleware
- Desktop guac connection flow
- Restrict remaining postMessage targetOrigin from wildcard to origin
- Use carriage return for snippet execution for PowerShell support
- Missing stream error handling in Docker console
- Prevent file upload from crashing backend on permission denied
- Disable keyboard-interactive when host auth is set to None
- Await tunnel cleanup to prevent new connections from being killed
- Validate and fallback credentialId during JSON host bulk import
- Add clipboard fallback and toast feedback for Copy Password button
- Remove unneeded registration disabled toast on login page
- Desktop banner not showing for Electron app
- Prevent server status failure from blocking host list loading
- Add error toast for empty file download
- Persist OIDC JWT token to localStorage in Electron app
- Align OIDC login cookie maxAge with JWT expiration (24h)
- Validate containerId and timestamp params to prevent command injection
- Enable clipboard paste from host to RDP session
- Admin user list not reading OIDC and admin users status correctly
- Downgrade credential migration errors to warnings
- Default keyType to auto instead of blocking host update
- Remove plaintext credentials from internal host API responses
- Preserve original timestamps in SSH login stats
- Prevent long docker container names from overflowing card bounds
- Use cookie based auth for WebSocket instead of URL token
- Bind SSH sessions to userId and verify ownership on access
- Fallback to default layout when dashboard preferences lack cards
- Prevent file manager from showing stale directory contents
- Display file owner and group in file manager list view
- Remove sensitive data from log output
- Align cookie maxAge and JWT expiration to prevent early logout
- Skip metric collection for hosts with AuthType none or opkssh
- WebSocket reconnection and add connection lost overlay
- Add token to database export/import in Electron app
- Clipboard paste browser popup
- Isolate RDP keyboard input to active tab
- Revoke all sessions when password is changed/reset
- Prevent invalid SSH key from crashing stats polling loop
- Add collapse/expand all button for host manager folders
- Stats monitoring resolves SSH key from credential privateKey field
- Restrict postMessage targetOrigin to prevent JWT leakage
- Check connection state before fallback exec in file manager
- RDP audio output and dynamic session resize
- Sync snippet selected terminals count when tabs are closed
- Allow disabling password login when OIDC is configured via env vars
- Admin role toggle showing incorrect state after update
- Remove hardcoded version number from dashboard
- Pass JWT token via URL param for Electron/mobile OIDC callback
- Update Darwin platform identifier to OSX
- Shared private key with passphrase creating malformed error
- Many security related patches
- Massively shrunk docker image size
- Not null constraint error when trying to export database (made username optional in the case of VNC)
- DPI improperly being sent to remote desktop backend
- Guacamole keystoke sent to incorrect sessions
- Preserve remote file mode after SFTP write
- Admin page incorrectly showing admin status or failing to make users admin
- Windows client failing to connect to SSH servers after restart
- Snippets failing to reorder
- Admin page failing to load users
- Tightened docker desktop view layout so they shrink and scroll correctly
release-2.0.0
Added support for remote desktop protocols (RDP, VNC, and Telnet) with some bug fixes
| Architecture | Windows | Linux | Mac | Android | iOS |
|---|---|---|---|---|---|
| x86-64 (64-bit) | EXE · MSI · Portable | AppImage · DEB · Portable | DMG | — | — |
| AArch64 (ARM64) | — | AppImage · DEB · Portable | DMG | APK (1.3.2) | IPA (1.3.2) |
| ARMv7 (32-bit) | — | AppImage · DEB · Portable | — | — | — |
| x86-32 (32-bit) | EXE · MSI · Portable | — | — | — | — |
| Universal | Chocolatey | Flatpak | DMG · App Store · Homebrew | — | — |
Update Log:
- Added remote desktop support (RDP, VNC, and Telnet)
- Added remember me toggle for OIDC
- Improved OS detection for sessions
Bug Fixes:
- Flatpak invalid key
- Pasting the opening context menu
- Linux app not starting due to better-sqlite3 errors
- Issues with sharing hosts with users
- Global defaults not saving
release-1.11.2
Allowed electron app to run standalone, added persistent tabs/ssh sessions, global defaults for status checks, OIDC allow list, mass host editing, major bug fixes
| Architecture | Windows | Linux | Mac | Android | iOS |
|---|---|---|---|---|---|
| x86-64 (64-bit) | EXE · MSI · Portable | AppImage · DEB · Portable | DMG | — | — |
| AArch64 (ARM64) | — | AppImage · DEB · Portable | DMG | APK (1.3.1) | IPA (1.3.1) |
| ARMv7 (32-bit) | — | AppImage · DEB · Portable | — | — | — |
| x86-32 (32-bit) | EXE · MSI · Portable | — | — | — | — |
| Universal | Chocolatey | Flatpak | DMG · App Store · Homebrew | — | — |
Update Log:
- Allow electron desktop app to run standalone with a embedded backend
- Per-host SSH keepalive configuration
- SSH session persistence across browser refresh or device switch (mu)
- Global default for status check and metric intervals
- Bulk host settings editing
- Overwrite option for JSON imports
- OSC 52 clipboard support for tmux/SSH clipboard sync
- 5/6 panel split screen
- File manager sorting by name, date, and size
- OIDC user allow list for registration control
- Expanded environmental variables in file manager path bar
- Remember me toggle when logging in for TOTP
Bug Fixes:
- Improve IPv6 connection handling
- CTRL + C not copying selection
- Host updates silently failing
- Preserve reverse proxy X-Forwarded headers in Nginx
- Added Cache-Control no-store header to all API responses
- Unified proxy/jump host pipeline
- SQL field name mismatches
- Shared credentials failure for OIDC users
- Clear electron cookies on auth failure/logout
- OPKSSH 404 and browser issues
- Reduce excessive disk writes
- Resolved ESLint errors
- Add missing clipboard shortcuts for terminal/docker console
- Added web-socket pings to prevent proxy timeouts
- Status check ping causes kex_exchange_identification flood in SSH logs
- Bypass ls alias in file manager fallback
- Disabled font ligatures by default in terminal
- Forward Shift + Tab as backtab escape sequence
- Catch disconnected client error in listFiles
- Handle DEC private mode sequences in syntax highlighter
- SSH/SFTP channel pooling/reuse
- Allow OIDC users to export database without password
- Prevent restart loop when PUID/PGUID is set to 0
- Keep terminal tab open on conn failure
- OIDC redirect_uri resolving to localhost
- Lightweight wget for Docker health check
- Delete error on OIDC users
- Allow OIDC JIT user creation when registration is disabled
release-1.11.1
Updated OPKSSH support, web-mobile terminal, backend logging, host/credential management UI, with bug fixes for permissions, caching, and database issues.
| Architecture | Windows | Linux | Mac | Android | iOS |
|---|---|---|---|---|---|
| x86-64 (64-bit) | EXE · MSI · Portable | AppImage · DEB · Portable | DMG | — | — |
| AArch64 (ARM64) | — | AppImage · DEB · Portable | DMG | APK (1.3.0) | IPA (1.3.0) |
| ARMv7 (32-bit) | — | AppImage · DEB · Portable | — | — | — |
| x86-32 (32-bit) | EXE · MSI · Portable | — | — | — | — |
| Universal | Chocolatey | Flatpak | DMG · App Store · Homebrew | — | — |
Update Log:
- OPKSSH support
- Moved add credential and add host button into a different location
- SSH key validation
- Improved web-mobile Terminal to be more up to date
- Improved backend logging by adding more logging points
- Made the username in credentials optional so it can be changed when adding a host
- User Profile toggle for snippet confirmations
- Configurable base path for reverse proxy sub path deployment
- Copy deploy command for SSH keys without password auth
- Manage OIDC config via
.envvariables (overrides database) - Added modern DH group KEX algorithms
- Update translations to show FQDN is supported in IP address fields
- Added Ctrl+V/Cmd+V shortcut for clipboard paste
- Standardized icon
- HTTP proxy support for GitHub API requests
Bug Fixes:
- File manager disconnecting after a few navigations
- Docker permission error when running as non root
- Data loss from encrypted database format mismatch
- Disable browser caching for file manager API
- Removed custom macOS keyboard handling to fix issues with special characters
- Sorted file manager entries alphabetically with directories first
- Added timeout for SFTP readlink to prevent request hang
- Preserve all ssh_data fields in database export/import
- Dashboard cards taking up 100% width on smaller displays
- Changed Crowdin to use locale with underscore to preserve languages with multiple dialects
release-1.11.0
Customizable dashboard, homelab network graph, updated translations, Warpgate support and many QOL features, and fixed various bugs
| Architecture | Windows | Linux | Mac | Android | iOS |
|---|---|---|---|---|---|
| x86-64 (64-bit) | EXE · MSI · Portable | AppImage · DEB · Portable | DMG | — | — |
| AArch64 (ARM64) | — | AppImage · DEB · Portable | DMG | APK (1.2.0) | IPA (1.2.0) |
| ARMv7 (32-bit) | — | AppImage · DEB · Portable | — | — | — |
| x86-32 (32-bit) | EXE · MSI · Portable | — | — | — | — |
| Universal | Chocolatey | Flatpak | DMG · App Store · Homebrew | — | — |
Update Log:
- Handle enter button to confirm action on popups or to login
- Added firewall/port monitor widgets to server stats
- PWA support (submitted via PR, largely untested)
- Updated docs site UI and added API docs
- URL routes to open any connection in full-screen
- Ctrl + Alt key remapping for browser blocked shortcuts
- Migrated translations to use Crowdin (see docs for more)
- Same translation system (auto generated by Google Translate) but after auto-translated, users can go in and make changes similar to a Git PR
- Toggle command palette
- Close button to tab dropdown
- Customize sidebar buttons
- Toggle password reset feature in admin settings
- Sudo support for file manager
- TOTP/Password reset rate limiting
- Copy password button
- Quick connection system (ad-hoc)
- Reverse/local SSH tunnel toggle
- Dashboard overhaul
- Customize what dashboard cards appear
- Added network graph card (visualize homelab setup)
- Warpgate support
- Added connection log similar to Termius and made all connections more resilient in general
- Improved tunnels backend logging to be more verbose
Bug Fixes:
- Resolved vite build warnings for mixed static/dynamic imports
- Prevent log container names for overflowing the card
- Use SFTP readdir for listing to support non-Linux systems
- Added Docker container health check
- Owner marked as shared when host is shared to their own role
- Added shell creation timeout and improved error handling
- Set the line height to default to 1.0 (previously 1.2) to handle TUI apps better
- Fixed delete user SQL errors (deletes all related data)
- Nginx permission errors when non-root
- Skip existing hosts/credentials during JSON imports
- Invalid SSH key causing backend crash
- New line carriage not working in terminal
- Prevent owner permission loss when sharing host to own resolved
- SSH key passphrase not passed to Docker/Tunnels
- Optimized host manager for large host lists
- Added missing mimeTypes for image preview
- Prevent session reset when updating host properties
- Terminal https/proxy reconnection loop
release-1.10.0
Added docker management, RBAC support, many new languages, SOCKS5 support, light mode, and fixed many bugs
| Architecture | Windows | Linux | Mac | Android | iOS |
|---|---|---|---|---|---|
| x86-64 (64-bit) | EXE · MSI · Portable | AppImage · DEB · Portable | DMG | — | — |
| AArch64 (ARM64) | — | AppImage · DEB · Portable | DMG | APK (1.2.0) | IPA (1.2.0) |
| ARMv7 (32-bit) | — | AppImage · DEB · Portable | — | — | — |
| x86-32 (32-bit) | EXE · MSI · Portable | — | — | — | — |
| Universal | Chocolatey | Flatpak | DMG · App Store · Homebrew | — | — |
Update Log:
- Added docker management
- Start, stop, pause, remove containers
- View container stats
- Control container using docker exec terminal
- Disabled by default and completely option. It was not made to replace Portainer or Dockge but rather to simply manage your containers compared to creating them.
- RBAC support
- Create roles and share hosts across users/roles
- Added terminal highlighting (very early beta)
- SOCKS5 support
- Separated server stats and tunnel management
- Added notes field to host
- Sudo password auto-fill
- Auto trim host manger inputs
- Allow for betting sorting in the left sidebar
- Hide/show tags in the sidebar (adjustable in user profile)
- Improved terminal connection speed
- Improved admin settings usability by creating new user modal
- Able to create new user from admin page
- Added 20 new languages and migrated hardcoded text to the new system
- All languages are now generated in bulk using google translate
- Added light mode (toggleable in user profile)
- Made colors more consistent across entire UI
- Improved general code quality and code organization (no user impacts)
- Duplicated recent activity (in a row) is now truncated
- Added collapse snippet folders by default
- Added comment at the end of the public key when deployed
- Added search bar to snippets
- Made server stats only occur when the user has the server stats page open. This reduces the amount of spam on a server and also providers better performance in general.
- Server stats now also supports TOTP (but not none auth since that would be fundamentally impossible since it would have to ask for authentication every time it would poll)
- Turned server stats disk usage into a graph
- Added server stats, docker, and tunnels as recent activity
- Added host saving loader to the host manager and disabled edit button if missing form entry
Bug Fix:
- Fix PTY keepalive creating “^@” character
- Snippet running on enter key
- Base64 file manager decoding
- File manager jump host not working
- File manager terminal size not updating
- User/hosts unable to be deleted (sqlite constraint)
- Command autocomplete taking over tab (made disabled by default)
- Override credential username not saving
release-1.9.0
Added command history, revamped SSH tools UI, and includes many general QOL/bug fixes
After upgrading to this version, downgrading will result in an encryption error. Create backups as needed.
| Architecture | Windows | Linux | Mac | Android | iOS |
|---|---|---|---|---|---|
| x86-64 (64-bit) | EXE · MSI · Portable | AppImage · DEB · Portable | DMG | — | — |
| AArch64 (ARM64) | — | AppImage · DEB · Portable | DMG | APK (1.2.0) | IPA (1.2.0) |
| ARMv7 (32-bit) | — | AppImage · DEB · Portable | — | — | — |
| x86-32 (32-bit) | EXE · MSI · Portable | — | — | — | — |
| Universal | Chocolatey | Flatpak | DMG · App Store · Homebrew | — | — |
Update Log:
- Moved all SSH tools into a dedicated sidebar
- Added Command History feature inside the SSH tool sidebar to view/run previous commands more easily
- Use tab in a terminal to autofill command history based on what you're typing (can be disabled in User Profile)
- Revamped the split screen into the new SSH tool sidebar for more fine-grained control over Terminal location
- Allow terminals to be closed while split-screening
- Added command palette (double-tap left shift)
- View recent activity, hosts, and quick actions with a key bind
- Link OIDC account to a password account
- Jump host/bastion host support (chain multiple hosts)
- Toggle to override username on a credential-based host
- New SSH Login Statistics widget
- Added quick actions system
- Create custom buttons that execute an SSH snippet viewable from the server stats page
- Start a SSH connection or see the status on a host from the host manager
- Color-coded files/folders inside the file manager (can be disabled in User Profile)
- Visible ID for hosts/snippets/credentials inside the host manager
- Change folder icon/color
- Improved the login page and added a login animation while the hosts are initializing
- Improved support for Warpgate
- Delete all hosts in a folder
- Improved UI for the database tab of admin settings
- Customize file permissions in the file manager
- Copy file/folder path in file manager
- Compress/decompress zipped folders in the file manager
- Login attempt rate limiting (resets after reboot)
- Save file manager file sorting type to localStorage
- Limited max tab size
- Improved UI for deploying SSH credentials
- Improved form validation by automatically sending the user to the tab with an invalid form entry
- Added reordering and folder/customization system to snippets
Bug Fixes:
- Server stats reporting red status after adding a new host
- Docker pull unexpected EOF
- Users get logged out after the actual 7 days for web and a month for desktop/mobile instead of the previous accidental 6 hours
- Database encryption errors after updating
- Hosts not loading on some devices
- Electron displays a white flashing screen after logging in, then restarting
- Credential deploy error
- Quick actions in the homepage are not overwriting the current host manager tab
- Terminal display issues
- Accept header for OIDC callback request
- Electron localStorage not saving for right-click copy/paste
- Unable to delete hosts/users
- Metrics not taking up full space
- Mobile apps not displaying hosts until logging out
- Base 64 encoded hosts are not getting decoded
- Improved SSH timeouts
- Fixed JSON import system
- Fixed SSH credential deployment error
release-1.8.0
Added more terminal customization, new SSH tools, revamped server stats customization, and improved multi-platform support
Your desktop/mobile version will need to be updated to work with this version since many authentication systems were changed.
Update Log:
- Added 2 new languages: Russian and Brazilian Portuguese
- Improved SSH tools buttons:
- Added SSH snippets (reusable commands)
- Added many new terminal customization options:
- Theme
- Font (font, size, spacing, line height)
- Cursor style/blinking
- Scroll back buffer
- Bell style
- Fast scroll modifier
- SSH agent forwarding
- Backspace modifier
- Run startup snippets
- Auto set environment variables
- Auto run MOSH
- Improved tab bar to be similar to a web browser (movable and improved UI/UX)
- Added support for TOTP SSH hosts (only works on terminal/file manager and only on the website/desktop version)
- Added an option not to save the password (asks when connecting, does not save locally)
- Moved the delete account button to the ser profile
- Made the left sidebar resizable
- Replaced the server button on the sidebar with a hamburger button to be able to edit hosts and visit the file manager with fewer clicks
- Added OIDC/reverse proxy support for all desktop and mobile clients
- Completely revamped server stats
- Enable/disable status monitoring (green/red icon on the sidebar), along with changing the internal that it pings
- New server stat widgets (also configurable with enable/disable and intervals)
- CPU (now a chart)
- Memory (now a chart)
- Disk
- Network interfaces (list of all interfaces, their IPs, and their status)
- Uptime
- Processes
- System information (hostname, OS, and kernel version)
- Changed password reset to reset user data if unable to provide password
- Added session management system (log out specific devices/browsers)
- Made a regular website session last for 1 week before getting logged out
- Desktop and mobile clients last a month before getting logged out of date
- If you restart Termix, all sessions and session tokens are removed
- Added new SSH algorithms (kexs, server host keys, and ciphers)
- More desktop app platform install types/platforms:
- Windows (x64/ia32)
- Portable
- MSI Installer
- Chocolatey Package Manager (coming shortly)
- Linux (x64/ia32/arm7l)
- Portable
- AppImage
- Deb
- Flatpak (coming shortly)
- macOS (x64/ia32 on v12.0+)
- Apple App Store (coming shortly)
- DMG
- Homebrew (coming shortly)
- iOS/iPadOS (v15.1+)
- Apple App Store
- IPA
- Android (v7.0+)
- Google Play Store
- APK
- Windows (x64/ia32)
Bug Fixes:
- OIDC security leak
- Tab switching display issues
- Fixed mobile error handling
- Linux builds are not opening
release-1.7.3
Updated terminal font, fixed password reset issues, and added a German language option
Update Log:
- Replaced JetBrains Mono with CaskaydiaCove Mono
- Added option for German
- Made both sidebar states persist
Bug Fix:
- Fixed the issue where the built-in Termix alert system does not display
- Fixed credentials getting reset if you reset your password




