yujianjian1013
dsh-codex-media
No description
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 14, 2026
- Updated
- Aug 14, 2026
Introduction
dsh-codex-media
用本机 Codex(ChatGPT Plus 额度)给 DeepSeek Harness 补上「识图 / 生图 / 改图」,并且能在 Web 输入框里直接粘贴图片。
一个包,两个角色:
- Host 插件(
lib/host.js)——通过ctx.webServer的公开 seam 注入粘贴桥:tapIndex往 SPA 的 index.html 注入bridge.js;- 提供
POST /codex-media/upload,把粘贴的图片字节存进官方附件库(ctx.attachments,即~/.dsh/attachments),返回sha256:引用。
- MCP server(
mcp/server.mjs,stdio)——四个工具,经dsh-mcp-client注册为mcp__codexmedia__*:工具 作用 identify_image识图:本地路径 / sha256:引用 /clipboardgenerate_image生图:Codex 托管 image_generation,输出到你传的路径edit_image改图:带参考图重绘 clipboard_to_image剪贴板图片存盘(pwsh -STA 助手)
工作原理(粘贴为什么能发出去)
DSH 的发送门禁在 dsh-host-apiproxy 的 prompt 端点:消息里含图片且当前模型不声明 image 输入(DeepSeek 只有 ["text"])时,直接拒绝发送。
本插件不改这个门禁,而是在更早的一环把图片变成文本:注入的 bridge.js 在捕获阶段拦截带图的粘贴(纯文本粘贴不干预),把图片上传成官方附件,再往输入框插入文本引用 [图片] sha256:…。消息发出时是纯文本,门禁永不触发;模型看到引用后调用 identify_image/edit_image 解析附件文件交给 Codex 识别。
粘贴图片 ──► bridge.js 拦截 ──► POST /codex-media/upload ──► ctx.attachments(sha256)
│
模型 ◄── 文本引用 [图片] sha256:… ◄── 插入输入框 ◄──────────────────────┘
│
└─► mcp__codexmedia__identify_image ──► 解析附件路径 ──► codex exec -i ──► 文本回答
依赖
- DSH ≥ 0.1.0-rc.6,Node ≥ 22.19
- 本机安装并登录 ChatGPT 的 Codex CLI(识图/生图/改图走 Plus 额度)
- Windows(剪贴板助手用
pwsh -STA;非 Windows 上clipboard输入不可用,其余功能正常)
安装
# 1) 把插件装进 profile 并注册为 bundle(参考 dsh-vision-proxy 的安装方式)
dsh plugin --profile web add github:yujianjian1013/dsh-codex-media
# 或手动: profiles/<name>/package.json 的 dependencies 加
# "dsh-codex-media": "github:yujianjian1013/dsh-codex-media"
# 并在 dsh.profile.bundles 里加 "dsh-codex-media",然后 pnpm install
包内的 cordis.patch.yml 会自动插入 host 插件行。MCP 行是机器相关的,加到你 profile 自己的 cordis.patch.yml:
- insert:
- id: mcp-codexmedia
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: codexmedia
transport: stdio
command: node
args: !!js '(() => { const { createRequire } = process.getBuiltinModule("node:module"); const home = process.env.DSH_HOME || ((process.env.USERPROFILE || "") + "/.dsh"); return [createRequire(home + "/profiles/web/package.json").resolve("dsh-codex-media/mcp/server.mjs")]; })()'
重启 dsh web,刷新页面。
使用
- 识图:在输入框 Ctrl+V 粘贴图片(截图 Win+Shift+S)→ 自动出现
[图片] sha256:…→ 发送,模型会自己调identify_image。也支持直接说"识图一下剪贴板"(image: clipboard)。 - 生图:直接说"画一只……"→ 模型调
generate_image,output_path按会话工作目录传入。 - 改图:粘贴参考图 + "把它改成……"→
edit_image带参考图重绘。
注意
- 生图/改图消耗 ChatGPT 订阅的图像额度;原图留存在
~\.codex\generated_images,可定期清理。 - Codex 连接
chatgpt.com时 WebSocket 偶发重置(10054)会自动降级 HTTPS 重试,属正常现象。 scripts/里保留了一个不依赖 DSH 的纯 PowerShell 版(codex-media.ps1,见scripts/README.md)。
License
MIT