imgssh - Pegar imágenes del portapapeles local dentro de SSH
(github.com/coderredlab)Hola.
Últimamente se ha vuelto más común conectarse por SSH a servidores remotos y usar herramientas de terminal como Claude Code o Codex, pero el proceso de meter imágenes resultaba más engorroso de lo que parecía.
En local ya tenía la captura de pantalla en el portapapeles, pero desde la perspectiva del servidor remoto no había forma de saberlo, así que cada vez había que guardarla como archivo, subirla con scp y volver a pegar la ruta.
Como eso era molesto, hice imgssh.
GitHub:
https://github.com/coderredlab/imgssh
Se usa conectándose con imgssh en lugar de ssh.
imgssh user@host
En ese estado, si hay una imagen en el portapapeles local y presionas Ctrl+], la imagen se sube al /tmp remoto y se escribe la ruta del archivo en la sesión SSH actual.
Por ejemplo, algo así.
'/tmp/imgssh-20260425-142744-a8f39c.png'
Es una función pensada para pasar la ruta de un archivo de imagen a CLIs como Claude Code o Codex.
Al principio también pensé en hacerlo con un sistema de plugins por terminal, pero hay terminales como Ghostty que no tienen sistema de plugins, y además ajustarlo por separado para cada terminal no me convencía, así que opté por envolver ssh directamente.
La dirección importante que quise mantener es esta.
- Sin hooks globales de teclado
- Sin daemon en segundo plano
- Sin túnel reverso
- Sin nada que instalar en el servidor remoto
- Solo funciona dentro de sesiones SSH abiertas con
imgssh
Así que, aunque abras varias pestañas, cada proceso de imgssh maneja solo su propia sesión. Por ejemplo, si en una pestaña entras con imgssh dev y en otra con imgssh prod, el disparador que presiones en cada una subirá la imagen únicamente a ese servidor.
En cambio, no rastrea SSH anidado. Si te conectas con imgssh dev y luego dentro de esa sesión ejecutas ssh prod, la imagen seguirá subiéndose a dev. Ese alcance se redujo a propósito.
Por ahora es una versión inicial, así que el alcance es simple.
- Probado en Linux
- Usa OpenSSH
- Imágenes PNG del portapapeles
- Subida por defecto a
/tmp - Inserción de ruta entre comillas
- Para la subida usa un proceso
sshseparado y OpenSSHControlPath
En macOS ya dejé implementado en el código el backend de pngpaste, pero todavía no he podido probarlo directamente.
Existen herramientas como clipssh o PasteHop que resuelven un problema parecido, pero imgssh se parece más a un “wrapper de ssh” que a un cargador one-shot o una herramienta de integración con terminal.
Todavía hay bastante por pulir. En especial, el manejo de argumentos de SSH, las teclas disparadoras según el terminal y la UX en entornos como tmux o nvim necesitan más pruebas.
Si lo prueban y encuentran casos raros o una mejor manera de hacerlo, agradeceré sus comentarios.
Aún no hay comentarios.