mirror of
https://github.com/sipeed/NanoKVM.git
synced 2026-09-11 00:22:56 -05:00
25 KiB
25 KiB
2.5.1 (2026-09-09)
Features
- Added device-level multi-user support with
adminanduserroles and a user management page under Settings, separating administrative areas (terminal, scripts, storage, network, updates, MCP, PicoClaw and Tailscale) from the video, keyboard, mouse, paste, wake-on-LAN and power controls every account keeps - Moved sessions to HttpOnly cookies with a per-user token version, so changing a password or disabling an account immediately ends that user's open web and WebSocket sessions
- Added support for a custom update server, so the application can be updated from your own mirror, with credentials in the URL, manifest validation and a settings page for configuring it
- Added SHA-256 verification of offline update packages before they are installed
- Added configurable mouse input regions for absolute mode, with automatic black-border detection, manual selection of the controllable area on screen, and original-resolution presets, so the pointer stays aligned when the target machine outputs a letterboxed or non-16:9 signal
- Added touch gestures to relative mouse mode, including tap, drag, long press, double-tap drag and two-finger scroll, so relative mode is now usable from a phone or tablet
- Added a
signalfield to/api/vm/hdmireporting whether an HDMI source is actually present, not just whether capture is enabled - Added a default root shell profile showing the user, host and working directory in the prompt over SSH and the Web terminal
Bug Fixes
- Fixed mouse coordinates being offset in Direct H.264 mode when the target machine pads the picture with black bars
- Fixed touch input in absolute mode, and stopped taps on the black letterbox area from being sent to the target machine
- Fixed the video area not fitting the window, by scaling H.264 and MJPEG playback to contain and letting the page handle touch instead of the browser
- Fixed WebRTC H.264 failures leaving a silent black screen; signaling, negotiation, ICE and playback failures now report what went wrong and offer a retry
- Fixed a slow WebRTC viewer stalling the shared H.264 source for everyone else, by dropping its buffered frames until the next key frame
- Fixed application updates running from a temporary directory that could be too small or shared with another update; online and offline updates are now staged in isolated persistent workspaces with archive, manifest and free-space checks, and the last rollback backup is kept when space runs short
- Fixed the update lock being released before the server finished restarting, which allowed a second update to start and be killed mid-install
- Fixed Web terminal sessions not loading the root profile, by starting them as login shells in
/root
Performance
- Routed Direct and WebRTC viewers through a single shared H.264 capture source instead of each reading the encoder separately
Localization
- Synchronized translations of other languages according to English
Chores
- Upgraded the web build tooling to Vite 8 and switched to Vite's native tsconfig path resolution
- Added a dev container for full-stack development
- Prefixed GitHub Release titles with
nanokvm - Added release asset verification with per-device package size limits to the packaging workflow
2.5.0 (2026-08-04)
Features
- Added an MCP service that lets trusted MCP clients capture screenshots and control the keyboard and mouse with an API key, including a settings page for enabling it and regenerating the key
- Added coordinated device control so MCP, PicoClaw and manual input hand ownership over to each other instead of writing HID input at the same time
- Added remote keyboard lock indicators that show the target machine's Num Lock, Caps Lock and Scroll Lock state
- Added an optional SHA-256 checksum and cancellation to remote image downloads
Bug Fixes
- Fixed the USB network gadget getting a random host-side MAC on every bind, which made the attached PC register a new network adapter after each reboot; both the device and host MAC are now derived from the chip UID (thanks to @BeaconCat)
- Fixed OLED sleep durations above 255 seconds being truncated, so the 5 min, 10 min, 30 min and 1 hour options now behave as selected
- Fixed the mounted image API returning an error in HID-Only mode
- Fixed image downloads and application updates interfering with each other when running at the same time
- Fixed Direct H.264 playback falling behind when the decoder queue backed up, by resynchronizing at the next key frame and preferring hardware decoding
- Added a warning when Direct and WebRTC H.264 stream modes are used at the same time
- Made the video input state shared between processes and read it without shell pipelines, so HDMI status stays consistent between
NanoKVM-Serverandkvm_system
Performance
- Reduced latency in 60 Hz mode with decode-driven flow control, GOP-aware bounded queues, and dedicated writer goroutines with write deadlines so a slow client no longer stalls the others
- Integrated zero-copy H.264 capture into the video pipeline instead of relying on a preload hook
- Stopped HDMI capture when no user is logged in or all viewers are idle, reducing power consumption
UI Improvements
- Tidied the image download dialog layout and truncated long file names in the upload box
Localization
- Synchronized translations of other languages according to English
Chores
- Split release automation into separate package, tag and release workflows, and produced identifiable build artifacts with checksums for pull requests
- Allowed overriding the builder image, installed
patchelfin the build environment, and fixed the exit codes ofsupport/sg2002/build - Fixed slow container builds caused by uid/gid mismatch and reused existing container users and groups
2.4.3 (2026-06-09)
Features
- Added LT6911D support
Bug Fixes
- Improved USB network adapter compatibility on Windows
2.4.2 (2026-05-20)
Features
- Added HDMI capture status detection with localized warning and error overlays on the desktop screen
Bug Fixes
- Fixed left-button touch cancellation and context menu cleanup for mouse input
- Improved the WebRTC loading indicator
- Added Wi-Fi password field validation
- Hardened Wake-on-LAN MAC handling by normalizing stored addresses, avoiding shell execution, handling missing history gracefully, and improving named MAC display
- Stabilized PicoClaw session switching by waiting for gateway release, refreshing runtime status before reconnecting, rendering structured thought messages, and preventing history row overflow
Performance
- Improved H.264 streaming client handling by reducing frame queue latency, using client snapshots for fanout, applying backend ICE server configuration, and cleaning up disconnected WebRTC clients more aggressively
UI Improvements
- Refreshed desktop menu ordering and community links, including replacing the Discussion link with Discord
Chores
- Removed the legacy H.264 stream package
- Updated PostCSS, refreshed the MSW worker, and added pnpm workspace build approvals
2.4.1 (2026-05-08)
Features
- Added DNS management to Network settings, including DHCP/manual modes, effective DNS display, network details, IPv4/IPv6 server validation, and persistent udhcpc hook support
- Added a configurable server
hostoption for binding NanoKVM to a specific listen address (thanks to @allmazz) - Added French keyboard layout support and language options (thanks to @ilyesAj)
Bug Fixes
- Hardened HID recovery and cleanup by adding non-blocking HID writes, bounded reopen retries, stale event draining, and release reports after write failures
- Fixed the
kvm_visionproject name and build output message in the SG2002 build script (thanks to @Voranto)
UI Improvements
- Moved TLS and Wi-Fi settings into the Network settings section
- Optimized the Settings scrollbar style
Localization
- Updated Korean translations (thanks to @kmw0410)
- Synchronized translations of other languages according to English
Security
- Upgraded vulnerable web dependencies
2.4.0 (2026-04-10)
Features
- Introduced PicoClaw support — an AI-powered remote desktop assistant for NanoKVM. PicoClaw seamlessly integrates a lightweight AI agent with NanoKVM's underlying hardware capabilities. Key highlights include:
- Zero-Agent Architecture: Operates entirely through HDMI video capture (vision) and USB HID emulation (keyboard/mouse). No SSH access, network connection to the host, or OS-level software installation is required.
- Natural Language Control: Features a built-in chat interface allowing users to issue complex instructions in plain text.
- Autonomous GUI Operation: The AI agent can autonomously observe the remote host's screen, understand UI elements, reason about the task, and execute operations mimicking human behavior.
- Installation Note: PicoClaw is not built into the NanoKVM device or firmware. Install it separately when needed.
Bug Fixes
- Added a default subnet mask for static IP configurations
- Fixed an issue where the IP address would occasionally not display
2.3.6 (2026-03-12)
Features
- Implemented AP password authentication for the WiFi configuration page
- Added Korean and Japanese virtual keyboard layouts (thanks to @klim4-bot)
- Enabled support for 640x480 resolution (thanks to @Voranto)
- Added encryption parameters for OLED distribution network
- Added custom logo function and logo generation tools
- Added update mechanism for tailscale startup script
Localization
- Updated Japanese translation (thanks to @tkmsst)
2.3.5 (2026-02-28)
Features
- Implemented login brute-force protection with lockout mechanism
Bug Fixes
- Improved Tailscale error handling in UI components and refined backend state mapping
Chores
- Updated server and web dependencies
2.3.4 (2026-01-26)
Features
- Introduced
Leader Keyfunctionality to bypass local browser shortcut interception
Bug Fixes
- Fixed an issue where the Right Shift key was not being recognized on Windows system
- Fixed a bug where the menu bar would fail to close correctly
Localization
- Updated Traditional Chinese translations (thanks to @j796160836)
- Updated Korean translations (thanks to @kmw0410)
2.3.3 (2026-01-16)
Features
- Added support for setting the display mode of the menu bar
Bug Fixes
- Fixed a keyboard issue where IME composition events were not handled correctly
- Resolved an issue where the
AltGrkey was not recognized on the Windows system - Fixed a bug where
Commandkey combinations were not fully released on the macOS system - Fixed input issues with the
IntlBackslashkey on the German virtual keyboard
Localization
- Updated Korean translations (thanks to @kmw0410)
Chores
- Bump react-router-dom from 6.27.0 to 6.30.3
- Updated eslint
2.3.2 (2026-01-08)
Features
- Added support for custom keyboard shortcuts
- Added support for mouse Forward and Back buttons (reboot required)
- Added support for touchscreen mouse operation
- The menu bar now supports auto-hide and drag
Bug Fixes
- Fixed an issue where the previous IP address was not released after configuring a static IP
Performance
- Refactored the keyboard to support simultaneous keystrokes and a wider range of international layouts (reboot required)
- Refactored the mouse to improve response latency
- Refactored the WebSocket module to transmit keyboard and mouse data using the standard HID format
2.3.1 (2025-12-26)
Features
- Added support for offline application updates (thanks to @Alexander-Ger-Reich)
- Implemented support for uploading ISO images (thanks to @Alexander-Ger-Reich)
- Extended clipboard compatibility to support Russian characters (thanks to @pekishev)
- Added configuration options for video scaling
- Added support for configuring mouse scroll wheel direction
Bug Fixes
- Resolved an issue where custom port may not be accessible
- Fixed a bug where Web Terminal and Serial Terminal may not disconnect when the page is closed
Security
- Enhanced validation logic on the Wi-Fi configuration page. Requests are now rejected when the device is not in AP mode to prevent unauthorized changes
Chore
- Added a Docker image environment to support building
libkvm.soandNanoKVM-Server(thanks to @lowtech-guy) - Optimized the Settings UI
Localization
- Updated Korean translation (thanks to @kmw0410)
- Updated Swedish translation (thanks to @acidflash)
- Updated Spanish translation (thanks to @Deses)
2.3.0 0e30a26 (2025-11-26)
Features
- Added an EDID editor in the terminal with a built-in 1080P EDID template
- Added German virtual keyboard and German clipboard support (thanks to @Alexander-Ger-Reich)
- Resetting the HID also resets the USB hardware
- Added support for deleting ISO images
Refactoring & Improvements
- Video (H.264 WebRTC): Refactored the module to significantly reduce video latency
- Video (H.264 Direct): Refactored to optimize data transmission and support data parsing even when the page is in the background
- Video (MJPEG): Refactored and ensure correct data length transmission
- Added locking before resetting USB to prevent HID deadlock (thanks to @scpcom)
- Optimized HID writing logic
- Made HDMI toggle state persist across reboots (thanks to @tpretz)
- Enhanced the paste feature with browser clipboard API integration (thanks to @patrickpilon)
- Set the inquiry string for the virtual storage device (thanks to @scpcom)
- Hostname now updates
/etc/hostssimultaneously and takes effect immediately (thanks to @scpcom) - Improved compatibility for static IP configuration on Windows
- Optimized the web page title update logic
- Added a confirmation dialog when uninstalling Tailscale
- Improved UI for Clipboard, Image Mounting, and settings pages
Bug Fixes
- Tailscale: Fixed an issue where Tailscale would turn the device into a router
- Tailscale: Fixed an issue where Tailscale would disable IPv6
- Tailscale: Added a swap memory option to prevent Tailscale Out-Of-Memory errors
- Tailscale: Fixed Tailscale accept-dns configuration (thanks to @lazydba247)
- Fixed an issue where certain modifier keys were not recognized
- Fixed vertical mouse drift when the page is zoomed in or out
Localization
- Update Korean translation (thanks to @xenix4845)
- Update Traditional Chinese translation (thanks to @protonchang)
- Add Brazilian Portuguese translation (thanks to @chiconws and @Luccas-LF)
- Add Swedish translation (thanks to @acidflash)
- Add Catalan translation (thanks to @Zagur)
- Add Turkish translation (thanks to @Keylem)
Security
- Implemented a delay after failed login attempts to mitigate brute-force attacks
- Upgraded dependencies to fix known security vulnerabilities
2.2.9 c77981c (2025-06-13)
- fix(security): resolve parameter injection in serial port terminal
2.2.8 01e28f1 (2025-05-22)
- feat: add AZERTY virtual keyboard Layout (thanks to @felix068)
- feat: add support for enabling/disabling HDMI output (PCIe version only) (thanks to @tpretz)
- feat: add support for custom mouse wheel speed
- fix: prevent direct H.264 stream buffer overflow and replay issues
- perf: improve keyboard paste performance (thanks to @ethanperrine)
- Localization
2.2.7 e18ec22 (2025-05-08)
- feat: add HTTPS support
- feat: support direct H.264 streaming over HTTP
- Localization
- update Russian translation (thanks to polyzium)
- update Dutch translation (thanks to LeonStraathof)
- update Ukrainian translation (thanks to click0)
- update German translation (thanks to 3limin4tor)
2.2.6 c83dc55 (2025-04-17)
- feat: add mouse jiggler to prevent system sleep
- feat: add support for swap memory
- feat: add support for customizing the device hostname
- feat: add support for customizing the web page title
- feat: add support for assigning custom names to Wake-on-LAN MAC addresses
- feat: add confirmation prompts for power operations
- feat: add logo to the login page (thanks to S33G)
- fix: fix possible privacy issues with MIC drivers. Repair Record
- fix: fix iptables rule that could interfere with SSH connections (thanks to scpcom)
- fix: fix the static IP gateway configuration might not apply correctly (thanks to xitation)
- perf: optimized OLED display handling and sleep logic
- perf: improve H.264 streaming reliability by adding a heartbeat mechanism
- perf: set the minimum screen size to 640x480
- perf: add display of both wired and wireless IPv4 addresses in the settings page
- perf: update the Thai language translations (thanks to ChokunPlayZ)
- chore: bump axios to 1.8.4
- chore: bump golang.org/x/net to v0.39.0
- chore: bump github.com/golang-jwt/jwt/v5 to to v5.2.2
2.2.5 3286cc2 (2025-03-26)
- fix: server crash caused by MJPEG frame detection error
- feat: add HID-Only mode
- feat: support preview updates
- perf: improve image reading performance by optimizing screen parameters
2.2.4 1bf986d (2025-03-21)
- fix: resolve USB initialization issue
- fix: correct abnormal updates in certain models
- perf: add version restrictions for production testing
2.2.3 6ef83cb (2025-03-21)
- feat: add support for setting H.264 GOP
- fix: resolve deadlock caused by HDMI resolution errors
- perf: merge H.264 SPS and PPS into I-frame
- perf: refactor MJPEG frame detection
- perf: added more configuration options to the serial port terminal (thanks to @mekaris)
- perf: improve the
update-nanokvm.pyscript (thanks to @reishoku) - perf: disable mDNS by default in new products
- perf: update log timestamp to millisecond precision
- chore: bump Go to 1.23
- chore: bump
golang.org/x/netto v0.37.0
2.2.2 58d5ab2 (2025-03-11)
- feat: add watchdog for NanoKVM-Server
- feat: add support for UE chip
- feat: support system reboot
- feat: support enable/disable mDNS
- fix: resolve UE chip cannot start server
- perf: refactor automatic resolution detection
- perf: add output prompt for unsupported resolutions
- perf: add lock to kvmv_read_img
- perf: configurable VENC automatic recycling feature
- perf: add maximum limit for vi
- perf: add tooltips to menu bar (thanks to @S33G)
- perf: menu bar is now draggable (thanks to @forumi0721)
- perf: image list support auto-refresh (thanks to @forumi0721)
- perf: update translations
2.2.1 b5e48a0 (2025-02-21)
- fix: mounted image were not being detected correctly
- perf: add support for CD-ROM mode when mounting image (thanks to @scpcom)
- perf: add a loading state during login
- perf: add changelog link in settings
- perf: update translation and cleanup the code (thanks to @ChokunPlayZ @Stoufiler @polyzium @Jonher937 @S33G)
2.2.0 0dbf8c0 (2025-02-17)
NanoKVM Image v1.4.0 has been released!
Please refer to the wiki for more details about the image and application.
- fix: improve password update notification logic (thanks to @li20034)
- perf: increase update wait time to 10s (from 6s)
- perf: update Korean translation (thanks to @forumi0721)
- perf: update Traditional Chinese translation (thanks to @protonchang)
- refactor: update
libkvm.soandlibkvm_mmf.solibraries
2.1.6 6eb4a4e (2025-02-14)
- feat: support downloading image from online URL (thanks to @Itxaka)
- feat: add keyboard shortcut
Ctrl+Alt+Del(thanks to @CaffeeLake) - fix: fix the CSRF issue
- perf: add an option to configure custom ICE servers (thanks to @VMFortress)
- perf: removed unnecessary modifications to DNS configuration
- perf: add an SSH enable/disable toggle in the web UI
- perf: add a Tailscale enable/disable toggle in the web UI
- perf: download Tailscale installation package from the official source
- perf: automatic enable/disable GOMEMLIMIT on tailscale start/stop
- perf: add JWT configuration
- secretKey: customize secret key. If empty, generated a random 64-byte secret key by default
- refreshTokenDuration: customize token expiration time
- revokeTokensOnLogout: invalidate all JWT tokens on logout
- perf: implement secure password storage using bcrypt hashing
- perf: implement integrity checks for online updates
- refactor: refactor HDMI module and remove the dependency
libmaixcam_lib.so - refactor: web terminal use pty instead of SSH
- refactor: move Tailscale APIs from the
networkmodule to theextensionsmodule
2.1.5 85f6447 (2025-01-14)
- feat: add HDMI reset for NanoKVM-PCIe
- fix: remove unnecessary lock acquisition during HID reset
- refactor: refactor Tailscale
2.1.4 d7ca7c4 (2025-01-10)
- feat: support configuring OLED sleep settings
- feat: support setting the
GOMEMLIMITenvironment variable - fix: fix Wi-Fi configuration
- perf: password changes now update both the web user and the system root user
- perf: add MAC address verification for Wake-on-LAN
- refactor: a lot update to web UI
- refactor: refactor Tailscale
2.1.3 26078fe (2024-12-27)
- feat: add API to retrieve Wi-Fi information
- fix: fix keyboard modifier keys
- fix: update keyboard and mouse HID codes
- fix: update hardware version information
2.1.2 5a39562 (2024-12-04)
- feat: add hardware version to configuration
- feat: add Wi-Fi configuration support for NanoKVM-PCIe
- perf: update web UI
- chore: add dependency libraries
2.1.1 74a303b (2024-11-06)
- feat: support h264