<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Iterm2 on 飘逝的风</title><link>https://gameapp.club/tags/iterm2/</link><description>Recent content in Iterm2 on 飘逝的风</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Sat, 18 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://gameapp.club/tags/iterm2/index.xml" rel="self" type="application/rss+xml"/><item><title>Code Agent 远程开发时，如何优雅地贴图？</title><link>https://gameapp.club/post/2026-04-18-coding-with-image/</link><pubDate>Sat, 18 Apr 2026 00:00:00 +0000</pubDate><guid>https://gameapp.club/post/2026-04-18-coding-with-image/</guid><description>&lt;img src="https://img.gameapp.club/images/2026/04/coding-with-image.png" alt="Featured image of post Code Agent 远程开发时，如何优雅地贴图？" />&lt;blockquote>
&lt;p>最近你在远程开发中使用 Code Agent（如 Codex、Claude Code、OpenCode）时，或许都会遇到这个尴尬场景：本地剪贴板里明明有一张截图，远程终端里的 Agent 却看不见。然后你得多走好几步，才能让 Agent 看到这张图片。本文提供一个更快捷的解决方案。&lt;/p>
&lt;/blockquote>
&lt;h2 id="背景">背景
&lt;/h2>&lt;p>现在用 Code Agent 写代码，虽然咱们有 Playwright / Agent Browser 等工具，但还是难免让它看 UI、看报错截图、看网页风格等。如果是在本机环境，这事还算简单：图片在本机，终端也在本机，Agent 能读到文件就行。但我日常又很依赖远程开发，代码、服务、依赖都在远程机器上，终端通过 SSH 连过去。于是问题来了：&lt;/p>
&lt;ol>
&lt;li>图片在 Mac 的剪贴板里；&lt;/li>
&lt;li>Code Agent 跑在远程服务器上；&lt;/li>
&lt;li>SSH 终端只能传字符，不能天然传一张剪贴板里的图片；&lt;/li>
&lt;li>我又不想每次手动保存图片、scp 上传、再复制远程路径。&lt;/li>
&lt;/ol>
&lt;p>看起来只是一个很小的工作流问题，但用多了挺烦人。看着 IDE 中一些临时的截图文件，似乎在提示我，这肯定不是优雅的解决方案。&lt;/p>
&lt;h2 id="我想要什么效果">我想要什么效果？
&lt;/h2>&lt;p>理想状态很简单：&lt;/p>
&lt;ol>
&lt;li>截图或者复制图片到本地剪贴板；&lt;/li>
&lt;li>在远程终端里按一个快捷键；&lt;/li>
&lt;li>图片自动上传到远程机器；&lt;/li>
&lt;li>终端里自动粘贴一个远程文件路径；&lt;/li>
&lt;li>我直接对 Agent 说：看这张图，然后继续干活。&lt;/li>
&lt;/ol>
&lt;p>简言之：在远程开发中使用 Claude Code / Codex / OpenCode 时，获得接近本地开发的贴图体验。&lt;/p>
&lt;h2 id="方案探索">方案探索
&lt;/h2>&lt;h3 id="方案一拖拽了事">方案一：拖拽了事
&lt;/h3>&lt;p>一开始我们都很朴素：先把截图保存成文件，然后再想办法把这个文件弄到远程机器上。如果正在用 VSCode/Cursor Remote-SSH，就直接把图片拖到远程项目目录里。这个动作不复杂，也足够直观。&lt;/p>
&lt;p>在 macOS 下，如果终端使用 iTerm2，而你又在 iTerm2 开启了 &lt;a class="link" href="https://iterm2.com/documentation-shell-integration.html#load-automatically" target="_blank" rel="noopener"
>shell integration&lt;/a>，它支持按住 &lt;code>Option&lt;/code> 把本地文件从 Finder 里拖到终端窗口，再上传到远程服务器。这个方案也能用，只是远程环境通常也要把 shell integration 配起来，才能让这条链路顺一点。&lt;/p>
&lt;p>这两种做法的共同点是：都得先把图片保存到本地，然后再从本地去选文件。它会有一个保存截图到文件的过程，还有一个从本地找到这个图片的一步，我觉得这个过程有点繁琐：我们想要直接将剪贴板里的图片一键进入远程 Agent 工作流。&lt;/p>
&lt;p>更烦的是，它很容易污染项目目录。比如为了给 Agent 看一张 UI 截图，随手拖进去一个 &lt;code>image.png&lt;/code>、&lt;code>screenshot 2026-04-18.png&lt;/code>，修完问题之后又忘了删。时间久了，项目里就多了一堆一次性的临时图片。你说它影响程序运行吧，也不一定；但每次 &lt;code>git status&lt;/code> 看到它们，心情就不太美丽。&lt;/p>
&lt;p>所以这个初始方案只适合低频场景。偶尔传一次没问题，天天这么干你最好确保自己没有洁癖，我很难忍受。虽然我取个名叫拖拽了事，然并不简单。&lt;/p>
&lt;h3 id="方案二vscodecursor--claudeboard">方案二：VSCode/Cursor + Claudeboard
&lt;/h3>&lt;p>后来我找到了 &lt;a class="link" href="https://github.com/dkodr/claudeboard" target="_blank" rel="noopener"
>Claudeboard&lt;/a> 这个插件，它的定位非常明确：在 VSCode Remote-SSH 场景下，把剪贴板图片上传到远程服务器，并生成 Claude Code 能访问的文件路径。&lt;/p>
&lt;p>&lt;img src="https://img.gameapp.club/images/2026/04/claudeboard.png"
loading="lazy"
alt="Claudeboard 插件截图"
>&lt;/p>
&lt;p>它的使用方式很直接：剪贴板里有图片后，在 VSCode/Cursor 中按 &lt;code>Ctrl + Alt + V&lt;/code>，插件就会上传图片并插入路径。对于 Claude Code 这种跑在远程机器上的 Agent 来说，这就把“本地剪贴板图片”变成了“远程可读文件路径”。&lt;/p>
&lt;p>这个方案其实相当不错，基本达到了我们理想状态，并且不需要额外配置。不过要注意，在 Cursor 中插件市场不能直接搜索到，但你可以从上面 GitHub 官方的 Release 页面下载 VSIX 插件再安装，亲测可用。&lt;/p>
&lt;p>如果你的主力开发环境就是 VSCode 或 Cursor，选它没毛病。并且如果你是在 Windows 上开发，那就只推荐这个方案。因为我下一套解决方案更 hack 一些，也仅在 macOS 下验证过。&lt;/p>
&lt;h3 id="方案三mac-自定义解决方案">方案三：Mac 自定义解决方案
&lt;/h3>&lt;p>上一个方案是借助插件，主要在 VSCode / Cursor 里工作。而如果你像我一样，有时顺手开了个终端就准备干活，这个时候 Claudeboard 就帮不上忙了。为了贴一张图切回 VSCode，感觉有点为了吃口醋包顿饺子。&lt;/p>
&lt;p>所以继续寻觅方案，然后找到这个脚本： &lt;a class="link" href="https://gist.githubusercontent.com/canghai118/0230a50ac2afa49897634b70febe805a/raw/4bf4266dc04b5a8df0aa7ba88f02bc908c6011f3/iterm_smart_paste.sh" target="_blank" rel="noopener"
>iterm_smart_paste.sh&lt;/a>，它可以实现一个快捷键，一键将剪贴板里的图片上传到远程机器，并粘贴一个远程文件路径。&lt;/p>
&lt;p>这个方案的核心流程是：&lt;/p>
&lt;ol>
&lt;li>用 &lt;code>pngpaste&lt;/code> 从 macOS 剪贴板里取出图片；&lt;/li>
&lt;li>保存成本地临时文件；&lt;/li>
&lt;li>通过当前 SSH 会话的信息，把图片传到远程机器；&lt;/li>
&lt;li>在终端里粘贴远程图片路径；&lt;/li>
&lt;li>Code Agent 读取这个路径下的图片。&lt;/li>
&lt;/ol>
&lt;p>这听起来有点绕，但所幸事情都它包了，配置好之后，体感就是：复制图片，按快捷键，路径出来了。还是简单介绍一下安装过程：&lt;/p>
&lt;h4 id="安装依赖">安装依赖
&lt;/h4>&lt;p>首先安装 &lt;code>pngpaste&lt;/code>：&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">brew install pngpaste
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>它的作用很单纯，就是从 macOS 剪贴板里把图片导出来。没有它的话，我们还得自己手动把截图存成文件，体验立刻回到解放前。&lt;/p>
&lt;h4 id="准备脚本">准备脚本
&lt;/h4>&lt;p>我把脚本放在了 &lt;code>~/bin/iterm_smart_paste.sh&lt;/code>：&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">vim ~/bin/iterm_smart_paste.sh
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>脚本参考&lt;a class="link" href="https://gist.githubusercontent.com/canghai118/0230a50ac2afa49897634b70febe805a/raw/4bf4266dc04b5a8df0aa7ba88f02bc908c6011f3/iterm_smart_paste.sh" target="_blank" rel="noopener"
>这里&lt;/a>。不过原版SSH 会话识别、上传稳定性这几块兼容性不太好，我顺手更新了个版本，可以从 &lt;a class="link" href="https://gist.github.com/kevin1sMe/c2b368b7803f6cdb768bc5507219a2f7" target="_blank" rel="noopener"
>这里&lt;/a> 取到。&lt;/p>
&lt;p>保存后给它执行权限：&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">chmod +x ~/bin/iterm_smart_paste.sh
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h4 id="绑定快捷键">绑定快捷键
&lt;/h4>&lt;p>接下来就是把这个脚本绑定到 iTerm2 的快捷键上。只要这几步：&lt;/p>
&lt;ol>
&lt;li>打开 &lt;code>Settings/Preferences &amp;gt; Profiles &amp;gt; Keys&lt;/code>；&lt;/li>
&lt;li>新增一个快捷键；&lt;/li>
&lt;li>Shortcut 选择你习惯的组合，比如 &lt;code>Cmd + Shift + V&lt;/code>；&lt;/li>
&lt;li>Action 选择 &lt;code>Run Coprocess&lt;/code>；&lt;/li>
&lt;li>参数填脚本路径：&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">/Users/你的用户名/bin/iterm_smart_paste.sh
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>如果你本来就在用 Alfred、Raycast 这类工具，也可以让它们来触发脚本。macOS 层面的热键工具会更灵活一些，但这里咱聊 iTerm2 的方案，就不给你引入其它工具了，内置的 &lt;code>Run Coprocess&lt;/code> 也已够用。&lt;/p>
&lt;h4 id="使用效果">使用效果
&lt;/h4>&lt;p>简单录屏了一下，可以看一眼效果，我还是满意的。&lt;/p>
&lt;p>&lt;img src="https://img.gameapp.club/images/2026/04/image-paste.gif"
loading="lazy"
alt="iTerm2 脚本使用效果"
>&lt;/p>
&lt;p>这个方案的话，如果长期使用，记得清理一下远程机器上的临时文件。这不用我提醒你吧：）&lt;/p>
&lt;h2 id="总结">总结
&lt;/h2>&lt;p>跨平台多端使用并且习惯 VSCode/Cursor 的开发者，可以考虑方案二，借助插件就可实现。&lt;/p>
&lt;p>如果是纯 macOS 用户，习惯 iTerm2 等终端开发，方案三也可以试试。&lt;/p>
&lt;h2 id="后记">后记
&lt;/h2>&lt;p>作为一个有点追求完美的人，我不能接受原始的截图搬运工身份。你要说搞这些能有多少效率提升嘛，那倒未必。但是这种小阻碍解决之后，每次按上快捷键，你了解背后发生了些什么，并且是你让美好在发生，感觉内心安定。或许这也是程序员所追求的一种掌控感？&lt;/p>
&lt;p>欢迎大家一起交流一下，你们在远程使用 Codex、Claude Code、OpenCode 时，是怎么处理图片输入的？&lt;/p>
&lt;p>最近不打算写太系统性的东西，补几篇文章把工具用得更顺起来。欢迎点赞和关注。&lt;/p>
&lt;blockquote>
&lt;p>我是个爱折腾技术的工程师，也乐于分享。欢迎点赞、关注、分享，更欢迎一起探讨技术问题，共同学习，共同进步。为了获得更及时的文章推送，欢迎关注我的公众号：爱折腾的风&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="https://img.gameapp.club/images/qrcode_weixin.jpg"
loading="lazy"
alt="扫码关注公众号"
>&lt;/p></description></item></channel></rss>