@leokon3/pi-image-paste

extensionmaintained

Windows image picker for pi running in WSL or Windows

by — · v0.1.1 · published 3w ago

$ pi install npm:@leokon3/pi-image-paste
downloads/mo
298
stars
0
last push
3w ago
open issues
0

Signals

license: MITtestspi manifest: missinginstall size: —deps: 0peer deps: 0

Download trend

No downloads in the last 12 weeks.

README

Pi Image Paste

npm

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。

使用

  1. 在 pi 交互会话中执行 /image-paste。
  2. 在 Windows 文件对话框中选择一张或多张图片。
  3. 选中的图片会被复制到私有临时目录,路径插入编辑器。
  4. 按需补充说明,然后回车。模型会用 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