1 poin oleh coderred 2026-04-25 | Belum ada komentar. | Bagikan ke WhatsApp

Halo.

Belakangan ini saya jadi sering terhubung ke server jarak jauh lewat SSH dan memakai alat terminal seperti Claude Code atau Codex, tetapi proses memasukkan gambar ternyata lebih merepotkan dari yang saya kira.

Di lokal, screenshot sudah ada di clipboard, tetapi dari sudut pandang server jarak jauh tidak ada cara untuk mengetahuinya, jadi setiap kali saya harus menyimpannya sebagai file, mengunggahnya dengan scp, lalu menempelkan kembali path-nya.

Karena itu merepotkan, saya membuat imgssh.

GitHub:
https://github.com/coderredlab/imgssh

Cara pakainya adalah terhubung dengan imgssh alih-alih ssh biasa.

imgssh user@host  

Dalam keadaan itu, saat ada gambar di clipboard lokal dan Anda menekan Ctrl+], gambar akan diunggah ke /tmp di remote lalu path file tersebut akan diketikkan ke sesi SSH saat ini.

Contohnya seperti ini.

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

Fitur ini saya buat untuk dipakai saat meneruskan path file gambar ke CLI seperti Claude Code atau Codex.

Awalnya saya juga mempertimbangkan pendekatan plugin per terminal, tetapi ada terminal seperti Ghostty yang tidak punya sistem plugin, dan menyesuaikannya satu per satu untuk tiap terminal juga kurang menarik, jadi akhirnya saya memilih pendekatan membungkus ssh itu sendiri.

Arah penting yang saya pegang adalah sebagai berikut.

  • Tidak ada global keyboard hooking
  • Tidak ada daemon background
  • Tidak ada reverse tunnel
  • Tidak ada apa pun yang perlu diinstal di server remote
  • Hanya bekerja di dalam sesi SSH yang dibuka dengan imgssh

Karena itu, meskipun Anda membuka banyak tab, setiap proses imgssh hanya menangani sesinya sendiri. Misalnya jika di satu tab Anda masuk dengan imgssh dev, dan di tab lain dengan imgssh prod, trigger yang ditekan di masing-masing tab hanya akan mengunggah ke server terkait.

Sebagai gantinya, nested SSH tidak dilacak. Jika Anda terhubung dengan imgssh dev lalu menjalankan ssh prod lagi di dalamnya, gambar tetap akan diunggah ke sisi dev. Ini memang sengaja dibatasi cakupannya.

Saat ini masih versi awal, jadi cakupannya sederhana.

  • Diuji di Linux
  • Menggunakan OpenSSH
  • Gambar clipboard PNG
  • Upload default ke /tmp
  • Penyisipan quoted path
  • Untuk upload memakai proses ssh terpisah dan OpenSSH ControlPath

Untuk macOS, backend pngpaste sudah saya masukkan di kode, tetapi saya belum sempat mengujinya langsung.

Ada juga alat seperti clipssh atau PasteHop yang menyelesaikan masalah serupa, tetapi imgssh lebih dekat ke sisi “SSH wrapper” daripada one-shot uploader atau alat integrasi terminal.

Masih banyak bagian yang perlu dirapikan. Terutama penanganan argumen SSH, trigger key per terminal, dan UX di lingkungan seperti tmux/nvim masih perlu lebih banyak pengujian.

Silakan dicoba, dan kalau ada kasus aneh atau cara yang lebih baik, saya akan senang menerima masukan.

Belum ada komentar.

Belum ada komentar.