Skip to content

Version 0.9.0#164

Merged
blacknon merged 40 commits intomasterfrom
develop_0.9.0
Apr 12, 2026
Merged

Version 0.9.0#164
blacknon merged 40 commits intomasterfrom
develop_0.9.0

Conversation

@blacknon
Copy link
Copy Markdown
Owner

v0.9.0

lssh-suite 0.9.0 is a substantial update that expands the project from a TUI-first SSH client into a broader multi-command SSH operations suite. This release adds new tools for diff, mount, and pipe-oriented workflows, improves configuration compatibility with OpenSSH, and strengthens packaging, completion, and test coverage across the project.

Highlights

  • Added lsdiff: a synchronized TUI diff viewer for comparing remote files across multiple SSH hosts.

  • Added lsshfs: a single-host SSH mount command with OS-specific local mount backends.

    • Linux uses FUSE
    • macOS uses NFS
    • Windows is not supported in 0.9.0
  • Added lspipe: a persistent pipe-oriented runner that keeps a selected host set in the background and reuses it from local shell pipelines.

  • Added OpenSSH config import and --generate-lssh-conf support to help bootstrap lssh config from existing ~/.ssh/config.

  • Expanded conditional config matching for more context-aware host selection and overrides.

  • Improved installation, packaging, shell completions, and release layout for the full suite.

New commands

lsdiff

Compare the same remote path across multiple hosts, or compare explicit @host:/path targets in a synchronized multi-pane TUI.

lsshfs

Mount one remote directory from one selected host using the same inventory and host-selection flow as lssh. In 0.9.0, supported client platforms are:

  • Linux: FUSE
  • macOS: NFS
  • Windows: unsupported

lspipe

Create a reusable background session for a chosen host set, then execute commands or bridge local workflows through pipes/FIFOs.

Configuration improvements

  • Added generation of minimal lssh config from OpenSSH host entries.
  • Added fallback flow when an lssh config file does not exist.
  • Improved conditional matching and config resolution behavior.
  • Kept parser/generator behavior aligned by using the vendored ssh_config fork internally.

Packaging and installation

This release provides both a full suite package and split packages:

  • lssh_*: full suite
  • lssh-core_*: lssh
  • lssh-transfer_*: transfer/diff/mount tools
  • lssh-monitor_*: lsmon
  • lssh-sysadmin_*: lsshell, lsmux, lspipe

Shell completions for bash, zsh, and fish are included.

Compatibility notes

  • lsshfs is supported on Linux and macOS in 0.9.0.
  • lsshfs is not supported on Windows in 0.9.0 and is excluded from Windows release packaging.

Quality and test coverage

This release also adds broader regression coverage for:

  • build/install layout
  • CLI version/help metadata
  • lspipe session and execution behavior
  • lsshfs runner/background/unmount behavior
  • config fallback and OpenSSH import behavior

Packaging and release artifact fixes

This release also fixes packaging gaps from earlier artifacts.

For example, the v0.8.0 darwin_arm64 package did not include lssync in bin/, even though lssync was part of the intended build/install command set for that release.

In v0.9.0, the release workflow and package layout were updated so the expected command set is bundled more consistently across platforms and package types. This also includes newer suite commands such as lsmux, lsdiff, lspipe, and lsshfs where supported, with platform-specific exclusions applied where necessary, such as lsshfs on Windows.

Thanks

Thanks to everyone testing the new workflows and especially the real-machine validation around lsshfs before release.

@blacknon blacknon merged commit a45744a into master Apr 12, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant