Skip to content

Experimental native SSH support via swift-nio-ssh#753

Open
EkkoG wants to merge 9 commits into
muxy-app:mainfrom
EkkoG:native-ssh
Open

Experimental native SSH support via swift-nio-ssh#753
EkkoG wants to merge 9 commits into
muxy-app:mainfrom
EkkoG:native-ssh

Conversation

@EkkoG

@EkkoG EkkoG commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Summary

Experimental change replacing ssh-cli with swift-nio-ssh for password login support and more controllable SSH connection management.

Changes

  • replace ssh-cli with swift-nio-ssh
  • support password-based SSH login
  • move SSH session lifecycle into app-managed code

Testing

  • scripts/checks.sh passes
  • Tested manually on macOS

Screenshots

@saeedvaziry

Copy link
Copy Markdown
Member

@EkkoG can you explain a bit the vision using swift-nio-ssh?

@EkkoG

EkkoG commented Jun 14, 2026

Copy link
Copy Markdown
Contributor Author

The main goal is to move SSH from an external ssh process into Muxy itself.

Compared with the CLI-based approach, this gives us direct control over authentication, session lifecycle, and pane
integration, and it also makes password-based login a first-class path.

It also gives us a better foundation for follow-up flows that are awkward with an external ssh process, such as reusing the
authenticated session context for remote bootstrap/setup steps and building a more consistent password experience around
things like sudo.

That said, this PR is intentionally experimental. It does not assume that swift-nio-ssh is automatically better than the
CLI path in every respect. The tradeoff is that we now own more of the SSH surface ourselves, especially around key handling,
shell compatibility, and recovery.

So the short-term goal is to validate whether this approach is a better fit for Muxy’s remote-project workflow.

@saeedvaziry

Copy link
Copy Markdown
Member

@EkkoG For this experimental feature we can ship ssh cli and swift-nio-ssh at the same time and default to ssh cli in the settings

@EkkoG

EkkoG commented Jun 14, 2026

Copy link
Copy Markdown
Contributor Author

@saeedvaziry Sounds good to me. This approach is definitely better.

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.

2 participants