wormhole is a tiny shell tool that lets you mark a directory as a destination and then send or copy files to it from anywhere. It removes the need to remember or retype long paths and integrates smoothly with tmux for fast, terminal-based workflows.
- Open a wormhole in any directory and reuse it across shells
- Send files to the active wormhole from anywhere
- Copy mode to keep originals intact
- Force mode to overwrite existing files when needed
- Safezone support for safer transfers
- Configurable ID for opening multiple wormholes
- tmux integration for opening wormholes
The recommended way to install wormhole is through the tmux plugin manager (TPM). Make sure Go is installed.
Add the following to your .tmux.conf:
set -g @plugin 'waelmahrous/wormhole'Then press:
prefix + ITPM will automatically download the plugin, build the wormhole binary, and install completions.
go install github.com/waelmahrous/wormhole@latestMake sure your Go bin directory is in your PATH:
export PATH="$HOME/go/bin:$PATH"Add that line to your shell config (~/.zshrc, ~/.bashrc, etc.) to make it permanent.
Clone the repository and run:
make installThis builds the application and installs shell autocompletion.
cd ~/projects/myapp/build
wormhole open
wormhole send file1.txt assets/*.pngwormhole comes with the following default keybindings which you can alter:
set -g @wormhole_key "O" # open tree selector
set -g @wormhole_key_current "C-o" # choose current pane as destination
set -g @wormhole_debug "false" # show install logs
set -g @wormhole_key_jump "j" # Open new window at wormhole# Opens a tree selector. Pick a pane and a wormhole will open using that pane’s working directory.
prefix-O# Instantly opens a wormhole at the current pane’s working directory (no picker).
prefix-Ctrl-o