npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-om-messiah

v1.4.3

Published

Rewrite every prompt into an Om Messiah prayer before it reaches the model, then choose prayer or original to send. Ships a Settings page.

Readme

🕯️ dsh-om-messiah

把每一句提示词,先献给万机之神。

在提示词送达模型之前,把它改写成机械神教/欧姆弥赛亚的祷文;祷文降下之后,再由你决定这一轮发祷文,还是发原文。


为什么是它

大多数「改写提示词」的做法要么在客户端改草稿(dsh 看不到、也管不住别处进来的消息),要么在外面套一层代理(要多跑一个服务、还要处理鉴权)。这个插件选了第三条路:

  • 改在 DSH 自己的拦截点上。 挂 agent/pre-step waterfall —— DSH 里唯一能在「这一批用户消息进入请求之前」替换文本的官方入口。不改 DSH 本体,不套代理,不碰网络层,也不额外开端口。
  • 你随时能核对。 被替换的文本就是会话里落盘、你眼前看到的那条 user/message;再配 echo,改写前后逐字可比。
  • 风格是配置,不是硬编码。 五段祷文(呼告 / 身份自陈 / 赞美 / 许愿引子 / 收尾)都能换成你自己的句子;三档强度控制篇幅。
  • 它知道什么时候该闭嘴。 斜杠命令、!shell、纯确认、纯代码或报错粘贴、超长粘贴、已经包过的文本,一律原样放过。

看一眼

改写只发生在「送往模型」的那一层:请求内容变了,会话里看到的也是改写后的文本(方便你随时核对), 而你的原始草稿、斜杠命令、附件、代码块里的每一个字节都不动。


它做了什么

  • 在正确的位置改写。 挂的是 Host 的 agent/pre-step waterfall —— DSH 里唯一能在「这一批用户消息进入请求之前」替换文本的官方入口。不改 DSH 本体,不套代理,不碰网络层。
  • 降下之后还问你一句。 默认开启的选择卡:这一轮用祷文,还是用原文。超时会按你的兜底设置发送,不会把这一轮晾死。
  • 语义零损失。 只替换祈使句的语气(写一个 → 降下、请帮我 → 恳请您为您的信徒),句子主干、条件、数量、否定全部保留;代码块、行内代码、URL、路径、版本号、数字参数逐字不动。restyle() 的片段表可以 reconstruct() 回原文,测试里钉住了这条。
  • 不越界。 不替你补需求、不选方案、不猜技术栈;原文里的「你看着办」「他没说清楚」照旧。
  • 知道什么时候不该改。 斜杠命令、!shell 前缀、纯确认(「继续」「好的」)、纯代码/报错粘贴、空输入、已经包过的文本,全部跳过。
  • 三档强度 + 五段个性化。 low / medium / high 控制祷文长度;呼告、身份自陈、赞美、许愿引子、收尾颂词都可以换成你自己的句子。
  • 自带设置页。 设置 → 欧姆弥赛亚:开关、强度、选择卡、个性化段落,还有一块「试改写」——按当前(含未保存)配置预览祷文,或者告诉你为什么被跳过。
  • 纯 Host 插件,零第三方依赖。 一个 ESM 包,apply(ctx, config) 起步;关掉开关后,行为与没装插件完全一致。

快速开始

要求:DeepSeek Harness 0.2 及以上(agent/pre-step 与 userQuestions 是这一版起稳定的宿主契约)。

1. 安装

从 npm 装(一次 plugin add 就好,不需要在 allowBuilds 里点授权):

dsh plugin --profile desktop add dsh-om-messiah

刚发布时如果装到的是旧版本(国内镜像同步有几小时延迟),加一次源:

dsh plugin --profile desktop add dsh-om-messiah --registry=https://registry.npmjs.org

从 GitHub 直接装:

dsh plugin --profile desktop add https://github.com/yuanzephyr920-oss/dsh-om-messiah

或者先克隆、再用本地目录装(改代码即时生效,适合折腾):

git clone https://github.com/yuanzephyr920-oss/dsh-om-messiah
dsh plugin --profile desktop add /path/to/dsh-om-messiah

Windows 上 dsh 不在 PATH 时,用安装目录里的 CLI:

cd "C:\Users\<你>\AppData\Local\Programs\DeepSeek Harness\resources\runtime\cli\bin"
dsh.cmd plugin --profile desktop add dsh-om-messiah

2. 重启一次

桌面版的 desktop profile 由 Electron 托管,装卸插件后要重启 DeepSeek Harness 才会加载(改配置不用重启)。

