oooo o8o .o8
`888 `"' "888
.ooooo. 888 oooo oo.ooooo. 888oooo. .ooooo. .oooo. ooo. .oo. .oo.
d88' `"Y8 888 `888 888' `88b d88' `88b d88' `88b `P )88b `888P"Y88bP"Y88b
888 888 888 888 888 888 888 888ooo888 .oP"888 888 888 888
888 .o8 888 888 888 888 888 888 888 .o d8( 888 888 888 888
`Y8bod8P' o888o o888o 888bod8P' `Y8bod8P' `Y8bod8P' `Y888""8o o888o o888o o888o
888
o888o
WezTerm plugin for instant screenshot-to-SSH delivery (Windows → Linux)
Beam clipboard screenshots from Windows straight to your remote Linux servers. No file saving, no SCP commands, no context switching — just snap, beam, done.
⚠️ PREREQUISITE: SSH Key Authentication Requiredclipbeam will NOT work without passwordless SSH access configured. You must set up SSH key authentication before using this tool.
Run this once to configure:
ssh-copy-id user@hostname
┌─────────────┐ ┌─────────────┐ ┌──────────────────────┐
│ Screenshot │ ──► │ Paste in │ ──► │ Image on remote │
│ Win+Shift+S │ │ WezTerm │ │ ~/.clipbeam/paste.png│
└─────────────┘ │ Ctrl+Shift+I│ └──────────────────────┘
└─────────────┘
That's it. Your screenshot is now on your remote server, ready to use.
Prerequisite: Ensure passwordless SSH is configured (run once):
ssh-copy-id user@hostname- Download and extract the latest release
- Double-click
installer/install.bat - Enter your SSH destination (e.g.,
user@myserver) - Done!
The installer will:
- Check WezTerm and SSH are installed
- Install the clipbeam plugin
- Safely integrate with your existing WezTerm config (with backup)
- Configure everything automatically
installer\install.bat -SshHost "user@myserver" -SilentYou're SSH'd into a remote Linux server and need to share a screenshot. Here's what that usually looks like:
| Without clipbeam | With clipbeam |
|---|---|
| 1. Save screenshot to disk | 1. Screenshot (Win+Shift+S) |
| 2. Open file manager | 2. Press Ctrl+Shift+I |
| 3. Find the file | Done |
| 4. Open SCP client or drag to upload service | |
| 5. Transfer to server | |
| 6. Type the path manually |
clipbeam eliminates 5 steps. Perfect for:
- Remote development on Linux servers
- Debugging sessions requiring visual context
- Technical documentation and tutorials
- Incident response and server monitoring
- Technical support and bug reports
Bottom line: If you live in WezTerm and SSH into remote servers, clipbeam is built for you.
The installer sets sensible defaults:
| Setting | Default | Description |
|---|---|---|
| Remote path | ~/.clipbeam/paste.png |
Where images are saved on the server |
| Max dimension | 3840px | Auto-resize if larger (keeps transfer fast) |
| Keybinding | Ctrl+Shift+I |
Trigger the beam action |
| Copy file path | true |
Auto-type the path into terminal |
Edit your wezterm.lua to customize:
local clipbeam = require 'plugins.clipbeam'
local clipbeam_keybinding = clipbeam.setup({
host = "user@myserver", -- Required: SSH destination
remote_path = "~/images/debug.png", -- Custom save location
max_dimension = 1920, -- Smaller images for speed
copy_file_path = true, -- Auto-paste path
notify_on_success = false, -- Silent mode
})
if clipbeam_keybinding then
table.insert(config.keys, clipbeam_keybinding)
endConfigure different keybindings for different servers:
-- Production server
local prod_binding = clipbeam.setup({
host = "prod@production-server",
remote_path = "~/incident-images/screenshot.png",
notify_on_success = true,
})
table.insert(config.keys, {
key = "I", mods = "CTRL|SHIFT|ALT", -- Alt for production
action = prod_binding.action
})
-- Development server (default binding)
local dev_binding = clipbeam.setup({ host = "dev@dev-server" })
table.insert(config.keys, dev_binding)Local (Windows):
- Windows 10/11
- WezTerm terminal emulator
- SSH client (included with Windows 10/11 or Git for Windows)
Remote (Linux):
- Any Linux server with SSH access
base64utility (installed by default on Ubuntu/Debian/CentOS/Fedora)- Write permissions to
~/.clipbeam/(auto-created on first use)
- Capture — PowerShell extracts image from Windows clipboard as base64
- Resize — If image > 4K, resize preserving aspect ratio (faster transfer)
- Transfer — SSH pipes base64 data to remote server
- Decode — Remote server runs
base64 -dto create PNG file - Integrate — WezTerm types the file path into your active terminal pane
Zero dependencies on the remote side — just needs the standard base64 utility that's already on every Linux distribution.
Make sure WezTerm is installed: https://wezfurlong.org/wezterm/installation.html
Verify SSH access works without password:
ssh your-hostIf it prompts for password, set up SSH keys:
ssh-copy-id user@hostnameTake a screenshot first with Win+Shift+S before pressing Ctrl+Shift+I
Check the remote directory exists and you have write permissions:
ls -la ~/.clipbeam/Large screenshots are automatically resized to 3840px max dimension. For even faster transfers on slow connections, reduce this in config:
max_dimension = 1920 -- Full HD maxTo completely remove clipbeam:
- Double-click
installer/uninstall.bat - The uninstaller will:
- Remove clipbeam code from your WezTerm config
- Delete plugin files
- Offer to restore from backup
installer\uninstall.bat -Silent- Screenshot capture support
- Self-contained installer
- Support for copied image files (from Explorer)
- Custom keybinding configuration in installer
- GUI installer option
- Linux → Linux support (for local Linux users)
Found a bug or have a feature idea? Open an issue or submit a PR!
Development workflow:
- Clone this repository
- Edit
clipbeam.luafor plugin changes - Edit files in
installer/for installer changes - Test by running
installer/install.bat
See LICENSE file for details.
Built for developers who need seamless image sharing between Windows workstations and remote Linux development servers.
If clipbeam saves you time, please star this repo!