Xiaofei-fei/dsh-prompt-history ↗★ 6

dsh-prompt-history

提供终端风格的输入历史与辅助工具 适合习惯使用上下键调用历史输入、需要跨会话记忆的终端用户。

套件
dsh-prompt-history
相容性
待驗證
Harness 依賴範圍
>=0.1.0-rc.6 <0.2.0
Cordis 依賴範圍
^4.0.1
版本
1.2.15
授權
MIT
最近更新
2026年9月15日

同名套件的其他儲存庫

安裝

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Xiaofei-fei/dsh-prompt-history

2. 刷新页面即可使用(无需重启服务)


## 安装与卸载

- **npm 渠道**(已发布版本):`dsh plugin --profile web add dsh-prompt-history`
- **源码渠道**(本地开发,最新 `main`):`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`),随消息落地实时追加——与聊天记录严格一致,随会话持久化,刷新页面后依然可用,不需要任何配置或额外存储。
- **连续重复自动合并**,浏览状态跟随会话切换自动重置。
- **界面国际化**:全部文案(设置、工具栏、提示 pill、会话目录、搜索浮层)跟随 DSH 应用语言(中文 / English)。
- client bundle 压缩后约 12 KB;依赖全部走官方 `@deepseek-ai/*` peer 依赖。

## 已知限制

- **Ctrl+R**:输入框聚焦时 Ctrl+R 被用作反向搜索,**不再触发浏览器刷新**(想刷新先点一下输入框外面)。
- 会话目录会自动向后加载更早的宿主历史(逐页拉取直至完整),因此可定位全部历史位置;↑/↓ 召回仍只针对当前已加载窗口内的消息。
- 纯文本召回:带图片/命令 chip 的消息不参与;召回内容为纯文本。

## 开发

```sh
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 中。

License

MIT

配置

打开 设置 → >_ 终端式输入(存于浏览器本地,修改立即生效):

选项默认说明
复制方式(选中文字时)工具栏复制工具栏(推荐,点击才写剪贴板)/ 选中即自动复制(终端风格)
跨会话历史记忆关↑/↓ 历史在会话间保持,存于浏览器本地,上限 200 条
会话目录(Chat TOC)开对话左侧显示可拖动的目录把手,可关闭
右键直接粘贴开关闭后右键恢复浏览器原生菜单

↑/↓ 历史始终开启,不随以上开关变化。