Repository navigation
Releases
v0.11.1
RDP xrdp Compatibility Fix
Fixed RDP connection failures to xrdp servers by disabling NLA (CredSSP) requirement.
What's Fixed
- xrdp Compatibility: RDP now connects successfully to xrdp servers (Linux RDP servers)
- Set enable_credssp: false in IronRDP connector config to use TLS-only mode
- Most xrdp installations don't support CredSSP and would fall back to standard RDP security (RC4), which IronRDP refuses by design
- Verified working against Ubuntu 22.04 xrdp 0.9.17 with \security_layer=tls\
What Works
- ✅ RDP connection establishment via TLS
- ✅ Domain authentication support
- ✅ Connection to both xrdp (Linux) and Windows RDP servers
- ✅ Negotiated resolution reporting
What's Coming (RDP Phase 2)
- Framebuffer rendering (display desktop image)
- Mouse and keyboard input forwarding
- Live screen updates via PDU processing loop
Files Changed
ust/src/api/rdp.rs\ - Disabled NLA/CredSSP for broad xrdp compatibility- \pubspec.yaml\ - Version bump to 0.11.1+13
- \README.md\ - Updated version number
- \RESUME.md\ - Documented xrdp fix
Full Changelog: v0.11.0...v0.11.1
v0.11.0
v0.11.0 - RDP Protocol Foundation 🚀
New Features
- RDP Protocol Support: Integrated IronRDP v0.17 for Remote Desktop Protocol connections
- Full RDP Handshake: Complete connection flow (TCP → TLS → CredSSP/NLA → RDP protocol)
- Domain Authentication: Added domain field support for Windows domain logins
- RDP Session Screen: New UI for RDP connections with connecting/connected/error states
Improvements
- Enhanced connection model with domain field
- Updated connection routing to support RDP protocol type
- Improved connection form validation
Technical Details
- Pure Rust RDP implementation (no C dependencies)
- Supports Network Level Authentication (NLA/CredSSP)
- TLS 1.2+ with configurable certificate verification
- Foundation for Phase 2: framebuffer rendering + input forwarding
Coming Next (Phase 2)
- Real-time framebuffer display
- Mouse input forwarding (click, move, scroll)
- Keyboard input forwarding with scancode mapping
- Connection reconnect handling
- Dynamic resize support
- Clipboard integration
Downloads
- Windows: \kremote-v0.11.0-windows-x64.zip\
- Linux: \KRemote-v0.11.0-linux-x64.tar.gz\
Installation
Extract and run the executable. No additional dependencies required.
v0.10.0 - SSH Done, moving to RDP
What's New in v0.10.0
Window Title Updates
- Home screen displays 'KRemote' in the window title
- Terminal screen displays 'KRemote - {connection_name}' based on the active tab
- Window title updates automatically when switching between tabs or closing tabs
Delete Confirmation Dialogs
- Confirmation dialogs now appear before deleting connections or folders
- Prevents accidental data loss
Installation
- Windows: Download
KRemote-v0.10.0-windows.zip, extract, and runkremote.exe - Linux: Download
KRemote-v0.10.0-linux-x64.tar.gz, extract, and run./kremote - No installation required (portable)
Previous Features
- Connection timeout configuration (v0.9.0)
- OS keyring integration for master password caching (v0.8.0)
- SSH key passphrase prompt (v0.7.0)
- Session tabs and reconnect (v0.6.0)
- Jump host tunneling (v0.5.0)
This is an early alpha - expect rough edges and breaking changes between releases.
Full Changelog: v0.9.0...v0.10.0
v0.9.0 - Connection Timeout Configuration
What's New in v0.9.0
Connection Timeout Configuration
- Added per-connection timeout setting (1-300 seconds, defaults to 30s)
- Configurable from the connection detail screen
- Applies to SSH connection establishment via
TcpStream::connect_timeout - Timeout preserved through connection clone/reconnect operations
How to Use
- Edit any connection
- Set the Timeout field (in seconds)
- Save and connect - if the server doesn't respond within the timeout period, the connection attempt will fail gracefully instead of hanging indefinitely
Installation
- Windows: Download
KRemote-v0.9.0-windows-x64.zip, extract, and runkremote.exe - Linux: Download
KRemote-v0.9.0-linux-x64.tar.gz, extract, and run./kremote - No installation required (portable)
Previous Features (v0.8.x)
- OS keyring integration for master password caching
- Lock Vault bugfixes (v0.8.1)
- SSH key passphrase prompt (v0.7.0)
- Session tabs and reconnect (v0.6.0)
- Jump host tunneling (v0.5.0)
This is an early alpha - expect rough edges and breaking changes between releases.
Full Changelog: v0.8.1...v0.9.0
v0.8.1 - Lock Vault & Remember Password Bugfixes
What's New in v0.8.1 (Bugfix Release)
This release fixes two related bugs in the OS keyring / "Remember master password" feature introduced in v0.8.0.
Bug 1: "Lock Vault" instantly logged you back in
If "Remember master password" was enabled, pressing the Lock Vault icon appeared to do nothing - the screen would flash and immediately return to the connection list. This happened because the vault screen always checked the keyring and auto-unlocked on load, with no way to distinguish "app just started" from "user just explicitly logged out."
Fix: Lock Vault now opens the unlock screen in a mode that skips the auto-unlock check, so locking actually locks.
Bug 2: Unchecking "Remember master password" didn't take effect right away
Unchecking the box only updated in-memory state. The actual keyring deletion was deferred until the next successful unlock/create submission. If you unchecked the box and closed the app without submitting, the stored password was never removed - so the app kept auto-logging in on the next launch, and you'd have to log in, uncheck it, and log out a second time before it actually stuck.
Fix: Unchecking the box now deletes the stored credential from the OS keyring (Windows Credential Manager / Linux Secret Service) immediately, no form submission required.
Installation
Download the appropriate build for your platform:
- Windows: Extract KRemote-v0.8.1-windows-x64.zip and run kremote.exe
No installation required - fully portable.
Full Changelog
- fix: Lock Vault no longer auto-unlocks again when Remember master password is enabled
- fix: Unchecking Remember master password immediately clears the stored OS keyring credential instead of waiting for the next form submission
- Bump version to 0.8.1
Full Diff: v0.8.0...v0.8.1
v0.8.0 - OS Keyring Integration
What's New in v0.8.0
OS Keyring Integration for Master Password Caching
KRemote can now optionally cache your master password in your operating system's native credential store, allowing automatic vault unlock on startup.
Features:
- Opt-in password caching - Check "Remember master password" on the vault screen to enable
- Cross-platform - Uses Windows Credential Manager on Windows, Secret Service on Linux
- Auto-unlock - Vault opens automatically on startup when password is cached
- Safe fallback - If auto-unlock fails (e.g., incorrect cached password), falls back to manual entry
- Easy to disable - Uncheck the box to clear the cached password from your system keyring
Security Note:
The cached password is stored in your OS-native credential store (DPAPI-encrypted on Windows). This is equivalent in risk to any "remember me" feature in browsers or apps. If an attacker has full access to your logged-in OS user account, they can retrieve stored credentials.
Technical Details:
- Implemented via the keyring crate (v2.3) wrapping platform-native APIs
- Service name: KRemote, username: master_password
- Plaintext master password is stored (not a derived key)
- Manual "Lock Vault" action does not clear the cached password (by design)
Installation
Download the appropriate build for your platform:
- Windows: Extract KRemote-v0.8.0-windows-x64.zip and run kremote.exe
No installation required - fully portable.
Full Changelog
- feat: OS keyring integration for master password caching
- Added keyring crate (v2.3) for cross-platform credential storage
- Implemented save/get/delete/check functions in vault.rs
- Added Remember master password checkbox on vault screen (opt-in)
- Auto-unlock on startup when password is cached in keyring
- Fallback to manual entry if auto-unlock fails
- Added unit test for keyring roundtrip (set/get/delete)
Full Diff: v0.7.0...v0.8.0
v0.7.0 - SSH Key Passphrase Support
What's New
SSH Key Passphrase Prompt
KRemote now supports encrypted SSH private keys with interactive passphrase prompts.
Features:
- Detects when an SSH private key requires a passphrase and prompts instead of failing
- Clean material dialog for passphrase entry (obscured input, show/hide toggle)
- Passphrase is passed transiently to the SSH layer, never persisted to the vault
- Works for both initial connection and reconnect scenarios
- Applies to both direct SSH connections and jump host tunnels
Technical:
- New \PassphraseDialog\ widget (\lib/widgets/passphrase_dialog.dart)
- \Connection\ model gained a transient \private_key_passphrase\ field, marked #[serde(skip)]\ so it's never written to the vault file
- Detection: attempt the connection first; if libssh2 returns an error whose message mentions 'passphrase', 'encrypted', or 'decrypt', prompt for a passphrase and retry
- Implemented in \home_screen.dart\ (Test Connection) and \ abbed_terminal_screen.dart\ (session connect/reconnect)
Known limitation: detection relies on matching substrings in libssh2's error text rather than inspecting the PEM header directly. This works reliably in practice but is a bit fragile compared to checking the key file for an \ENCRYPTED\ header before attempting to connect.
Why this matters: Most security-conscious users encrypt their private keys with a passphrase. Previously KRemote had no way to supply one, so encrypted keys simply couldn't be used.
Downloads
- Windows x64: KRemote-v0.7.0-windows-x64.zip
Installation
Extract the zip and run kremote.exe. Your existing vault and connections are preserved.
Full changelog: v0.6.0...v0.7.0
v0.6.0 - Session Tabs
What's New
Session Tabs
Multiple SSH terminals in one window with tabbed interface - the most requested feature is now live.
Features:
- Open multiple SSH sessions in tabs within a single window
- Add new connections via '+' button without closing the window
- Each tab maintains independent terminal state and SSH connection
- Visual status indicators: yellow (connecting), green (connected), red (error)
- Close individual tabs with 'X' button
- Automatic reconnect capability when connections drop
- Preserved terminal history when switching between tabs
Technical:
- TabBar + TabBarView architecture with AutomaticKeepAliveClientMixin
- Clean resource disposal per tab (SSH streams, connections, terminal state)
- Updated navigation from home screen to launch tabbed terminal
Downloads
- Windows x64: KRemote-v0.6.0-windows-x64.zip
- Linux: Build from source (requires Linux host - \lutter build linux --release)
Installation
Extract the zip and run \kremote.exe\ (Windows) or the binary from \�uild/linux/x64/release/bundle/\ (Linux).
Full changelog: v0.5.0...v0.6.0
v0.5.0 - Jump Host SSH Tunneling
What's New in v0.5.0
🚀 Jump Host SSH Tunneling
- Route SSH connections through bastion hosts - full TCP proxy tunneling via channel_direct_tcpip
- Select any SSH connection as a jump host when configuring another SSH connection
- Automatic transparent tunneling with local loopback proxy pattern
- Satisfies libssh2's AsRawSocket requirement on Windows while routing traffic through SSH channel
🔧 Technical Implementation
- Added jump_host_id field to Connection model
- Implemented bidirectional byte shuttling between TcpStream and ssh2::Channel
- Jump host selector in connection detail UI (filters to SSH-only, prevents self-selection)
- Connection clone preserves jump host configuration
📦 Downloads
- Windows x64: KRemote-v0.5.0-windows-x64.zip (portable, no installation required)
⚠️ Alpha Release
This is an early alpha build. Expect rough edges and breaking changes between releases.
Previous Features (v0.4.0 and earlier)
- Encrypted credential vault (Argon2id + AES-256-GCM)
- SSH interactive terminal with PTY support
- Connection organization with folders and tags
- Import/export functionality
- Cross-platform architecture (Flutter UI + Rust core)
v0.4.0
KRemote v0.4.0 - Advanced Organization Features
Added
- Tag assignment UI: Add/remove tags with chip-based interface in connection editor
- Folder assignment: Assign connections to folders via dropdown in connection editor
- Advanced filtering: Search by name/host/username/tags, filter by protocol and folder
- Folder tree view: Expand/collapse folder groups in home screen
- Connection cloning: Quickly duplicate existing connections
- Folder management dialog: Create and delete folders directly from home screen
- Import mRemoteNG XML: Migrate connections from mRemoteNG
- Export vault to JSON: Backup your connections
- Enhanced connection cards: Tag display chips and context menu (clone/delete)
- Pull-to-refresh on connection list
Fixed
- SSH terminal keyboard input: Removed outer GestureDetector wrapper that was blocking xterm's internal focus/gesture handling. All keys now work correctly (previously only Enter/Ctrl+C worked)
- SSH session deadlock: Non-blocking mode with retry logic for WouldBlock errors on read/write/resize
Downloads
- Windows: KRemote-v0.4.0-windows-x64.zip
- Linux: KRemote-v0.4.0-linux-x64.tar.gz