dsh-paste-collapse

DSH PLUGIN开发与运行时

仓库 matata2017/dsh-paste-collapse

开发与运行时 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

dsh-paste-collapse 是 matata2017 维护的 开发与运行时 类 DSH 可安装插件, 仓库为 matata2017/dsh-paste-collapse,许可证 MIT。 下面按「装什么、怎么装、验没验过、跑起来要注意什么」逐项列出。

一句话选型结论

按资料字段整理

dsh-paste-collapse 是开发与运行时类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类开发与运行时 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-10-26 创建于 2026-10-23
README 5.6 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:matata2017/dsh-paste-collapse
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

开发与运行时
字段来自项目仓库与公开索引,中文说明由本站标注

上游标签

dsh-plugin

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在开发与运行时场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-paste-collapse当前 L5 · 运行验证通过 低风险 0 未标注 有
deepseek-harness L3 · 安装规范通过 低风险 24.6 万 未标注 无
rea L4 · 沙盒安装通过 低风险 2.6 万 0.1.1-rc.2 有
dsh-TUI L4 · 沙盒安装通过 中风险 4,292 0.1.7-rc.2 等 5 个 有
mirage L3 · 安装规范通过 低风险 3,681 未标注 无
dashi-taskboard L4 · 沙盒安装通过 低风险 3,311 0.1.1-rc.2 有

仓库档案

开发与运行时
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方matata2017仓库 dsh-paste-collapse · 默认分支 main
分类开发与运行时dev
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言未标注仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-10-23 · 2026-10-26最后推送 2026-10-26
本站收录2026-10-30首次进入本站目录的时间

README 全文

5.6 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-paste-collapse

把 DeepSeek Harness 输入框里的大段粘贴折叠成 Codex 同款占位符,叠一枚可点开的胶囊,
并在模型读到这一轮之前由宿主把全文换回去。

模型收到的仍然是你粘贴的每一个字符。插件不写磁盘,也不省 token —— 占位符只是让输入框
更好读,不是压缩。

你粘贴 12000 个字符
│
▼
输入框显示   [Pasted Content 12000 chars]   外加一枚带预览的胶囊
│
▼  你按发送
宿主把占位符换回原文
│
▼
模型读到完整的 12000 个字符

规则(与 Codex 完全一致)

阈值 1000 字符(Codex 的 LARGE_PASTE_CHAR_THRESHOLD)
占位符 [Pasted Content 12000 chars]
同尺寸第二次粘贴 [Pasted Content 12000 chars] #2,第三次 #3……
编号方式 按字符数分别计:3000 字符的粘贴自己从 1 开始
展开顺序 FIFO:占位符第 k 次出现对应第 k 段原文
找不到原文的占位符 原样保留,照样发给模型

占位符文本、编号规则和 FIFO 展开都是 Codex
(codex-rs/tui/src/bottom_pane/chat_composer.rs)的移植:next_large_paste_placeholder
与 expand_pending_pastes。

胶囊

每段被折叠的粘贴都会在输入框上沿生成一枚胶囊:

  • 粘贴内容的第一行,最多 16 个字符
  • 字符数(缩写显示,6.7k 而不是 6684)
  • 点一下在右侧打开全文抽屉

抽屉就是 Codex 与 WorkBuddy 那种侧边面板:全文、字符数、复制按钮、关闭按钮;
按 Esc 或点面板外即可关闭。

胶囊配色全部走 DSH 原生 CSS 变量(不写死十六进制),跟随明暗主题。

消息里也是胶囊

已经发出去的那条消息里,被折叠的粘贴同样显示成一枚胶囊,而不是一大片原文:气泡把粘贴
内容渲染成一枚小 chip,带预览和字符数,点一下还是打开同一个右侧抽屉看全文。

气泡先问客户端要原文,客户端没有再问宿主要(宿主重启之后就是这样),两边都没有就
老老实实显示纯文本,不出胶囊。

消息里这枚胶囊的两点前提

气泡里装的是展开后的全文,不是占位符。 宿主在 agent/pre-step 里把占位符换回全文,
session 存下来的、气泡显示出来的都是那份全文。所以胶囊是靠「客户端记住的粘贴原文」在
消息里定位出来的——宿主重启之后客户端与宿主都不再持有原文时,那条消息就退回纯文本。