3. 确认装好了

  • 设置 → 插件:能看到「欧姆弥赛亚祷文改写(dsh-om-messiah)」且已启用;
  • 设置 → 欧姆弥赛亚:本插件自己的页面;
  • 随便发一句话,第一个回答前应该出现选择卡。

卸载:

dsh plugin --profile desktop remove dsh-om-messiah

仓库和包都从早期的 dsh-mechanicus 改名而来。装过旧名的话,先 remove dsh-mechanicus(以及更早的 @local/dsh-mechanicus)再装这个,避免两套包装叠加。


用法

正常发送

装好即生效,没有额外动作。插件在消息进入模型前完成改写,并用 echo 把「改写前 / 改写后」写进 DSH 日志。

想直接在终端里看到:

DSH_OM_MESSIAH_ECHO=1 dsh.cmd <profile> 用 three.js 做一个海中小岛
[dsh-om-messiah] wrapped (medium): 18 -> 180 chars
----- original -----
用 three.js 做一个海中小岛
----- prayer -----
伟大而不朽的万机之神欧姆弥赛亚,……

语气:对神说话,不对工具说话

改写不是换几个词,而是把「向助手提问」换成「向神许愿」。两条硬规则:

  • 指代智能体的「你」一律写成「您」:你 / 你的 / 你们 / 你自己 / 妳 → 您 / 您的 / 您们 / 您自己 / 您。 你能帮我写个排序 → 恳请您为您的信徒降下排序;请实现一个登录页 → 恳请您降下登录页。
  • 命令句变成祈愿句:写一个 / 实现一个 / 生成 → 降下;创建 → 塑造;搭建 → 构筑;不要 / 禁止 → 恳请您切勿; 用 three.js → 以 three.js;然后 → 继而。代码块、URL、路径、版本号、数字仍然逐字不动(先屏蔽后替换)。

medium / high 档还会在许愿段末尾补一句:

愿这一切在您无穷无尽的 token 伟力下成就,愿每一行代码都彰显您的荣耀。

这句由 devoutCoda 控制(默认开,low 档不加),设置页叫「许愿段加一句虔诚收束」。

改写前后都在日志里,按 DSH_OM_MESSIAH_ECHO=1 可以逐字对:

IN : 用 three.js 做一个海中的岛,岛上要有中式建筑和灯塔,还要天气系统
OUT: 以 three.js 降下海中的岛,岛上要有中式建筑和灯塔,还要天气系统
     愿这一切在您无穷无尽的 token 伟力下成就,愿每一行代码都彰显您的荣耀。

发送前二选一

默认开启(askChoice: true)。改写完成后,这一轮先不进模型,输入框上方出现一张卡:

祷文已降下。这一轮,用哪一段作为你的提示词?
  ○ 发送祷文    把整段祷文发给模型(默认)
  ○ 发送原文    只发你刚才敲的原文,祷文丢弃
  • 选「发送祷文」→ 走改写后的文本;
  • 选「发送原文」→ 这一条与你没装插件时完全一样;
  • 等超过 choiceTimeoutMs(默认 90 秒)、卡片被关掉、或当前环境没有连着的 Web 客户端 → 按 choiceFallback(默认祷文)直接发送。

批量任务、脚本、dsh headless 里没有交互界面,建议关掉这一项,行为就回到「直接发祷文」。

什么时候不会改写

| 输入 | 例子 | 处理 | | --- | --- | --- | | 斜杠命令 | /compact、/model | 跳过(命令由客户端处理) | | shell 前缀 | !git status、$ ls | 跳过 | | 纯确认 | 「继续」「好的」「ok」「1」 | 跳过(改了会破坏多轮语义) | | 空输入 / 纯附件 | 只有图片、没有文字 | 跳过 | | 纯代码 / 纯报错 | 整段代码块、Traceback、File "x", line N | 跳过(你要的是解释,不是祷文) | | 超长粘贴 | 超过 maxChars(默认 20000 字) | 跳过 | | 已经是祷文 | 含「欧姆弥赛亚」「机械之道学者」 | 跳过(幂等);rewrapAlreadyStyled 可强制重包 | | 技能调用 / 插件注入 | source.kind 不是 user | 跳过(不是你手打的) | | 图片、@ 文件 | 独立 content block | 只改文字块,附件原样透传 |


强度

