关于 photocraft
PhotoCraft 技能通过结构化自动化接口操作 PhotoCraft,供需要编辑打开文档或无人值守处理文件的工作流使用。它涵盖桌面桥接与无头会话,并强调检查编辑状态、验证结果和遵守文件访问范围。
主要功能
- 01通过命令或界面执行编辑
- 02支持桌面桥接与无头会话
- 03检查文档、图层和待处理对话框
- 04管理异步任务与批处理
- 05按读写根目录限制文件访问
- 06渲染预览并验证编辑结果
适用场景
- 01编辑 PhotoCraft 中已打开的文档
- 02无界面处理输入文件并导出结果
- 03执行批量编辑并检查各步骤结果
- 04验证保存后的文档或预览
MCP 相关
可通过现有 PhotoCraft MCP 桥接操作桌面会话,也可使用无头 MCP 处理文件。技能说明了可用的文档、命令、任务和导出工具,并要求先发现工具及会话。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mroxso/ artcraft-skills --skill photocraft安装后在 Claude Code 中输入/photocraft确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/control-protocol.mdLICENSE-MIT详细介绍
PhotoCraft
通过 PhotoCraft 的结构化自动化接口进行操作。保留用户要求的编辑工作流和目标文档。
协议参考
构造调用前,请阅读 references/control-protocol.md 中的相关章节。这是下载的上游协议,存档于 2026-10-08。
来源:PhotoCraft 控制协议。
有用的章节:Methods、Engine commands、Background jobs、MCP bridge、Headless server、Transport limits、Preferences、Snapping 和 Camera Raw dialog。下载文档中的相对链接指向上游文档;需要时,请根据 https://github.com/storytold/photocraft/blob/main/docs/ 解析。如果已安装版本的行为有所不同,请检查已安装的命令注册表并查阅源代码,不要臆造参数。
选择会话
- 对于用户已打开的文档或可见的应用程序,请使用现有的 PhotoCraft MCP 桥接或已通过身份验证的桌面控制会话。无头会话拥有独立文档,无法编辑用户当前窗口中的内容。
- 对于无人值守的文件处理,请使用无头 MCP(
photocraft-cli mcp)或持久化 JSON 行服务器(photocraft-cli serve)。 - 首先查找可用的 PhotoCraft 工具和已安装的可执行文件。如果缺少所需连接或可执行文件,请说明具体的前置条件;创建此技能不会安装 PhotoCraft 或注册 MCP 服务。
启动所需桌面会话时,请根据实际可执行文件、可用端口、私有令牌文件和任务目录调整此示例:
photocraft --control 7878 --control-token-file /private/path/photocraft-control.token \
--automation-read-root /work/input --automation-write-root /work/output
通过以下方式桥接该会话:
photocraft-cli mcp --bridge 127.0.0.1:7878 \
--control-token-file /private/path/photocraft-control.token
尽可能复用正在运行的会话。将 TCP 限制在回环接口上,并将凭据保存在私有令牌文件中;不要在命令参数中打印、提交或暴露令牌。原始 TCP 连接必须先在每个连接上发送 auth 请求,然后每行发送一个带唯一 id 的 JSON 对象;根据 ID 匹配回复,并检查 ok。Stdio serve 无需 TCP 身份验证握手。
检查、编辑和验证
编辑前,请检查活动文档、所选图层、选区、通道/蒙版目标以及待处理的对话框。通过 engine.commands 或 MCP command_list 查找命令 ID、参数文档和启用状态;使用 ui.menu.list 查看菜单树。
使用 engine.execute {command, params} 或 MCP command_run {id, params} 执行明确的编辑操作。命令参数必须是对象,也可以省略或设为 null。直接执行时会使用默认值,且不会打开对话框。若需要与对话框交互,请使用 ui.menu.invoke,然后检查并更改其字段,再确认。
对于 UI 手势,ui.pointer 使用文档坐标,而非屏幕坐标。请先检查活动工具和吸附选项。ui.type 会将输入发送到获得焦点的控件或当前活动的文字编辑会话。在文字、形状、智能对象或填充图层上执行像素手势可能会打开栅格化提示;仅当栅格化符合预期编辑时才确认。
如果符合用户要求的结果,请优先使用可编辑图层、调整图层和蒙版。检查处理后的文档,并渲染预览或截取屏幕截图,以核验视觉效果。报告成功保存的内容以及重要的导入/导出警告。
文件访问与输出
读取和写入根目录是启动时分别授予的能力。请使用任务范围内的根目录及其下的正斜杠相对路径;输出父目录必须已存在。不要通过切换到环境文件系统命令来绕过被拒绝的路径。
- 桌面控制:
app.open/app.save。 - MCP:
doc_open/doc_save/doc_export(桥接器会将这些映射到桌面方法)。 - 无头 JSON-lines:
doc.open/doc.save/doc.render。
自动化会拒绝 file.open、file.save、file.saveAs、file.saveACopy 及其他使用环境路径的命令。适当时,将原生可编辑输出保存为 .pcraft;导出时使用请求的扩展名。不指定路径进行保存时,只会写回现有的 PSD、PSB 或 .pcraft 源文件。创建副本或导出其他格式时,请指定明确的输出路径。
作业、批处理与不确定的结果
长时间运行的命令默认会等待。使用 wait: false 时,请保留返回的作业 ID,并检查 jobs.list / MCP jobs_list,直到作业完成、失败或取消,再执行依赖操作或最终验证。需要时取消特定作业;作业运行期间,对其锁定文档的编辑会失败。
对于已知的操作序列,请使用批处理;除非有意继续执行,否则应启用出错即停止。批处理不是事务:发生故障时,之前的编辑仍会保留。请检查每个步骤的结果;actions.play 可能会在整体回复成功时报告某个步骤失败。
发生超时、断开连接或回复预算错误后,请先检查文档、历史记录和作业状态,再重试修改操作。操作可能已经完成。如果检查无法确定重放是否安全,请停止并报告尚未解决的状态。
处理大型批次或预览时,请阅读 传输限制:批次最多允许 256 个步骤;即使请求全尺寸预览,无头预览的边长也受限于 2048 像素。在桥接模式下,预览会捕获应用窗口;无头预览则会渲染文档。doc_select 和 doc_close 仅支持无头模式;ui_* 工具和 control_call 仅支持桥接模式。
编辑前,请阅读偏好设置和 Camera Raw 的协议章节。只更改与任务相关的设置。Camera Raw 分析可以使用有界代理;编辑导入的滤镜参数时,请保留保留字段 __cameraRawPsd 元数据,并在评估全分辨率结果前确认细节优化是否已完成。