XPipe 1.5 has been released

Christopher Schnick | August 2, 2023

Passwords & Password managers

This update comes with a first attempt of supporting the retrieval of passwords from external sources. I went with the most straightforward approach here which is essentially delegating that task to the CLI of your password manager.

Essentially, you're able to specify a command template to retrieve your passwords. For example, by specifying the command template mypasswordmgr get $KEY, you can then choose the password when creating connections by just supplying the key argument. XPipe will call the command, read the password, and supply it from there.

There's also support to specify an arbitrary command or to dynamically prompt the password on each login.

SSH Configs

In 1.5, you're also now able to automatically import all hosts stored in your ssh config files. It is also then possible to refresh and update these detected connections at any time in case you make external changes to your config files.

Fish

This update brings support for fish as another possible shell type.

CLI

This update lays the foundation for future advancements in the command-line interface of XPipe. To start off, it comes with a few new commands to read and write files on remote systems directly from your terminal.

The workflow is designed as follows:

  • You can list all available connections and their ids to use with xpipe list
  • Using the command xpipe launch <id>, you are able to log into a remote shell connection in your existing terminal session
  • Using the command xpipe drain <id> <remote file path>, you are able to forward the file contents to the stdout
  • Using the command xpipe sink <id> <remote file path>, you are able to forward content from your stdin to the remote file

The id system is flexible, allowing you to only specify as much of the id as is necessary.

An easy example would be the following: Assume that you have a Windows server with an id of ssh-windows and want to filter a file there, but you are missing grep. Then you can execute on your local machine: xpipe drain ssh-windows "C:\myfile.txt" | grep <filter> | xpipe sink ssh-windows "C:\myfile_filtered.txt".

The XPipe CLI should be put automatically in your path upon installation, you can test that with xpipe --help. Otherwise, you will find it in <xpipe dir>/cli/bin/xpipe.

Misc

  • Add support for cywgin and msys2
  • Separate staging and production storage directories
  • For every system, XPipe will now also display the appropriate OS/distro logo (if recognized)
  • Rework SSH key-based authentication to properly interact with agents, now also including pageant
  • Add ability to test out terminals and editors directly in the settings menu
  • Implement a new internal API to better assemble complex commands
  • Rework os detection logic for passthrough environments like Cygwin and MSYS2
  • Fix desktop directory not being determined correctly on Windows when it was moved from the default location
  • Fix various checks in file browser not being applied properly and leading to wrong error messages
  • Add alternative ways of resolving path in case realpath was not available
  • Rework threading in navigation bar in browser to improve responsiveness
  • Recheck if prepared update is still the latest one prior to installing it
  • Properly use shell script file extension for external editor when creating shell environments
  • Built-in documentation popups now honour the dark mode setting
  • Properly detect applications such as editors and terminals when they are present in the path on Windows
  • Rework operation mode handling to properly honor the startup mode setting
  • Many other small miscellaneous fixes and improvements
  • Improve app detection on macOS

Try it for yourself

If you’re not already using XPipe as your daily driver, download the latest version and give these new features a try today!