Skills Plugins MCP Prompt Model 导航 博客 资讯 我的中心
工具与能力 #agent-skills#claude-code#codex#coding-agent#cordis#dashscope

dsh-plugins

为纯文本编码模型装上「眼睛」:通过 ctx.llm 将图片路由给 Qwen-VL(DashScope)识别后返回文本。

zjcdkj @zjcdkj ⬇ 1 ★ 1 main

安装

dsh plugin --profile web add github:zjcdkj/dsh-plugins
下载安装清单

需要可复现安装时,可在仓库后追加 #commit 固定提交。

为纯文本编码模型装上「眼睛」:通过 ctx.llm 将图片路由给 Qwen-VL(DashScope)识别后返回文本。

该插件未提供要点说明,请参考仓库 README。

agent-skillsclaude-codecodexcoding-agentcordisdashscope
  1. 安装并启动 DeepSeek Harness:npx @deepseek-ai/dsh web
  2. 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
  3. 用 dsh plugins list 确认已安装,必要时重启 Harness 生效

插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。

代码仓库github.com/zjcdkj/dsh-plugins
许可证MIT
主要语言main
下载量1
GitHub 星标1
最近推送2026-08-18
收录日期2026-09-19
分类工具与能力

事实信息来自公开插件目录快照(2026-10-01),介绍文案由本站再加工。

以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。

# dsh-plugins

[![license](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
[![DeepSeek Harness](https://img.shields.io/badge/DeepSeek%20Harness-plugins-black)](https://github.com/deepseek-ai/deepseek-harness)

English | [中文](README.zh.md)

Plugins for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness). Each package under `packages/` is published to npm on its own and installs independently — nothing here requires the others.

## Plugins

| Plugin | npm | What it does |
|---|---|---|
| [qwen-image](packages/qwen-image) | [`dsh-plugin-qwen-image`](https://www.npmjs.com/package/dsh-plugin-qwen-image) | Gives a text-only coding model eyes. An image goes to a vision route through `ctx.llm` and comes back as text, so DeepSeek keeps driving the session while Qwen does the looking. **Pasting a screenshot into the composer works** — the bytes are stashed in the workspace instead of the conversation, which is why a text-only route still accepts the request, and your draft is never written to. It finds a vision route on its own, so a dsh that already reaches one needs no configuration. |
| [session-resources](packages/session-resources) | [`dsh-plugin-session-resources`](https://www.npmjs.com/package/dsh-plugin-session-resources) | A file panel beside the conversation: the session's workspace as a tree you can walk, the files this session produced pinned above it, and a dot on every row it touched. Click a file to open it; the conversation makes room rather than being covered. |

## Install

Pick the package you want; the repository layout does not matter to the installer:

```sh
dsh plugin --profile web add -w dsh-plugin-qwen-image
```

Every plugin here ships **with no build step**, so no `prepare` script runs at install time and pnpm never asks you to allowlist a build. That allowance is permission to execute a package's code on your machine, and none of these packages need it.

Both plugins here contribute browser UI, so each needs installing into every profile that should show it, the desktop shell included:

```sh
dsh plugin --profile desktop add -w dsh-plugin-qwen-image
dsh plugin --profile desktop add -w dsh-plugin-session-resources
```

## House rules

These hold for every package in this repository:

- **Not one line of upstream changes.** Public seams only — `ctx.tools`, `ctx.llm`, `ctx.fs`, `ctx.attachments`, `ctx.slots`, `ctx.connection.rpc`. Installing one into a profile needs no change to the harness and no desktop rebuild.

  **"Changes nothing upstream" is not the same as "you cannot tell it is there", and the two differ sharply on that** — worth saying plainly rather than glossing:

  - `qwen-image` adds one model-facing tool, and since 0.3.0 a browser half that claims image pastes. **Until you paste an image the interface is unchanged**; when you do, one strip appears above the composer listing what is waiting, and it goes away again when nothing is. What it never does is write to the composer — the draft holds only what you typed. A paste outside the composer, or one carrying only text, is left alone entirely, and so is every paste on a deployment where its channel is unreachable.
  - `session-resources` adds a button to the session header and makes the conversation body give up width — its stylesheet does land on one of the app's own nodes, found by the `data-conversation-scroll` attribute the app puts there on purpose rather than by a class name that changes with every build. **The header never moves**: the title row, the conversation tabs and `Session log` sit at the same pixel whether the panel is open or closed, and only the scrolling body below the rule makes room.
- **No build step.** Host halves are pure ESM, so the harness's own cordis instance is shared rather than duplicated. Browser halves are hand-written plain JS loaded through the app's own module loader, so shipping UI costs no bundler and no build authorization either.
- **Peer range starts at `^0.1.0-rc.5`.** Plugins load on rc.5 and rc.6 alike, including desktop shells still pinned to rc.5.
- **Bilingual docs.** Every package carries `README.md` and `README.zh.md`.

## Development

```sh
git clone git@github.com:zjcdkj/dsh-plugins.git
cd dsh-plugins
```

Install a package straight from the checkout with the `file:` prefix — a bare path takes pnpm's `link:` semantics and breaks peer resolution:

```sh
dsh plugin --profile web add -w "file:$PWD/packages/qwen-image"
```

pnpm links rather than copies: the package directory in the profile's
`node_modules` is a junction into the store, and each file inside it is a **hard
link to the file in your checkout**. Editing one in place therefore reaches every
profile with no further step; **adding or deleting** a file is what needs a
re-link, since a new file has no link yet:

```sh
dsh plugin --profile web install
```

A running app re-reads none of this. The browser picks up a client change on
reload, the host half is loaded once at boot, and the desktop shell loads both at
startup.

## License

[MIT](LICENSE)

数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

提交后我们会发送一封确认邮件,点击邮件里的链接才会开始收信。

完全免费,取消任意时间。我们不会发送垃圾邮件。