← All tools

muslewski/mossferry

Popularity 65 Updated Development & Build

The green ferry between your machines — remote tmux sessions over mosh, with an fzf picker 🟢⛴

githubauto-collected

Installation

A directly usable install command is not verified yet. Check the project documentation or releases.

mossferry

<p align="center" <a href="https://mossferry.muslewski.com"<img src="https://img.shields.io/badge/website-mossferry.muslewski.com-3dff9a?style=flat-square&labelColor=02060c" alt="Website"</a <a href="https://www.npmjs.com/package/mossferry"<img src="https://img.shields.io/npm/v/mossferry?style=flat-square" alt="npm"</a <a href="https://github.com/muslewski/mossferry/discussions"<img src="https://img.shields.io/badge/discussions-join-3dff9a?style=flat-square&labelColor=02060c" alt="Discussions"</a <img src="https://img.shields.io/badge/license-MIT-green?style=flat-square" alt="MIT" </p

mossferry opens a remote repository’s tmux session from your laptop in one command, over mosh or ssh, with an fzf picker.

You sit at one machine; the repo and its long-running panes live on another. You want to be inside that session in tmux, leave and come back, and survive a dropped network link without losing the work. Everyday command: ferry.

Site: mossferry.muslewski.com

           |>
         __|__               __
      __|_o_o_|__           / _|___ _ _ _ _ _  _
    _|___________|_        |  _/ -_) '_| '_| || |
   \   o   o   o   /       |_| \___|_| |_|  \_, |
 ~~~\_____________/~~~~~~~~~~~~~~~~~~~~~~~~ |__/ ~~

<p align="center"<img src="./assets/demo-picker.gif" width="720" alt="ferry picker demo"</p

---

Happy path

Two sides: laptop (where you type ferry) and host (where tmux and the repos live). Both need the package on PATH.

| Side | Package bins | External tools (from reading the code) | |------|--------------|----------------------------------------| | Laptop | ferry / mossferry | ssh; mosh when FERRYTRANSPORT=mosh (default — doctor always checks local mosh); optional local grok for FERRYWRAP | | Host | repo-session | tmux (all session logic); mosh-server when clients use mosh; fzf optional (numbered menu fallback); ss + /proc only for the servers face |

The fzf picker runs on the host inside the hop — a Mac laptop does not need local fzf or local tmux for normal ferry use. Install tmux on the laptop only if you run repo-session there (local host / single-machine setup).

1. Install (runnable anywhere)

npm install -g mossferry    # bins: ferry | mossferry | repo-session
# or clone the repo and run ./install.sh on that machine
ferry --help                # printed locally; no network

macOS laptop (Homebrew): package via npm as above, plus transport:

brew install mosh           # default FERRY_TRANSPORT=mosh; doctor FAILs without local mosh
# brew install tmux         # only if you also run repo-session on this Mac

Stock /bin/bash on macOS is 3.2 — fine for the client; see Troubleshooting → macOS client.

ferry --help ends with a version line like: