XPipe 17 is a large-scale rework of many existing parts of XPipe. It focuses on fixing many longstanding issues and limitations, so that future updates can easily bring new integrations without having to deal with that baggage.

The documentation for all the new features is already available at http://docs.xpipe.io/

## Actions

There is now a new action system, which maps most UI actions to fixed schemas. This means that you can now automate almost any action that you can perform from the UI via desktop shortcuts, URLs, HTTP API calls, and more. You can configure action shortcuts with the new action configuration dialog and control how to call the action from it.

Furthermore, it is also now possible to control how all of these actions are run. For production systems, for example, you can configure that all actions that perform some kind of modification, like deleting a file or running a script, have to be confirmed first. This gives you an added layer of protection to double-check any operation before actually executing it.

![Actions screenshot](https://xpipe.io/assets/images/BlogPage/actions.png)

[Action Documentation](https://docs.xpipe.io/guide/actions)

## SSH

There is now proper support for jump servers. While gateways worked similar to jump servers, they were a different concept and did not work for cases where the ProxyJump functionality was required. You can now configure an SSH connection in its advanced settings to be treated as a jump server. This will result in XPipe using the ProxyJump syntax when this connection is used as a gateway for other SSH connections. This works for all kinds of connections, including config connections.

Furthermore, the SSH implementation for devices that don't provide a full shell, e.g. embedded devices and other limited systems, has been completely reworked. This fixes many issues where connections to such systems were not possible or failed. You can now designate an SSH connection as a limited system in its advanced settings, without the previous homelab plan requirement. This will then allow you to directly launch the connection, without any issues.

![SSH configuration screenshot](https://xpipe.io/assets/images/BlogPage/ssh-jump.png)

Services also now support opening them for limited/embedded systems with system interaction being disabled. Instead of locally tunneling the remote service to localhost, XPipe will try to open the host URL directly. This allows you to open the web interface of embedded devices for example, which previously was not possible.

Other changes:
- The option to open a connection in VSCode remote has been expanded to also support Cursor and Windsurf
- Active tunnels are now periodically refreshed to check if the underlying tunnel was closed
- Fix SSH agent variables being wrong on macOS when using homebrew ssh
- Fix automatic x11 display server forward to WSL not working on Windows
- Fix various gpg agent configuration issues

[SSH Documentation](https://docs.xpipe.io/guide/ssh)

## VNC

Up until now, the internal VNC implementation of XPipe did a somewhat acceptable job for most connections. However, it is not able to match dedicated VNC clients when it comes to more advanced features and authentication methods. There's simply not the development capacity to maintain all of these additional VNC features. For this reason, there is now support to also use an external VNC client with XPipe, just as with any other tool integrations.

![VNC settings screenshot](https://xpipe.io/assets/images/BlogPage/vnc-list.png)

[VNC Documentation](https://docs.xpipe.io/guide/vnc)

## macOS 26 Tahoe

XPipe adopts many of the new features of macOS 26 right away. if you are using the macOS beta, you have access to these right away.

The application window now uses the new Liquid Glass theming. The application icon has also been reworked with Liquid Glass in mind.

There's also support for the new apple containers framework, which has just been released. Searching for available connections on the local machine will make apple containers show up if you have installed the package.

![macOS Tahoe screenshot](https://xpipe.io/assets/images/BlogPage/tahoe.png)

## Windows ARM

There are now native Windows ARM builds. These releases are also available in choco and winget.

Note that you will have to uninstall any old x64 XPipe installation for the upgrade.

## File browser

The file browser has been improved in many areas:

- Operations which modify a single file, e.g. a file edit, will now automatically refresh the file list to show updated changes
- Add new file browser action to compute directory sizes
- The transfer speed in the file browser on Windows for multiple files has been improved
- Renaming a file now moves the caret to the end of the base file name
- The file browser now works much better in small windows sizes
- Fix terminal sometimes not being launched with the correct working directory of the current path
- Fix file deletion not showing errors when the operation failed in cmd
- Fix file renaming not working if previous rename operation was cancelled
- Fix file transfer kill button sometimes not working when transfer was frozen
- Fix file browser listing not working for older PowerShell systems

[File Browser Documentation](https://docs.xpipe.io/guide/file-browser)

## Connection hub

Proper functionality to organize a collection of hundreds of connections was always somewhat limited until now. There is now an additional index-based organization mechanism where you can assign and move indices of connections to have them listed at a certain place in relation to other connections. This can also be combined with the existing sorting methods like time and alphabetical sorting.

![Order settings screenshot](https://xpipe.io/assets/images/BlogPage/order-menu.png)

To move a set of children connections to the top-level, you can also use the new so-called breakout categories to create subviews of nested connections.

![Breakout category screenshot](https://xpipe.io/assets/images/BlogPage/category-breakout.png)

Furthermore, there are also more improvements in the connection hub:
- Renaming connection entries can now be done quickly from the context menu without having to open the configuration dialog
- You can now set connection configurations to be frozen, meaning that the connection entry can't be modified or deleted. This is helpful for templating and team vault setups
- When editing an incomplete connection configuration, the focus will automatically jump to the first incomplete/invalid value. This makes keyboard usage easier

[Connection Hub Documentation](https://docs.xpipe.io/guide/hub)

## Git vault

The git vault can now automatically resolve merge conflicts without restarts when multiple systems share the git repository. Any externally pushed commits are integrated into the connection hub instantly.

Furthermore, you can now specify a git username and password in the settings menu if your local system does not have a git client with configured credentials.

![Git auth screenshot](https://xpipe.io/assets/images/BlogPage/sync-auth.png)

[Sync Documentation](https://docs.xpipe.io/guide/sync)

## Serial

The serial connection support is no longer be considered experimental. It has been reworked, and the following issues have been fixed:
- Fix serial configuration parameter names being cut off in the dialog
- Connections to serial devices requiring root access are now automatically elevated

![Git auth screenshot](https://xpipe.io/assets/images/BlogPage/serial.png)

[Serial Documentation](https://docs.xpipe.io/guide/serial)

## HTTP API

The HTTP API has been improved in various areas. The action system is integrated in it, meaning that you can call any action from the API. Furthermore, there are now more API endpoints for categories so that you have proper control over them as well. There is also now a way to encrypt and decrypt secrets via the API, allowing you to create connections with integrated secrets with it as well.

[API Documentation](https://docs.xpipe.io/api)

## Other

- Various performance improvements
- Password managers now support retrieving both username and password of an entry. For that, you can now create password manager identities that automatically provide the username and password
- You can now specify an alternative user for shell environments to switch to via sudo
- Add support for nushell
- Add support for xonsh
- Add support for LXTerminal, the default on Raspberry Pi OS
- Add support to open a WinSCP session for an SSH connection
- Teleport connections now support reusable identities
- Changes made to /etc/sudoers files are now automatically checked with visudo and reverted if necessary
- Terminal logging on Windows can now use a WSL terminal environment to improve logging quality
- Terminal logs now strip any terminal escape codes
- Add a new loading icon
- Add note on how to fix potential blurriness on Gnome Wayland systems with high display scaling
- You can now disable icon sources without having to remove them
- Terminal connections now enable truecolor mode if possible
- Add notification when a password is copied to the clipboard
- Add support for Ghostty on macOS
- There is now a subreddit at https://www.reddit.com/r/xpipe/
- Update kasm workspaces image to support 1.17
- Filter mullvad exit nodes from tailscale list

## Fixes

- Fix local to synced identity conversion not updating existing connections
- Fix local to synced identity conversion not automatically adding key file to git
- Fix local identities category being able to be synced
- Fix pwsh connections on Linux/macOS freezing on sudo elevation
- Fix sudo elevation not working on WSL if WSLInterop for executables was disabled
- Fix clipboard data of other formats, e.g. files, being cleared after expiration of a copied password
- Fix text color on hover having low contrast in some themes
- Fix freeze after waking up the local system from a long hibernation
- Fix application not starting up if some antivirus interfered with local socket connections
- Fix kubectl apply changes functionality for pods not working
- Fix custom workspaces not working on Linux
- Fix KeePassXC snap installations not being detected
