dsh-image-hunt
Multi-source image search and download (14 engines + 7 aliases covering Baidu, Bing, 360, Duitang, Huaban, Iconify, DuckDuckGo, Yandex, Openverse, Wikimedia, Pixiv, Wallhaven, Konachan and Safebooru) that saves the picked images into the session workspace with a per-file meta.json and renders them i
Install
dsh plugin --profile web add dsh-image-hunt
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✓ |
| 2 list | ✓ |
| 3 mount | ✓ |
| 4 boot | — |
Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
dsh-image-hunt



多图源搜图 → 下载进当前会话工作区 → 图片直接显示在对话里。DeepSeek Harness 宿主插件,零外部依赖。
[English](README.en.md) · [更新日志](CHANGELOG.md) · npm
- 14 个图源 + 7 个别名:国内 5(百度 / 必应 / 360 / 堆糖 / 花瓣)、国外 4(DuckDuckGo / Yandex / Openverse / 维基共享资源)、二次元 4(Pixiv / Wallhaven / Konachan / Safebooru)、外加 Iconify 图标库
- 三个工具:
image_hunt(搜 + 下 + 显示)、image_search(只搜)、image_download(已知直链落盘) - 每张图都有据可查:同目录
meta.json记原图直链、来源页、标题、真实像素、来源站中文名、授权信息 - 国外源自动走代理:插件内建 CONNECT 隧道,不依赖宿主环境变量;国内源照旧直连
- 不装插件也能跑:仓库自带
cli.mjs,一条node命令直接出图
要求
项 · 要求 · 说明
DSH · 0.2.x(支持 dsh.bundle 补丁的版本) · 通过 cordis.patch.yml 注册,纯宿主侧,无需客户端半
Node · ≥ 18 · 用到 fetch 与 AbortSignal.timeout
依赖 · 无 · 纯 ESM,只用 node: 内置模块(fs / path / net / tls / http / https / zlib)
系统 · Windows / macOS / Linux · 无平台特定代码
代理 · 仅国外源需要 · 默认 http://127.0.0.1:7890;不通会熔断并回退直连
会话 · 一个可写的会话工作区 · 输出目录被 safeJoin 限制在工作区内,越界直接报错
安装
# 从 npm 装(推荐) dsh plugin --profile web add dsh-image-hunt # 或直接从 GitHub 装,跟最新提交 dsh plugin --profile web add github:fomalhaut1998/dsh-image-hunt # 或本地开发:把本仓库 link 进 profile # ~/.dsh/profiles/<profile>/package.json # dependencies["dsh-image-hunt"] = "link:/path/to/dsh-image-hunt" # 并把 "dsh-image-hunt" 加进 dsh.profile.bundles
已发布:npmjs.com/package/dsh-image-hunt。
装完重启 DSH(宿主会缓存 ESM 模块,改完 index.js 也必须重启才生效)。
卸载:dsh plugin --profile web remove dsh-image-hunt。
快速上手
装完直接对 agent 说人话,不必记参数:
想要什么 · 这么说
中文配图 · 帮我找 6 张「城市夜景 长曝光」,要高清、不要水印
可商用素材 · 找 4 张 CC 授权、可商用的山林图,之后可能用在文章里
二次元 / 不要 AI 图 · 找 8 张吉卜力风格的乡间风景,不要 AI 生成的
只挑不下 · 先搜 20 张「莫兰迪 静物」,把候选和来源列给我
已知直链 · 把这几条 URL 的图下到 images/todo/
工具与参数
image_hunt —— 搜 + 下 + 显示
参数 · 类型 · 默认 · 说明
query · string · 必填 · 关键词。中文词在 booru 系会被内置映射转成英文 tag
count · integer · 8 · 目标下载张数,1–40。候选不足时会少给
engine · string · auto · 单个图源 id 或别名,见下方图源表
sources · string[] · — · 直接给源数组,覆盖 engine,可任意混用
minPixels · integer · 0 · 长边下限,0 = 不过滤。做 PPT / 背景图建议 ≥ 1200;icons 无尺寸不受影响
noAI · boolean · false · 只要非 AI 图,仅 pixiv 生效
dir · string · images · 输出根目录(工作区相对路径),实际落 dir/<关键词>/
collection · string · — · icons 专用图标集:simple-icons / mdi / tabler / logos / ph
color · string · — · icons 专用,给 SVG 上色,如 #ffffff
返回形状(真实一次调用的结果):
{
"query": "禾木 冬季 雪 雾凇 村落 摄影",
"dir": "images/禾木-冬季-雪-雾凇-村落-摄影",
"downloaded": 4,
"candidates": 17,
"skipped": 0,
"files": [
{
"path": "images/禾木-冬季-雪-雾凇-村落-摄影/01.jpg",
"bytes": 5866667,
"source": "baidu",
"site": "百度图片",
"width": 1440,
"height": 2128,
"page": "https://…",
"url": "https://…",
"title": "禾木冬日奇景:风雪中的童话世界"
}
],
"errors": []
}
skipped 是被跳过的候选(尺寸低于 minPixels、格式不支持等),errors 里是单个源或单张图的失败原因。
image_search —— 只搜不下
参数:query、engine、sources、minPixels、noAI、collection、color(语义同 image_hunt,没有 count / dir)。
{
"query": "海边小镇 黄昏",
"sources": ["baidu", "so360", "bing"],
"total": 160,
"results": [
{ "engine": "so360", "full": "https://…", "thumb": "https://…", "page": "https://…",
"title": "…", "width": 1920, "height": 1080 }
],
"errors": []
}
结果按源轮转交错,避免前 N 条被单个源占满;total 是去重过滤后的总数,results 截到 20 条。
image_download —— 已知直链落盘
参数 · 类型 · 默认 · 说明
urls · string[] · 必填 · 图片直链,1–30 条
dir · string · images/downloads · 输出目录(工作区相对路径)
prefix · string · img- · 文件名前缀,序号自动补零:img-01.jpg
referer · string · — · 过防盗链用(如 pixiv 需 https://www.pixiv.net/)
proxy · boolean · false · 让这条直链走代理(抓国外图站时需要)
返回 { dir, downloaded, files: [{ path, bytes, url }], errors }。SVG 只落盘,不登记为附件。
图源(engine / sources)
共 14 个图源,另有 7 个别名,合计 21 个可填的 engine 名。
id / 别名 · 站点 · 适合 · 实测候选 / 查询
auto(默认) · 百度 + 360 + Bing · 中文综合,最快 · 三源轮转
baidu · 百度图片 · 中文语义最强,带来源标题 · 60
bing · 必应图片(www → cn 自动兜底) · 国际原图直链多 · 70
so360 · 360 图片 · 量最大、快,但缩略图常只有 426×240 · 259
duitang · 堆糖 · 插画 / 头像 / 手账 / 手机壁纸 · 47
huaban · 花瓣 · 设计 / 家居 / 摄影 / 灵感图 · 40
icons · Iconify 图标库 · SVG 图标、品牌 logo(可改色) · 40
all · 除图标外全部 13 个 photo 源 · 要「什么都来一点」 · 270–371
both · 百度 + 必应 · 中文语义 + 国际原图,两源互补 · 两源轮转
duckduckgo · DuckDuckGo 图片 · 国际图,免 key · 99
yandex · Yandex 图片 · 原图直链质量高,含 Pinterest 原图 · 60
openverse · Openverse · CC 授权图库聚合,带 license · 60
wikimedia · 维基共享资源 · 公有领域 / CC,多数需署名 · 40
intl · duckduckgo + yandex + bing · 国外综合 · 三源轮转
cc · openverse + wikimedia · 只要带授权 / 可商用的图 · 两源轮转
pixiv · Pixiv · 二次元原创 / 同人,画师原图 · 82
wallhaven · Wallhaven · 二次元壁纸,SFW,高分辨率 · 48–96
konachan · Konachan · 二次元插画,按评分排序,质量稳 · 44
safebooru · Safebooru · 量最大,但多合辑 / 拼贴 · 100
anime · pixiv + wallhaven + konachan · 二次元综合(推荐) · 三源轮转
moe · anime + safebooru · 二次元要量 · 四源轮转
sources:["duitang","huaban"]可任意混用,比合成别名更灵活。engine:"icons"+collection:"simple-icons"= 品牌 logo(CC0);color:"#ffffff"给 SVG 上色。- 国外源走代理:duckduckgo / yandex / openverse / wikimedia / pixiv / wallhaven / konachan / safebooru 标记为 foreign,只有它们经代理;bing 的 www 国际站同理。
二次元源的三个特性
1. pixiv 下载时会用 /ajax/illust/<id> 换成原图,画师写进 meta 的 license(形如 Pixiv · @作者),AI 图另标 AI 生成;
2. booru 系(konachan / safebooru)只认英文 tag,中文词走内置映射(宫崎骏 / 吉卜力 → ghibli、龙猫 → totoro、千与千寻 → spirited_away …),映射不到的中文词会被丢掉并报错;
3. noAI:true 只要非 AI 图
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::3,最后更新 2026-10-23