@leokon3/pi-image-paste
v0.1.1
Published
Windows image picker for pi running in WSL or Windows
Readme
Pi Image Paste
English | 简体中文
一个 pi 扩展,提供 /image-paste 命令,让 pi 运行在 WSL 或虚拟机中时也能把图片交给模型。
开发背景
pi 运行在 WSL 或虚拟机里时,剪贴板和截图都在 Windows 宿主机上,而 pi 跑在 Linux 一侧。pi 内置的图片粘贴(Ctrl+V)和拖拽只能到达终端,进不到虚拟机的文件系统,所以没办法直接把图片粘贴进会话。每次都手动通过 /mnt/c 或共享目录复制文件,既慢又打断思路。
这个扩展把两侧连了起来:调用原生 Windows 文件对话框,把你选中的图片复制到虚拟机内部的私有临时目录,再把这些路径插入 pi 编辑器。之后模型就能像读取任何普通文件一样,用 read 工具查看它们。
安装
pi install npm:@leokon3/pi-image-paste然后重启 pi,或在已有会话中执行 /reload。
使用
- 在 pi 交互会话中执行
/image-paste。 - 在 Windows 文件对话框中选择一张或多张图片。
- 选中的图片会被复制到私有临时目录,路径插入编辑器。
- 按需补充说明,然后回车。模型会用
read工具查看这些图片。
也可以直接把说明写在命令后面,它会在对话框打开前先填入编辑器:
/image-paste 对比这两张截图,告诉我有什么变化取消对话框则不会向编辑器添加任何内容。如果当前模型不支持图片,pi 会给出提示。
行为与限制
- 支持 PNG、JPEG、WebP、GIF、BMP,单张最大 20 MiB。
- 每次最多 10 张图片;对话框 5 分钟后超时。
- 通过文件内容嗅探校验,而不是只看扩展名。
- 副本所在目录权限为
0700,每个文件为0600,因此后续的read调用、排队消息和会话恢复都能继续读取。 - 校验失败或取消选择时会清理干净,不留临时文件。
- 需要交互式 TUI 模式,且同一时间只能打开一个对话框。
- 不会改动 pi 已有的
/paste文本粘贴扩展。
环境要求
- 启用了 WSL interop 的 WSL 2,或在其中运行 pi 的 Windows 虚拟机
PATH中可用的 Windows PowerShell(powershell.exe)- 能显示 Windows Forms 对话框的 Windows 桌面会话
原生 Windows 上的 pi 同样可用,并会跳过路径转换步骤。不支持 WSL 之外的 Linux 和 macOS。
本地开发
git clone https://github.com/LeoKon3/pi-image-paste.git
cd pi-image-paste
pi -e ./index.ts # 加载本地代码
npm test # 运行测试许可证
MIT © leokon3
