Back to home@Witherwithwinter

Codinput

Code-editor-style composer for DSH — line numbers, split Markdown preview, six dockable layouts, sends plain-text Markdown

Stars
0
Language
JavaScript
Created
Sep 5, 2026
Updated
Sep 9, 2026
GitHub repo

Introduction

Codinput

中文 | English

npm 版本 DSH 下载量 GitHub Stars License

一个 DSH(DeepSeek Harness)Web 插件:把聊天输入框替换为代码编辑器风格的组件——行号、当前行高亮、编辑/预览分屏、六种可拖拽停靠布局——而底层发送的仍然是纯文本 Markdown 源码,消息格式与普通文本消息完全一致。

特性

  • 编辑器界面:行号、VSCode 式当前行高亮(色带横贯行号栏与编辑区,软换行下按视觉行实测定位)、等宽字体(JetBrains Mono / 自定义)、Tab 缩进、Ln/Col 状态
  • Markdown 编辑 / 预览:两个独立开关,可单开或并排同开;预览复用 DSH 官方 MarkdownText 渲染器;草稿图片以缩略图显示在附件栏,可逐个移除
  • 状态栏控件(样式与 DSH 原生工具行一致):访问权限(Full access 走官方风险确认弹窗)、模型与推理等级、上下文占用环(含 token 分解)
  • 六种布局两两互转:底部 / 左侧 / 右侧停靠、浮动窗、better-sidebar 侧栏标签页;按住标题栏拖动出现投放区提示,落点自动判定;布局切换带 FLIP 形变过渡;尺寸可拖拽调整,偏好全部持久化
  • 触发菜单:行首 / 命令与 @ 文件/会话引用,由官方 InputTriggerController 驱动,鼠标点击与键盘操作均走官方管线(命令芯片、引用序列化照常生效)
  • 主题跟随:样式全部使用 --dsw-* 主题令牌,自动适配 DSH 明暗主题

环境要求

  • DSH ≥ 0.1.1-rc.1
  • pnpmdsh plugin 的安装动作转发给 pnpm 执行)
  • 推荐使用 Chromium 内核浏览器;侧栏标签页模式需安装 dsh-better-sidebar(可选,未安装时右/底停靠退回固定面板)

安装

以下命令均在任意目录执行(--profile web 按你的 profile 名称调整)。

方式一:通过 npm 安装

dsh plugin --profile web add codinput

尚未发布:npm 包将在开源后发布,届时此命令可用(包名以发布时为准)。

方式二:通过仓库安装(当前可用)

# 短格式
dsh plugin --profile web add github:Witherwithwinter/Codinput
# 或完整 git 地址
dsh plugin --profile web add git+https://github.com/Witherwithwinter/Codinput.git

若 pnpm 在安装时提示需要放行构建脚本(allowBuilds),按它打印的键名加入 profile 目录下 pnpm-workspace.yamlallowBuilds 后重跑同一条命令即可(本包无构建脚本,通常不会遇到)。

方式三:本地检出(开发)

git clone https://github.com/Witherwithwinter/Codinput.git
cd Codinput
dsh plugin --profile web add link:.

Windows 下若检出路径含空格,pnpm 的 link 支持不佳——建议检出到无空格路径,或用 mklink /J 建立无空格路径的目录联接后再 add link:<联接路径>

启用与卸载

dsh plugin --profile web update codinput   # 更新
dsh plugin --profile web remove codinput   # 卸载

安装/更新后重启 dsh web 并强刷浏览器页面(Ctrl+F5)即可生效。

使用

  1. 页面加载后,输入框工具行出现 </> Codinput 开关,点击启用;
  2. Enter 换行;Ctrl+Enter(macOS 为 Cmd+Enter)或发送按钮发送纯文本 Markdown 源码,发送后自动清空、行号重置;
  3. 按住标题栏拖动切换布局(左/右/底部停靠、浮动窗、面板标签行),拖拽边缘调整尺寸;
  4. 行首输入 /@ 唤起命令 / 引用候选菜单;
  5. 点击工具行开关或卡片右上角 × 退出,恢复默认输入框(草稿原样保留)。

注意:选中无参数命令(如 /compact/export)会立即执行,这是官方命令决策表的语义;带参数命令(如 /goal)则领取输入框等待你补充参数后手动发送。

设置

DSH 左下角 设置 → Codinput:隐藏行号(自动切换软换行)、发送快捷键(预设或现场捕获自定义组合)、编辑器字体。

已知边界

  • 接管期间,默认输入框的工具行(图片上传、模型选择等)随官方接管语义一并隐藏,一键退出即恢复;
  • @ 文件候选依赖 DSH 工作区文件索引,冷启动或大工作区下首次查询可能等待数秒,且每次按键都会以新关键词重发查询(官方菜单 reducer 语义,与官方输入框同速)。

项目结构

Codinput/
├── package.json          # 双面插件清单:bundle patch(宿主挂载)+ client(浏览器半边声明)
├── cordis.patch.yml      # 挂载声明
├── DEVELOPING.md         # 开发与维护须知(中文)
└── lib/
    ├── index.js          # 宿主半边:纯挂载载体
    └── client.js         # 浏览器半边:全部 UI 逻辑

开发

node --check lib/client.js && node --check lib/index.js   # 语法检查

安装后重启 dsh webGET /plugins/codinput/client.js 应返回 200,首页 boot 清单应包含 codinput

接管机制、停靠几何硬约束与完整浏览器侧验证清单见 DEVELOPING.md(中文)。

许可证

MIT