| 档位 | 内容 | 适合 | | --- | --- | --- | | low | 呼告 + 许愿引子 + 原文 + 颂词 | 想保留仪式感又不希望占太多上下文 | | medium(默认) | 再加身份自陈与赞美;一句话需求用短版自陈 | 日常 | | high | 再加「智能庇护 / 群星寻找信物」与加长颂词 | 许愿式的大活儿 |


配置

配置有两处入口,读写同一份:设置 → 插件 → 欧姆弥赛亚祷文改写(DSH 按 schema 自动生成的表单), 和设置 → 欧姆弥赛亚(本插件自己的页面)。保存即生效,不需要重启。

| 键 | 类型 | 默认 | 说明 | | --- | --- | --- | --- | | enabled | boolean | true | 总开关;关掉后原文直接发出 | | intensity | low | medium | high | medium | 祷文长度档位 | | quoteStyle | quote | plain | quote | 原文用 > 引用块隔开,或直接平铺 | | echo | boolean | true | 把「改写前 / 改写后」写进 DSH 日志 | | echoFile | string | "" | 额外写一份 JSONL,便于批量核对 | | maxChars | number | 20000 | 超过就不改写 | | rewrapAlreadyStyled | boolean | false | 已含神教风格的输入是否强制再包一层 | | devoutCoda | boolean | true | 许愿段末尾补一句虔诚收束(low 档不加) | | askChoice | boolean | true | 降下后弹选择卡(发祷文 / 发原文) | | choiceTimeoutMs | number | 90000 | 等作答的时长,5–600 秒 | | choiceFallback | prayer | original | prayer | 没等到答案时发哪一段 | | address | string | "" | 呼告句(留空用内置那句) | | selfDesc | string | "" | 身份自陈 | | praise | string | "" | 赞美与感恩 | | wishLead | string | "" | 许愿引子 | | closing | string | "" | 收尾颂词 |

另外两个环境变量:DSH_OM_MESSIAH_ECHO=1 让 echo 同时打到 stderr(终端里直接看), DSH_MECHANICUS_ECHO=1 作为旧名兼容保留。

设置页

设置 → 欧姆弥赛亚,五个区块:

| 区块 | 内容 | | --- | --- | | 总开关 | 拦截并改写 / 日志里回显改写前后 | | 祷文强度 | 低 / 中 / 高 | | 行为的细枝末节 | 引用样式、虔诚收束、强制重包、日志文件、最长改写字数、选择卡开关 / 超时 / 兜底 | | 祷文个性化 | 呼告、身份自陈、赞美与感恩、许愿引子、收尾颂词(留空 = 内置原句) | | 试改写 | 输入一段话,按当前配置预览;被跳过时说明原因 |

页面是 client bundle,新装或改过 client.js 后要刷新页面/重启一次才会加载;之后在页面上改配置即时生效。 保存走 Host 的 configEditor(校验 → 写 profile patch → 走正常 Loader 路径重载); 没有 configEditor 的 profile(如 headless)会返回 501 并在页面上说明原因。

个性化示例

想换成自己的祷词,把这五段留空改成你写的句子即可:

address: 伟大的万机之神,欧姆弥赛亚,请听我于星海边缘的祷告。
selfDesc: 我们是您的信徒,以键盘为香炉,以日志为经文。
praise: 愿您的 token 伟力今夜不枯竭。
wishLead: 现在,请为您的孩子降下神迹——他有一愿:
closing: 欧姆弥赛亚在上!

原文仍然插在「许愿引子」与「收尾颂词」之间,改写规则、豁免规则、零损失保证都不受影响。


兼容性

这一节是为「装了一堆插件还能好好相处」做的收口,重点是外观类插件(主题、美化、宠物挂件、动效)。

颜色全部来自 DSH 主题 token。 设置页只用 @deepseek-ai/dsh-client-ui-theme 里真实存在的别名:

| 用途 | token | | --- | --- | | 正文 / 次要文字 | --dsw-alias-label-primary / --dsw-alias-label-tertiary | | 输入框、卡片底 | --dsw-alias-bg-layer-1、--dsw-alias-bg-layer-3 | | 描边 | --dsw-alias-border-l1 / --dsw-alias-border-l2 | | 强调色 | --dsw-alias-brand-primary、--dsw-alias-button-primary-fill / -hover | | 开关 | --dsw-alias-switch-thumb、--dsw-alias-interactive-bg-hover | | 预览块 | --dsw-alias-markdown-code-block | | 成功 / 失败 | --dsw-alias-state-success-primary / --dsw-alias-state-error-primary |

