Something went wrong. Try again.
quickly upload files to a remote server via rsync
Something went wrong. Try again.
Files
README.md
hop #
quick file upload to remote server via rsync.
requirements #
hop runs on macos and on wayland sessions with a wlroots compositor (sway, hyprland, labwc, niri).
| macos | wayland | |
|---|---|---|
| screenshot | screencapture (built in) |
grim, slurp |
| recording | screencapture (built in) |
wf-recorder |
| clipboard | built in | wl-clipboard |
| upload | rsync |
rsync |
| video conversion | ffmpeg |
ffmpeg |
captures are written to the macos screenshot location (~/Desktop by default),
or on wayland to $XDG_PICTURES_DIR, falling back to ~/Pictures/Screenshots.
installation #
bun install
bun run build
# move the binary to your path
install hop /usr/local/bin/
configuration #
on first run, hop will create a config file at ~/.config/hop/config.json:
{
"server": "user@domain.tld",
"remotePath": "/var/www/",
"baseUrl": "https://domain.tld"
}
edit this file with your server details.
usage #
hop - quick file upload to remote server via rsync
usage: hop [options] <file>
options:
-h, --help show this help message and exit
-v, --verbose enable verbose output
-k, --keep-filename keep original filename (don't hash)
-f, --filename <name> use custom filename
-s, --screenshot capture fullscreen and upload
-sr, --screenshot-region capture region/window and upload
-r, --record record screen (silent)
-ra, --record-audio record with microphone audio
with no file argument, hop uploads the clipboard contents.
output:
✓ uploaded file.png to https://domain.tld/hash.png
the url is also copied to your clipboard automatically.
features #
- sha256 hash-based filenames - content-addressable storage with 7-character hashes
- rsync upload with progress - visual spinner showing upload progress
- detailed error messages - human-readable rsync error codes (permission denied, connection failed, etc.)
- automatic clipboard copy - url copied to clipboard on both platforms
- verbose mode - debug rsync issues with
-vflag
·
Copy SHA
·
Copy SHA
- TypeScript 100%