yi-yezhiqiu/dsh-prompt-market

dsh-prompt-market

对话框旁的提示词市场:浏览并搜索三个内置在线提示词源,可收藏或自建,选中即插入输入框。

待分类chinesedeepseek-harnessdsh

dsh-prompt-market

DeepSeek Harness 提示词市场插件

在对话框里一键浏览、搜索、收藏提示词 —— 选中即写入输入框

简体中文 | English | 日本語

目录

  • 效果预览
  • 它解决什么问题
  • 功能特性
  • 界面与架构
  • 安装
  • 快速上手
  • 配置项
  • 数据与隐私
  • 内置源与许可
  • 添加自定义源
  • 常见问题
  • 目录结构
  • 开发与自检
  • 状态与已知限制
  • 路线图
  • 参与贡献
  • 许可

效果预览

市场:一个浮层里浏览、搜索、收藏

三个内置源合计 2527 条(已扣除内容过滤条数)。

顶部可搜索标题 / 描述 / 正文 / 标签,右侧可选分类与排序;每条右侧是「插入 / 替换 / 详情 / ★」。 底部实时显示当前列的来源、语言、许可与标签。

源管理:连通性、许可与署名一目了然

两处值得注意的细节:

  • 「状态」列显示每个源实际加载了多少条 —— 连接失败会如实报错,不静默假装成功
  • 「许可」列把两个 MIT 库区分开:一个是 MIT,另一个是 MIT-plexpt

(版权人不同的两个库,署名不混用)

我的:自己写、自己改

自建提示词存在本机,可编辑、可删除、可导出带走。

收藏:随手取用

添加自定义源(带可折叠说明书)

说明书讲清了怎么判断一个网址能不能用(看到的必须是带 {} / [] 的原始数据, 而不是排版好的网页),并给出可直接照抄的示例。

内容过滤与写入诊断

内容过滤默认开启,六条规则可逐条开关、可加自定义屏蔽词; 「写入字段」可在中文说明与英文原文之间切换。

它解决什么问题

用 AI 写东西时,好用的提示词总是散落在浏览器书签、笔记、别人的聊天记录里。真要用的时候要么找不到,要么复制过来还得改半天。

这个插件把「找提示词 → 用提示词」压缩成两步:

点输入框左边的「提示词导入」  →  点某一条的「插入」

功能特性

模块 · 能力 🛒 市场 · 三个内置源,支持搜索、分类筛选、分页、权重排序;显示来源与许可 ⭐ 收藏 · 一键收藏 / 取消,收藏夹独立成页,随手可取 ✍️ 我的 · 新建、编辑、删除自己的提示词,可打标签 🔌 源管理 · 查看每个源的连通性与缓存条目;添加任意 JSON 源(附可折叠说明书);显示许可与署名 🛡️ 内容过滤 · 默认开启,拦截越狱类与成人角色扮演条目;六条规则可逐条开关,支持自定义屏蔽词 💾 导入导出 · 收藏 + 自建 + 标签 + 设置整体导出为 JSON,方便换机迁移 🈶 中英可切 · 默认插入中文说明,可在源管理中切换为英文原文

写入行为

  • 默认插入中文说明(description)—— 便于阅读和二次修改
  • 可在「源管理 → 高级 → 写入字段」切换为英文原文(prompt)
  • 插入走 inputActions.insertText(),因此插入后可 `Ctrl+Z` 撤销
  • 输入框已有内容时,默认插入到光标处,不覆盖你已写的内容
  • 想整段替换:先 Ctrl+A 全选草稿,再点「替换」
⚠️ 能力边界(如实说明)
插件的 InputActions 只提供 captureInsertion / insertText / setDraft,没有清空草稿或设置选区的能力。
因此「替换整段」依赖用户手动全选 —— 插件无法主动清空你的草稿。
这是 DSH 当前接口的边界,不是本插件的取舍。

界面与架构

界面组成

flowchart LR
    A["输入框<br/>conversation.input.left"] --> B["「提示词导入」按钮"]
    B --> C["浮层面板<br/>conversation.input.overlay"]
    C --> D["市场"]
    C --> E["收藏"]
    C --> F["我的"]
    C --> G["源管理"]
    D --> H["insertText 写入输入框"]
    E --> H
    F --> H

界面挂在 DSH 的两个官方插槽上,不侵入对话区,也不改写其他插件的 UI。

数据流

flowchart TD
    S1["f/prompts.chat<br/>CSV · CC0"] --> N["normalize<br/>四种适配器"]
    S2["ChatGPT-Shortcut<br/>JSON · MIT"] --> N
    S3["PlexPt<br/>JSON · MIT"] --> N
    S4["自定义 JSON 源"] --> N
    N --> FL["filter<br/>内容过滤"]
    FL --> ST["storage<br/>localStorage 缓存 + 状态"]
    ST --> API["api 门面"]
    API --> UI["ui 界面层"]
    UI --> W["写入通道<br/>insertText"]

降级链:网络失败 → 用本地缓存 → 缓存也没有 → 返回可展示的错误态,不白屏、不抛未捕获异常。

安装

前置

  • DeepSeek Harness 桌面端
  • 插件运行时不依赖 Node(Node 只在跑开发自检时需要)

⚠️ 先分清:你在对话框里填,还是在终端里跑

这两种地方要填的内容不一样:

你在哪 · 填 / 跑什么 DSH 的「设置 → 插件 → 添加插件」对话框 · 只填标识符本身(包名 / 网址 / 目录路径) Windows 终端(cmd / PowerShell) · 跑完整命令 dsh plugin --profile desktop add

🔴 最常见的错误:把整条 dsh plugin --profile desktop add https://... 粘进对话框 ——
会报 「无法识别这个包名或地址:not a package name the registry accepts」。
对话框里不要那一截 dsh plugin --profile desktop add。

方式一:一行命令(推荐,已发布到 npm)

① 对话框里,只填这一行:

dsh-prompt-market

② 或者在终端里跑:

dsh plugin --profile desktop add dsh-prompt-market
✅ 不需要 `git`,也不需要记住任何网址。
已发布到 npm:
🌏 网络受限时:在「添加插件」对话框里把「安装源」选成
中国大陆镜像源(npmmirror),就能从国内镜像装。
💡 万一 npm 装不了(离线、被墙、registry 不可达),
改用下方的方式二(Release 附件直链)。

方式二:Release 附件直链(不需要 git,兜底)

① 对话框里填:

https://github.com/yi-yezhiqiu/dsh-prompt-market/releases/latest/download/dsh-prompt-market.tgz

② 或者在终端里跑:

dsh plugin --profile desktop add https://github.com/yi-yezhiqiu/dsh-prompt-market/releases/latest/download/dsh-prompt-market.tgz
✅ 这条也不依赖 `git` —— 它直接下载 Release 附件(实测数秒)。
适合完全离线或 registry 不通的场景。
📌 网址里的 latest 由 GitHub 在请求时解析,始终指向最新版本,所以这个链接长期有效。

方式三:从 GitHub 仓库安装(需要 git)

① 对话框里填:

github:yi-yezhiqiu/dsh-prompt-market

(写成 https://github.com/yi-yezhiqiu/dsh-prompt-market 也可以)

② 或者在终端里跑:

dsh plugin --profile desktop add github:yi-yezhiqiu/dsh-prompt-market
⚠️ 这种方式要求本机已安装 `git` —— pnpm 要靠它拉取仓库。
没装的话会失败,报错形如:
`
[ERROR] Command failed with exit code 1: git ls-remote "https://github.com/..."
'git' 不是内部或外部命令,也不是可运行的程序或批处理文件。
`