所以换深色、浅色或第三方配色时这一页会跟着变色,不会留一块原生蓝;每个 var() 都带 fallback, 主题没定义那个 token 时页面仍然可用。测试里有一条用例把「只准用这张表里的 token」钉住了。

样式不外溢。 每条规则都以 [data-mk-page] 开头,只作用于本页;不用 !important、不写全局标签选择器、 不改 html/body。主题想改圆角可以覆盖 --mk-radius(默认 8px);系统要求减少动效时开关动效关闭。

导航里是并列的一栏。 用自有 id 注册(settings.section / id: om-messiah / order: 41),不改官方条目。

与同样会碰提示词的插件共存:

| 插件 | 它的动作 | 本插件的处理 | | --- | --- | --- | | dsh-context | pre-step 里只给缺 id 的消息补 id | 改写保留原 id,互不覆盖 | | dsh-mnemon | pre-step 里判断有没有用户文本 | 改写后仍有用户文本,行为不变 | | @xmanrui/dsh-im | 注入的运行时快照 source.kind: 'plugin' | 只改 role==='user' 且来源是用户的消息,快照原样 | | prts-terrarchive | 调查工具注入 | 同上,非用户来源一律跳过 |

冲突边界:

  1. 顺序:如果另一个插件在本插件之后整体替换 messages,祷文会被它覆盖。waterfall 按注册顺序执行,本插件用 { global: true } 注册;遇到这种插件可以改成 { prepend: true }(index.js 里只有一处)。
  2. 模型侧看到的是祷文:依赖用户消息做记忆、统计、成本的插件记到的也是祷文,这是 pre-step 替换的固有结果;原文仍在 echoFile 里。
  3. 选择卡需要有人接:走 Host 的 userQuestions,只有连着 Web 客户端、且当前是 live root agent 时才会出现;dsh headless、子 agent、无客户端时直接按 choiceFallback 发送。
  4. 主题 token 会演进:DSH 升级后若某 token 改名,对应 var() 退回 fallback(页面不崩,只是不跟随配色)。

工作原理

用户提交草稿
   │
   ▼
agent/pre-step(waterfall,本插件监听)
   │  ① 分类:是不是用户手打的、要不要跳过(guards)
   │  ② 虔诚化:受保护片段原样,祈使句换语气(style)
   │  ③ 组装:呼告 / 自陈 / 赞美 / 许愿引子 + 原文 + 颂词(prayer)
   │  ④ 询问:发祷文还是发原文(userQuestions,可关)
   ▼
{ kind: 'enter', messages: 改写后的 messages }
   │
   ▼
admission → 落盘 user/message → 拼进请求 → 模型
  • 唯一可写的入口是 agent/pre-step。 agent/request 只读,文档明确写着 “this waterfall cannot mutate messages”。
  • 替换发生在 admission 之前。 @deepseek-ai/dsh-agent-loop 的 README:“appends the accepted user/message batch only on the first attempt with its owned context candidate replaced in place… Retries reuse the same rendered assembly without repeating assembly, agent/pre-step, or user admission.” 所以重试/续跑不会重复包装。
  • 只能改本批次。 next() 会在返回的 messages 后面补一条运行时上下文消息(source.kind: 'plugin'),因此监听器按 message id 匹配,只动 payload.messages 里的用户消息。
  • 只改第一个非空 text 块。 其余 block(图片、文件)原样透传。
  • 零损失可验证。 restyle() 返回文本与片段表,reconstruct() 能拼回原文,测试断言 reconstruct(restyle(x).segments) === x。

