ddggkkcc/dsh-stash
随手抽屉 · Handy Drawer — DSH plugin: stash 'later' snippets during AI chats, then pick & ask in place. 低打扰、不打断心流。
Project Overview项目介绍
dsh-stash (workspace name dsh-stash) is a hybrid plugin built specifically for DSH, named after and packaged around the DeepSeek Harness host. It packages a host-side StashService that exposes a stash remote namespace, a storage-domain persistence layer, and a one-shot follow-up channel via ctx.llm.stream, while the client side ships a shell.overlay floating UI together with text-selection capture and a selection-scope resolver which locks the menu to the conversation container via a sentinel probe plus lowest-common-ancestor walk so out-of-scope text never triggers it. The bundle manifest declares it as a bundle-manifest plugin and the project follows an SDD workflow (vision → requirements → spec → plan → implementation → tests) with docs/spec/ treated as the binding contract.
Typical usage has two scenarios. Scenario one — "stash on the fly" — lets the user highlight an unfamiliar keyword, an inspiring snippet, or anything they want to revisit from a chat reply or file read, and silently saves it into the drawer without popups, page jumps, or interruption; the focus stays on the current conversation. Scenario two — "drawer follow-up" — opens an overlay floating window on the same page where the user can pick the current selection, a single drawer entry, or multiple drawer entries, optionally merge them with the input box, and ask a follow-up question with an explicit toggle for whether the current chat context should be joined. This is targeted at heavy AI-chat users who accumulate many side questions during one session and want them parked, not lost or scattered across new tabs.
Dependencies and limits: host code is TypeScript under src/host/, built to lib/host/ by scripts/build.sh; client code is TSX under src/client/, bundled to lib/client.js by npm run build:client using tsdown, both reported zero errors. Installation is performed through the DSH super-injector HTTP API; the team verified inject → self-check (host ✓ / client ✓ / boot manifest registered) → uninstall → reinject end-to-end, with a known injector-side macOS junction-removal quirk documented in scripts/README.md. Status as of the README is M1 core follow-up chain connected on 2026-08-20 and selection-scope plus UI redesign landed 2026-08-22 using a warm-graphite × sage token set; the next step is on-device regression covering AC-1 through AC-5, real LLM follow-ups, and the context-toggle behavior, while the README leaves the license field unspecified so downstream users should confirm licensing before redistribution.
ddggkkcc/dsh-stash(工作包名 dsh-stash)是一款面向 DSH 的混合架构插件,提供"随手抽屉(Stash)"功能:在当前对话页选中片段即可收入抽屉存储,不弹窗、不跳页,需要时再通过页面浮窗就地追问,全程保持低打扰心流。其形态为 DSH hybrid 插件——宿主端 StashService 暴露 stash remote 命名空间、storage-domain 持久化层与 ctx.llm.stream 一次性追问通道;客户端提供 shell.overlay 浮窗 UI、文本选区捕获以及选区归属判定能力。
典型工作流分两步:一是"随手收"——在聊天页面或文件预览中遇到陌生关键词或灵感片段,选中后立即存入抽屉,不打断当前对话;二是"随手抽屉"——从当前选区或抽屉条目中抽取一/多条内容,叠加在浮窗中就地追问,可选"是否加入上下文"以决定是否携带当前对话背景。适合重度使用 AI 问答、需要并行积累待查片段,又不愿频繁切换页面的用户。
依赖与构建:宿主端 TypeScript(src/host/,打包到 lib/host/)通过 scripts/build.sh 构建;客户端 TSX(src/client/,tsdown 输出 lib/client.js)由 npm run build:client 构建,实测零报错。注入通过 DSH super-injector HTTP API 完成,已实测注入、自检、卸载、重注全链路成功。当前状态为 M1 核心追问链路已接通,2026-08-22 完成选区归属判定与浮窗 UI 重做;下一步为真机复测 LLM 追问与 AC-1~AC-5 回归,license 字段在 README 中未声明。
请帮我安装这个 DSH 插件。安装前先完成【兼容性检查 + 安全性检查】,检查通过再动手。
插件:dsh-stash(ddggkkcc/dsh-stash)
仓库:https://github.com/ddggkkcc/dsh-stash
本站详情页:https://www.yhbd.top/plugins/ddggkkcc-dsh-stash/
本站登记:类型 plugin · 归类 原生 DSH 插件 · 许可证未声明 · ⭐ 2 · 最近提交 2026-08-22 · 主语言 TypeScript
按下面顺序执行,每步先把结论告诉我,再进入下一步:
【1 兼容性检查】
① 我这边:DSH 版本、Node 版本、操作系统、当前 profile(web / desktop)。
② 读它的 README、package.json、插件 manifest,列出它要求的 DSH 版本 / Node 版本 / 操作系统 / 外部依赖 / 需要另外先装的运行时。
③ 逐条比对,结论只写「满足 / 不满足 / 未知」三种;不满足的给出可行替代方案。
④ 检查是否和我已装的插件冲突:命令名重复、skill / tool 重名、端口占用、重复注册的 MCP server。
【2 安全性检查】
① 仓库可信度:和上面「本站登记」是否一致;star / fork 数、创建时间、最近提交,是否归档或长期停更。
② 安装脚本:逐行看 package.json 的 preinstall / install / postinstall,以及 install.sh、setup.ps1 之类脚本。出现 curl|bash、下载后直接执行、混淆代码、访问与插件功能无关的域名,立刻停下来告诉我,不要继续装。
③ 依赖:列出新增依赖,标出无人维护、或与知名包拼写近似的可疑包(typosquatting)。
④ 权限与副作用:它会读写哪些目录、访问哪些域名、需要哪些 DSH 权限(filesystem / network / shell / clipboard 等),以及怎么卸载和回滚。
⑤ 如果它要求 sudo / 管理员权限,或权限明显超出功能所需,先停下来问我。
【3 安装】
上面两步没有「不满足」和「高危项」时才执行;用官方推荐方式安装,不要自行提权。
【4 汇报】
用表格输出:检查项 / 结论 / 依据 / 是否需要我决策。拿不准的一律写「未知」并说明要我怎么确认——不要猜,也不要替我决定。
Send this message to DSH in your current session: it verifies compatibility and security first (answering met / not met / unknown item by item) and only installs once everything checks out — it will stop and ask you if it finds a high-risk item. The box scrolls; the copy is the full prompt. CLI install commands may not be accurate across systems, so DSH is the safer route.把上面这条消息直接发给当前会话里的 DSH:它会先核对兼容性与安全性(逐条给「满足 / 不满足 / 未知」),确认没问题再安装,有高危项会停下来问你。框内可滚动,复制到的是完整提示词;安装命令不一定准确,发给 DSH 更稳。
- No license declared - all rights reserved by default; ask the author before commercial use or redistribution未声明开源许可证 —— 默认「保留所有权利」,商用或再分发前先问作者
- Only 2 stars - very few users, little community feedback星标只有 2,几乎没人在用,遇到问题缺少社区反馈
DSH walks through these 9 checksDSH 会逐条核对这 9 项
Compatibility兼容性
- DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
- External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
- Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册
Security安全性
- Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
- Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
- curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
- Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
- Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
- Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式
Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。
Or use CLI install (for developers)或使用命令行安装(适合开发者)
CLI Install命令行安装
dsh plugin --profile web add github:ddggkkcc/dsh-stash
把 ddggkkcc/dsh-stash 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
随手抽屉 · Stash
中文 | English
使用 AI 时随手把「稍后再查 / 再问」的片段收起来放到「抽屉」,需要时直接从「抽屉」里拿出来就地追问 —— 全程低打扰、不打断心流。
工作包名
dsh-stash。
设计原则(最重要)
低打扰、不打断心流。
- 随手收:选中即存,无弹窗、不跳页、不打断当前对话。
- 就地问:追问在当前页面小窗口内完成,不开新页。
- 你只管专注眼前,念头先交给抽屉,稍后再抽出来处理。
这个名字「随手抽屉」就是这套心法的写照——「随手」= 低打扰、顺手;「抽屉」= 收纳,稍后抽出一条/几条就地追问,存与问两个动作都被覆盖。
两个核心使用场景
场景一 · 随手收藏(专注当下)
在当前的聊天页面下,可以通过选取一段文字或词组,添加到一个地方(抽屉)存储起来,专注于当前对话内容。后续再去做额外的对话或问答。
- 触发:查阅信息、调用文件、读回复时,遇到不认识的关键词、有灵感的内容、或任何想稍后再查的片段。
- 动作:选中一段文字或词组 → 收进「抽屉」。
- 效果:低打扰、不打断心流,专注眼前;念头先放一边,之后再统一处理。
场景二 · 随手抽屉(就地追问)
在当前的聊天页面下,可以通过选取一段文字或词组,或者从抽屉中,或者选取一个或多个内容,叠加在当前页面小窗口进行临时追问,追问时可以选择,是否加入上下文。
- 追问来源(可单选 / 多选):
- 当前聊天页面选中的一段文字或词组;
- 抽屉中的一条内容;
- 抽屉中的一条或多条内容。
- 呈现:叠加在当前页面上的小窗口内就地追问,不开新页、不打断心流。
- 关键选项:追问时可选择「是否加入上下文」——加入则带当前对话背景,不加入则只围绕选中内容独立问答。
这是什么
- 一句话:把「此刻不想做 / 需要搜索但想稍后再做」的临时念头收起来,专注当前对话;需要时在页面浮窗里「抽一题」就地追问。
- 解决的问题:用 AI 时经常遇到某个关键词、某段内容触发新灵感,或不理解需要搜索,但此刻不想分心,也不想重新开新页面。
- 形态:DSH 插件(hybrid:宿主 remote + 存储 + LLM;客户端浮窗 UI + 文本选区捕获)。
目录地图(SDD 分区)
| 路径 | 用途 | 存放内容 |
|---|---|---|
docs/vision/ |
项目愿景与原始想法 | 你的原始想法(不压缩)、使用场景 |
docs/requirements/ |
需求规范 | 功能需求 FR / 非功能需求 NFR / 验收标准 |
docs/spec/ |
技术规范(SDD 核心,spec 即契约) | 可行性评估、架构、API 契约、数据模型 |
docs/plan/ |
规划与执行 | 里程碑、代办 backlog、决策记录 ADR |
docs/issues/ |
问题与风险 | 当前待处理问题、风险与对策 |
docs/design/ |
设计稿 | 高保真交互原型、设计令牌参考 |
src/host/ |
代码:宿主端 | remote + storage + LLM 追问(TypeScript) |
src/client/ |
代码:客户端 | shell.overlay 浮窗 + 选区捕获 + 选区归属判定(TSX) |
tests/ |
测试 | 契约测试 / 回归 |
scripts/ |
构建与工具 | build / pack / release 脚本 |
快速导航
docs/vision/idea.md— 原始想法(完整,未压缩)docs/spec/feasibility.md— 可行性评估(结论:完全可行)docs/spec/api-contract.md— 宿主 remote API + 客户端槽位契约docs/plan/roadmap.md— 里程碑docs/issues/open-questions.md— 待决项(2026-08-20 已全部拍板)
Showing the opening section of the README — the full document lives in the repository以上为 README 开头摘要,完整文档在仓库内 · View the full README on GitHub →在 GitHub 查看完整 README →
CocoSgt/dsh-attachments
tower1229/dsh-thinkbar