Skip to content

Releases: prime-radiant-inc/automatic-sshfs

v0.2.0 — reliable mounting + known_hosts + symlinks

Choose a tag to compare

@obra obra released this 25 Aug 16:46

asshfs v0.2.0

Early build. This software was developed by an AI agent and has not been audited. Use at your own risk.

What's new since v0.1.0

Reliability fixes (critical):

  • Dropped -o reconnect — was causing 100% CPU spin on long-lived mounts
  • Fixed launchd PATH — sshfs at /usr/local/bin wasn't in launchd's default PATH
  • Fixed sshfs process survival — Setsid detaches sshfs so it survives when reconcile exits
  • Switched from WatchPaths (doesn't fire on Unix sockets) to KeepAlive + watch daemon that polls every 15s
  • Resolved sshfs to absolute path in mount command as belt-and-suspenders

Features:

  • known_hosts enumeration — hosts you ssh to without explicit config entries are now detected and mounted
  • Symlinks for shared sockets — when multiple hostnames resolve to the same control socket, the config host gets the real mount and aliases get symlinks
  • Prereq check — install checks for FUSE-T and sshfs, prints correct install commands if missing
  • Automatic SSH config — install writes ~/.ssh/asshfs.conf and adds Include to ~/.ssh/config (no manual editing)

Install

brew install macos-fuse-t/homebrew-cask/fuse-t
brew install macos-fuse-t/homebrew-cask/fuse-t-sshfs
go install github.com/prime-radiant-inc/automatic-sshfs/cmd/asshfs@latest
asshfs install

License

MIT

v0.1.0 — early build

Choose a tag to compare

@obra obra released this 23 Aug 18:38

asshfs v0.1.0

Automatically mount remote filesystems over SSH on macOS. When you ssh to a host, its filesystem appears at ~/sshfs/<host>/. When the last session closes, the mount disappears.

Early build. This software was developed by an AI agent and has not been audited. Use at your own risk.

Features

  • Automatic mounting via OpenSSH ControlMaster + launchd WatchPaths
  • Zero config editingasshfs install writes ~/.ssh/asshfs.conf and adds an Include directive to ~/.ssh/config automatically
  • Ref-count per host — mount once, share across concurrent sessions, unmount on last disconnect
  • Self-healing — reconcile is idempotent; crashes or missed events are corrected on the next trigger
  • ssh -G oracle — delegates all token expansion (including %C) to ssh itself

Install

brew install macos-fuse-t/homebrew-cask/fuse-t
brew install macos-fuse-t/homebrew-cask/fuse-t-sshfs
go install github.com/prime-radiant-inc/automatic-sshfs/cmd/asshfs@latest
asshfs install

Commands

Command Description
asshfs install Set up launchd agent, write SSH config, create directories
asshfs uninstall Remove the agent, unmount everything, clean up config
asshfs reconcile Run a mount/unmount cycle manually
asshfs list Show per-host status

Known limitations

  • No CanonicalizeHostname or Match exec resolution
  • Remote root (/) mounted to ~/sshfs/<host>/
  • SSHFS ControlPath passthrough depends on sshfs build (degrades gracefully)
  • No formal integration test suite (unit tests only)

License

MIT