SSH Image Skill для Claude Code
AlexZeitler/claude-ssh-image-skillСкилл для Claude Code и локальный демон, позволяющие вставлять изображения из буфера обмена в сессию Claude Code на удалённом сервере через SSH-туннель. Поддерживает Linux (Wayland/X11) и macOS.
Установка
git clone https://github.com/AlexZeitler/claude-ssh-image-skill.gitREADME
claude-ssh-image-skill
Скилл для Claude Code и локальный демон, позволяющие вставлять изображения из буфера обмена в сессию Claude Code на удалённом сервере через SSH.
Claude Code не поддерживает вставку изображений по SSH нативно. Этот проект решает задачу подходом, аналогичным sshimg.nvim, но специально для Claude Code.
Как это работает
Локальная машина Удалённый сервер (SSH)
┌──────────────────────┐ ┌──────────────────────────┐
│ Буфер обмена (PNG) │ │ Claude Code │
│ │ │ │ │ │
│ ▼ │ │ ▼ │
│ ccimgd (Port 9998) │◄────────────────│ /paste-image Skill │
│ - wl-paste │ SSH Reverse │ - TCP-запрос к ccimgd │
│ - Возвращает base64 │ Tunnel │ - Получает base64-образ │
│ изображение │ (Port 9998) │ - Сохраняет во врем. │
│ │ │ файл → Claude видит │
└──────────────────────┘ │ изображение │
└──────────────────────────┘
- Скилл
/paste-imageзапускает клиентccimgна удалённом сервере, который отправляет TCP-запрос на127.0.0.1:9998(перенаправляется через SSH reverse tunnel на локальную машину) ccimgdчитает PNG-изображение из локального буфера обмена (wl-pasteна Wayland,xclipна X11,pngpasteна macOS)- Изображение возвращается в виде base64-encoded JSON
ccimgсохраняет его как временный PNG-файл и выводит путь- Скилл использует инструмент
Readв Claude для отображения изображения
Требования
- Локальная машина (Linux):
wl-paste(Wayland, входит вwl-clipboard) илиxclip(X11) - Локальная машина (macOS):
pngpaste(brew install pngpaste) - Удалённый сервер: Claude Code
- Сборка из исходников: Go
Сборка
Сборка обоих бинарных файлов (демон + клиент):
./build.sh
Собирает статически слинкованные бинарники для всех поддерживаемых платформ:
daemon/ccimgd-linux-amd64,daemon/ccimgd-darwin-amd64,daemon/ccimgd-darwin-arm64client/ccimg-linux-amd64,client/ccimg-darwin-amd64,client/ccimg-darwin-arm64
Установка
Локальная машина (Linux)
cp daemon/ccimgd-linux-amd64 ~/.local/bin/ccimgd
cp daemon/ccimgd.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now ccimgdЛокальная машина (macOS)
cp daemon/ccimgd-darwin-arm64 /usr/local/bin/ccimgd # или ccimgd-darwin-amd64 для Intel
cp daemon/com.ccimgd.plist ~/Library/LaunchAgents/
launchctl load ~/Library/LaunchAgents/com.ccimgd.plistУдалённый сервер
Скопируйте клиентский бинарник и скилл на удалённый сервер:
scp client/ccimg-linux-amd64 your-server:~/.local/bin/ccimg
scp skill/paste-image.md your-server:~/.claude/commands/paste-image.mdЧтобы избежать запросов разрешений при каждом вызове, добавьте в ~/.claude/settings.json:
{
"permissions": {
"allow": [
"Bash(ccimg)"
]
}
}SSH-подключение
Подключитесь с reverse tunnel:
ssh -R 9998:localhost:9998 your-server
Или добавьте в ~/.ssh/config:
Host your-server
RemoteForward 9998 localhost:9998
Использование
В Claude Code на удалённом сервере скопируйте изображение в буфер обмена на локальной машине и выполните:
/paste-image
Сравнение с sshimg.nvim
| Аспект | sshimg.nvim | claude-ssh-image-skill |
|---|---|---|
| Клиент | Плагин Neovim (Lua) | Скилл Claude Code |
| Демон | imgd (Port 9999) | ccimgd (Port 9998) |
| Передача изображения | Демон → scp → сервер | Демон → base64 в TCP-ответе → клиент сохраняет |
| Параметры запроса | host + path | Ничего (пустой объект) |
| Совместная работа | Port 9999 | Port 9998 — оба могут работать одновременно |
Лицензия
MIT