
Security News
Happy Birthday, Shai-Hulud
It has been one year since Shai-Hulud made its first appearance on npm.
dsh-prompt-history
Advanced tools
DSH web plugin: terminal-style input for the composer — bash-like Up/Down prompt history with prefix search and Ctrl+R, selection toolbar with copy and quote (Codex-style > blockquote), right-click paste, toggleable draggable chat TOC, fully international
DSH Web 输入框的「类 Linux shell」提示词历史 + 终端式复制粘贴插件。
像在终端里一样按 ↑ —— 历史、引用、粘贴,一个插件搞定。
| 表面 | 状态 |
|---|---|
| DSH 版本 | 实测通过 0.1.1-rc.2 / 0.1.2-rc.1 / 0.1.5-rc.1(web profile);节点读取做了跨版本归一化(旧 session.nodes / 0.1.2 legacy.nodes / 2.0.x 桌面 order+store、data.content),桌面 2.0.x 一并兼容 |
| 平台 | 仅 Web GUI(客户端插件;状态存于浏览器本地;无网络请求、无原生代码) |
| Node | >=20 |
| 模型 | 任意(不发起模型请求 —— 纯 UI 行为) |
| 界面语言 | 中文 / English(跟随 DSH 应用语言,设置页可切换) |
dsh-prompt-history 把终端的输入历史搬进 DeepSeek Harness Web 输入框:
history-search-backward 行为),继续按 ↑ 往前翻匹配;↓ 向后翻(含前缀匹配的前向),翻到底时恢复你翻历史之前正在输入的那一行(readline 的 pending-line 行为)。(reverse-i-search)查询`),再按 Ctrl+R 看更早匹配;Enter 采用、Esc 取消并恢复原输入。> 引用块插入输入框(标准 markdown 引用,发送时渲染为引用块)。纯 UI 行为:不产生会话事件、不改变 agent 循环、不发起模型请求。召回/引用的文本只会进入输入框草稿,只有你按 Enter 才会到达模型。
# 1. 把插件装进你的 profile
dsh plugin --profile web add dsh-prompt-history
# 2. 刷新页面即可使用(无需重启服务)
dsh plugin --profile web add dsh-prompt-historymain):dsh plugin --profile web add "github:Xiaofei-fei/dsh-prompt-history#main"(源码检出需先 pnpm run build —— 未构建的 bundle 会拒绝启动)dsh plugin --profile web remove dsh-prompt-history打开 设置 → >_ 终端式输入(存于浏览器本地,修改立即生效):
| 选项 | 默认 | 说明 |
|---|---|---|
| 复制方式(选中文字时) | 工具栏复制 | 工具栏(推荐,点击才写剪贴板)/ 选中即自动复制(终端风格) |
| 跨会话历史记忆 | 关 | ↑/↓ 历史在会话间保持,存于浏览器本地,上限 200 条 |
| 会话目录(Chat TOC) | 开 | 对话左侧显示可拖动的目录把手,可关闭 |
| 右键直接粘贴 | 开 | 关闭后右键恢复浏览器原生菜单 |
↑/↓ 历史始终开启,不随以上开关变化。
user / steering),随消息落地实时追加——与聊天记录严格一致,随会话持久化,刷新页面后依然可用,不需要任何配置或额外存储。@deepseek-ai/* peer 依赖。pnpm install
pnpm run typecheck # tsc --noEmit
pnpm run build # tsc(lib/types)+ tsdown(lib/index.js / lib/invariant.js / lib/client.js)
浏览器半区(src/client/)注册在 conversation.input.right 槽位,构建产物为 DSH __ModuleLoader__ 闭包格式,外部依赖仅 react(其余由浏览器模块表提供)。文案字典在 src/client/locales.ts(zh 为准、en 键位对齐),通过 ctx.locale.register 注册。
插件是一个不可见的 composer 槽位条目:挂一个 document 捕获期 keydown 监听,仅在目标为 composer 输入框、无修饰键、非输入法组合、菜单未打开、会话非忙碌时接管 ↑/↓,通过 inputActions.setDraft 写入历史文本。历史列表由会话快照的 user/steering 节点按 seq 去重追加,浏览位置(index + 待恢复的当前行)保存在组件 ref 中。
FAQs
DSH web plugin: terminal-style input for the composer — bash-like Up/Down prompt history with prefix search and Ctrl+R, selection toolbar with copy and quote (Codex-style > blockquote), right-click paste, toggleable draggable chat TOC, fully international
The npm package dsh-prompt-history receives a total of 261 weekly downloads. As such, dsh-prompt-history popularity was classified as not popular.
We found that dsh-prompt-history demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
It has been one year since Shai-Hulud made its first appearance on npm.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.