这个槽是抢来的,不是商量来的。 宿主用 conversation.user.text.node 槽的 text key
渲染用户消息正文,本插件顶掉了这一席。浏览器里槽的优先级由 cordis-client-runner 的
facade 分配(guard.ts 的 allocatePriority()),后注册的插件半边天然拿到更小的优先级,
所以赢过宿主的 100;本插件显式传的 priority: 50 只在静态打包路径下才真正生效。两条路
都赢,但这是前提,不是巧合——别指望可以随便调注册顺序。

安装

# 在 DSH profile 里
dsh plugin --profile desktop add github:matata2017/dsh-paste-collapse

要用 github: 这种写法:本插件没有发布到 npm,npm 上的 dsh-paste-collapse
是另一个作者的包。

或者链接本地目录:

{
"dependencies": {
"dsh-paste-collapse": "link:D:\\work\\huanghao\\dsh-paste-collapse"
}
}

插件分两半:宿主端(lib/index.js)负责展开占位符,客户端端(client.js)负责把粘贴
折叠成占位符并画出胶囊。

边界

  • 原文只存在内存里。 宿主用一个普通数组保存粘贴内容,不写磁盘、不上传,宿主进程
    结束后就没了。
  • 宿主重启后原文会丢。 占位符还留在输入框里,但宿主已经不知道原文,发送时占位符
    会原样发给模型。胶囊会把它标成「原文已丢失」。
  • 不省 token。 模型读到的仍然是全文,和直接粘贴一模一样。插件只解决输入框可读性。
  • 宿主不答应就不折叠。 宿主最多问两次,每次最多等 5 秒,也就是最多等 10 秒;还是
    没答应就把粘贴内容按原文插入,绝不丢字。
  • 用户删掉占位符就作废。 客户端会通知宿主,宿主在这一轮用过之后再忘掉这段原文,
    下次同样大小的粘贴重新从裸占位符开始。
  • 发送出去的那一轮不会丢原文。 发送时输入框会被清空,而宿主的展开发生在清空之后,
    所以原文会挺过这次清空:模型读到的是全文,不是占位符。
  • 原文会逐条忘掉。 宿主保留最近交付的 50 段原文,客户端保留最近发出的 100 段,两边
    独立淘汰;更早的会被丢掉,那条消息就退化成纯文本。

与 Codex 的差异

只有两处:

  1. 展开时机。 Codex 在输入框里展开,DSH 在宿主的 agent/pre-step 里展开,也就是模型
    读到这一轮之前。
  2. 占位符的样子。 Codex 只显示纯文本,DSH 在纯文本占位符之上再加一枚胶囊。

测试

node --check lib/marker.js
node --check lib/index.js
node --check client.js
node test/run-tests.mjs      # 66 条:marker 规则 + 客户端 bundle
node selftest/host-e2e.mjs   # 24 条:宿主端到端

test/client-bundle.mjs 在假 window、假 React、假 DOM 里跑 client.js,不用浏览器也能
验证输入框行为;selftest/host-e2e.mjs 在假 Cordis 上下文里跑宿主插件,DSH_HOME 指向
临时目录。

完整验收清单见 VERIFY.md。

许可

MIT

常见问题

6 问
答案由本站依据条目字段整理,不引用上游原文
dsh-paste-collapse 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:matata2017/dsh-paste-collapse` 即可。

dsh-paste-collapse 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-paste-collapse 安全吗?

低风险。

dsh-paste-collapse 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-paste-collapse 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

1 条
不同作者的仓库分开列,请确认你要装的是哪一个
开发与运行时
按星标排序,可作替代方案

rea

rea

L4 · 沙盒安装通过 2.6 万 星

dsh-TUI

dsh-TUI

Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。

L4 · 沙盒安装通过 4,292 星

mirage

mirage

把文件系统与 bash 提供者换成 mirage 虚拟工作区:文件工具与 shell 命令作用于挂载的资源(RAM、S3、Redis、Sla

L3 · 安装规范通过 3,681 星

dashi-taskboard

dashi-taskboard

把当前已安装并运行中的 Codex Taskboard 嵌入 DeepSeek Harness 侧边栏,并通过 Launcher 运行时描述

L4 · 沙盒安装通过 3,311 星

matata2017 的其它插件

1 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。