Every morning, developers who SSH into remote servers to run Claude Code or Codex face the same friction: take a screenshot on their local machine, save it as a file, scp it to the remote server, then paste the file path into the terminal. Three steps, every time, multiple times a day.

This week, a new open-source tool called imgssh landed on GitHub that collapses that workflow into a single keystroke. It uploads a local clipboard image directly into the remote SSH session and inserts the file path at the cursor position.

imgssh: An SSH Wrapper for Instant Image Uploads

imgssh is a drop-in wrapper for the standard `ssh` command. The usage is straightforward:

bash
imgssh user@host

Once connected, if the local clipboard contains an image, pressing `Ctrl+]` uploads it to the remote server's `/tmp` directory and inserts the path directly into the current SSH session:

'/tmp/imgssh-20260425-142744-a8f39c.png'

That path can be passed directly to CLI tools like Claude Code or Codex, which accept image file paths as arguments for multimodal recognition.

The developer designed imgssh around four constraints: no global keyboard hooks, no background daemon, no reverse tunnel, and no installation required on the remote server. The tool only operates within SSH sessions launched through imgssh itself.

Multiple terminal tabs work independently. For example, connecting with `imgssh dev` in one tab and `imgssh prod` in another means each tab's trigger uploads only to its respective server. However, nested SSH sessions are not tracked — if you connect via `imgssh dev` and then run `ssh prod` from within that session, the image still uploads to the dev server.

The initial release has a limited scope: tested on Linux with OpenSSH, supports PNG clipboard images, uploads to `/tmp` by default, and inserts quoted paths. Uploads use a separate SSH process with OpenSSH ControlPath. A `pngpaste` backend is included in the codebase for macOS, but it has not been tested yet.

How imgssh Differs From Existing Tools

Previous tools like clipssh and PasteHop tackled similar problems, but they were closer to one-shot uploaders or terminal-specific integrations. imgssh takes a different approach by wrapping SSH itself.

The developer initially considered building terminal-specific plugins. But terminals like Ghostty lack plugin systems, and maintaining separate integrations for each terminal was too much overhead. The SSH wrapper approach won out.

The key advantage is terminal-agnostic operation. As long as OpenSSH is available, imgssh works in any terminal — iTerm2, Kitty, Alacritty, Windows Terminal, you name it. The tradeoff is the lack of nested SSH tracking, which was a deliberate scope decision.

The developer acknowledges there is still work to do. SSH argument parsing, terminal-specific trigger keys, and the user experience inside tmux or Neovim all need more testing.

What This Means for Terminal AI Tool Users

The practical impact is a workflow reduction from three steps to one. Instead of saving a file, running scp, and pasting the path, a single `Ctrl+]` keystroke handles everything.

Terminal AI tools like Claude Code and Codex can accept image file paths as arguments. imgssh generates that path automatically, enabling a seamless flow: take a screenshot, press `Ctrl+]`, and feed the image directly to the AI tool.

The fact that no installation is required on the remote server lowers the barrier for team adoption. Anyone with SSH access to a server can use it immediately.

imgssh demonstrates a pattern worth watching: bridging local resources into remote sessions without modifying the server or running background processes. For developers living in the terminal, that pattern could extend beyond images to other local assets.