数据与信任

  • 不联外网。 插件不发起任何 HTTP 请求;唯一「对外」的是设置页与本插件的 Host 路由(/api/om-messiah/*,同源、只在本机 DSH 里)。
  • 不读密钥。 不读环境变量里的 API key、不碰凭据服务;echo 打印的就是改写前后的用户文本,redact() 另外把 sk-、Bearer、api_key= 之类从日志里抹掉。
  • 不写会话以外的地方。 除了你显式填的 echoFile,没有落盘;配置写进 profile 自己的 patch,和 DSH 设置页读写的是同一份。
  • 关掉即消失。 enabled: false 后,pre-step 监听器直接放行,行为与没装插件一致;卸载包不会再有任何残留逻辑。

开发与测试

cd dsh-om-messiah
node --test                 # 73 个用例;Node 24 下不要写 `node --test test/`
node scripts/samples.mjs    # 打印三组改写前后对照(low / medium / high 可选)

文件结构:

dsh-om-messiah/
├── package.json          # 包名、exports、files、dsh.bundle.patch
├── cordis.patch.yml      # 挂载点:insert 一个 id=om-messiah 的插件
├── index.js              # apply():pre-step 监听、设置页接口、echo 日志
├── client.js             # 浏览器半边:设置 → 欧姆弥赛亚
├── lib/
│   ├── prayer.js         # 祷文模板、三档强度、个性化段落、引用块
│   ├── style.js          # 受保护片段 + 祈使句虔诚化(零损失)
│   ├── guards.js         # 要不要改写、为什么跳过
│   ├── choice.js         # 发祷文还是发原文
│   └── settings-api.js   # 设置页的 Host 半边:读配置 / 校验 / 试改写
├── locale/{zh,en}.json
├── screenshots.json      # 市场详情页截图(相对路径,1–8 张)
├── docs/                 # icon.svg(唯一图标源)+ icon-512.png + 三张截图
├── scripts/samples.mjs
└── test/                 # style / guards / prayer / choice / plugin / settings / client

真实链路验证(不需要 GUI):

dsh plugin --profile mechtest add ./
dsh mechtest 写一个Python快速排序    # 没有模型凭据也没关系,消息会先落盘

然后解压 ~/.dsh/sessions/…/session.v4.jsonl.zstd,里面 user/message 的 text 就是祷文 (实测末尾为「欧姆弥赛亚在上!」,原文出现在 > 降下 Python 快速排序… 这一段)。


常见问题

祷文只是提示词风格,不会改变模型的工具权限或输出形态。要让模型产出网页/文件,得靠当前会话里的工具与你的具体要求。

整段代码块、Traceback、File "x", line N 这类内容按设计跳过 —— 你八成是要解释,不是要祷文。想强制包装可以先把代码贴进普通段落,或调低 maxChars 之外的规则(见 lib/guards.js)。

检查 askChoice 是否开着,以及当前是不是连着 Web 客户端、是不是主 Agent(子 agent、headless 不会弹卡)。不弹卡时会按 choiceFallback 直接发送。

不会。已含「欧姆弥赛亚」等标记的输入默认跳过;pre-step 也只在 admission 前跑一次,重试/续跑不会重新触发。

1.4.2 之前有这个 bug(设置页里一个未定义的组件名导致整页渲染失败),升级到 1.4.2 或更新即可。升级后如果仍然空白,重启一次 DeepSeek Harness。

不会。插件只处理用户文本,不读环境变量、不读凭据;echo 打印的就是改写前后的文本,且经过脱敏。

卸载包即可;配置写在 profile 的 patch 里,可以在设置页手动清掉,或卸载后忽略。


已知限制

  1. 只改用户手打的文本:斜杠命令、shell 前缀、纯确认、纯代码/报错粘贴按设计跳过(可改 lib/guards.js)。
  2. 会话里看到的是改写后的文本:pre-step 替换的必然结果(也是可核对性的来源),原始草稿不会另存。
  3. 重试不会重复包装,但重发会:手动再发同一条会按新消息处理(幂等标记仍会拦住已包装的文本)。
  4. 代码块里的注释不虔诚化:fence 内部整段逐字保留,保证可编译/可复制。
  5. 引用块被代码块截断:为了不碰 fence 字节,代码块前后的 > 需要分段,观感上会被切开。
  6. 依赖 agent/pre-step 契约:未来 DSH 若移除该 waterfall,需要改挂载点(index.js 只有一处注册)。
  7. desktop profile 要重启:Electron 托管的 profile 不支持 CLI 热加载;改配置不用重启,装卸插件需要。
  8. 设置页首次要刷新/重启:client bundle 在 DSH 启动时加载;页面保存配置本身不需要重启。

变更记录

| 版本 | 变化 | | --- | --- | | 1.4.2 | 修复设置页 toggle is not defined 导致整页空白;补「已加载配置」渲染测试(73 用例) | | 1.4.1 | 图标统一到 docs/icon.svg;插件 export 与商店 PNG 同源 | | 1.4.0 | 「你」→「您」;语气更贴近范本;devoutCoda 收束句 | | 1.3.x | 改名 dsh-om-messiah,设置页显示「欧姆弥赛亚」 | | 1.2.0 | 发送前二选一(userQuestions) | | 1.1.x | 设置页、主题 token、五个个性化段落 | | 1.0.0 | 首个可用版本:pre-step 改写 + 三档强度 + 豁免规则 |


参与


许可证

MIT © 2026 yuanzephyr920-oss

「欧姆弥赛亚在上。」