为 DeepSeek Harness 打造:选中 AI 回答或思考内容,随时追问、学习、检查与纠偏。
48.5/100
综合分
42
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查未通过:仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add kirkchinese/CiteCiter该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · market
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 2 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(dependency_conflict · 2026/10/21) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装仓库 package.json 标记 private,未发布到 npm,需从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包@kirkchinese/dsh-citeciter @ 0.9.0-beta.6
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/30 02:40:11
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 105 处,展示前 24 条)
- 写入本地文件packages/citeciter/lib/index.js:1819
await rename(temporary, destination); - 写入本地文件packages/citeciter/lib/index.js:1845
await writeFile(temp, `${JSON.stringify(value, null, 2)}\n`, { - 删除本地文件packages/citeciter/lib/index.js:1853
await unlink(temp); - 读取本地文件packages/citeciter/lib/index.js:1891
const { schemaVersion: _version, ...summary } = parseRecord(JSON.parse(await readFile(resolve(documentDirectory(this.root, documentId), "document.json - 写入本地文件packages/citeciter/lib/index.js:1913
await mkdir(directory, { - 写入本地文件packages/citeciter/lib/index.js:1917
await writeFile(resolve(directory, "content.txt"), input.content, { - 删除本地文件packages/citeciter/lib/index.js:1930
await unlink(resolve(directory, "content.txt")); - 读取本地文件packages/citeciter/lib/index.js:1945
const record = parseRecord(JSON.parse(await readFile(resolve(directory, "document.json"), "utf8")), documentId); - 读取本地文件packages/citeciter/lib/index.js:1946
const content = await readFile(resolve(directory, "content.txt"), "utf8"); - 删除本地文件packages/citeciter/lib/index.js:1959
await rm(documentDirectory(this.root, documentId), { - 读取本地文件packages/citeciter/lib/index.js:1988
names = await readdir(this.root); - 读取本地文件packages/citeciter/lib/index.js:1995
const { schemaVersion: _schemaVersion, ...summary } = parseRecord(JSON.parse(await readFile(resolve(documentDirectory(this.root, name), "document.json - 读取本地文件packages/citeciter/lib/index.js:2037
const topic = await realpath(this.topicDirectory); - 写入本地文件packages/citeciter/lib/index.js:2046
await mkdir(directory, { mode: 448 }); - 写入本地文件packages/citeciter/lib/index.js:2088
await writeFile(temporary, JSON.stringify(state) + "\n", { - 删除本地文件packages/citeciter/lib/index.js:2095
await unlink(temporary).catch((error) => { - 删除本地文件packages/citeciter/lib/index.js:2102
for (const suffix of ["bin", "json"]) await unlink(await this.file(directory, `${file.id}.${suffix}`)).catch((error) => { - 删除本地文件packages/citeciter/lib/index.js:2185
for (const name of files) await unlink(await this.file(directory, name)); - 执行外部命令固定命令packages/citeciter/lib/index.js:18872
execFile("git", [ - 发起网络请求packages/citeciter/lib/index.js:21421
const response = await this.topics.request({ - 发起网络请求packages/citeciter/lib/index.js:21429
const response = await this.topics.request({ - 发起网络请求packages/citeciter/lib/index.js:21438
const response = await this.topics.request(request, signal ?? new AbortController().signal); - 发起网络请求packages/citeciter/lib/index.js:21461
const response = await this.topics.request(request, signal ?? new AbortController().signal); - 发起网络请求packages/citeciter/lib/index.js:21467
return this.topics.request(citeCiterRequestSchema.parse(rawRequest), signal);
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/cordis-plugin-group@deepseek-ai/cordis-plugin-include@deepseek-ai/cordis-plugin-loader@deepseek-ai/dsh-agent@deepseek-ai/dsh-agent-loop@deepseek-ai/dsh-agent-preset-registry@deepseek-ai/dsh-api-gateway@deepseek-ai/dsh-api-session-controller@deepseek-ai/dsh-api-settings-controller@deepseek-ai/dsh-attachment@deepseek-ai/dsh-client-connection给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
2 张 · 点击查看大图功能亮点
- 选中回答或思考内容
- 随时追问
- 检查与纠偏
README
由 DeepSeek 最新模型翻译生成CiteCiter
English · npm · 更新记录 · 问题反馈
CiteCiter
AI 已经完成了任务,我还想弄明白它是怎么做的。
CiteCiter 是 DeepSeek Harness(DSH) 的插件,帮助你从智能体的真实工作中学习。选中对话、工具结果或文档中的一段内容,在保留来源的独立 Topic 里追问,用小黑板理解关键关系,再回到原来的工作。主对话不会被改动。
CiteCiter 演示
在 B 站观看演示(早期版本录制,界面与当前版本略有不同)。
安装
CiteCiter 需要 DSH 和一个可用的模型。插件声明了 DSH 版本范围,同一条版本线上的后续发布不需要等 CiteCiter 更新;超出范围时 DSH 会拒绝加载,请按 DSH 版本选择对应的 CiteCiter:
| DSH 版本 | CiteCiter 版本 |
| 0.2.0-rc.2 及以上、0.2.2 之前(含官方桌面版,以及 0.2.1 的各个 alpha、rc 和正式版) | 0.9.0-beta.7 |
| 0.1.7-rc.2 | 0.9.0-alpha.3 |
| 0.1.5-rc.1 | 0.8.2 |
| 0.1.2-rc.1 | 0.6.0 |
展开完整文档(README 剩余 1 节)
CiteCiter English · npm · 更新记录 · 问题反馈 CiteCiter AI 已经完成了任务,我还想弄明白它是怎么做的。 CiteCiter 是 DeepSeek Harness(DSH) 的插件,帮助你从智能体的真实工作中学习。选中对话、工具结果或文档中的一段内容,在保留来源的独立 Topic 里追问,用小黑板理解关键关系,再回到原来的工作。主对话不会被改动。 CiteCiter 演示 在 B 站观看演示(早期版本录制,界面与当前版本略有不同)。 安装 CiteCiter 需要 DSH 和一个可用的模型。插件声明了 DSH 版本范围,同一条版本线上的后续发布不需要等 CiteCiter 更新;超出范围时 DSH 会拒绝加载,请按 DSH 版本选择对应的 CiteCiter: | DSH 版本 | CiteCiter 版本 | | 0.2.0-rc.2 及以上、0.2.2 之前(含官方桌面版,以及 0.2.1 的各个 alpha、rc 和正式版) | 0.9.0-beta.7 | | 0.1.7-rc.2 | 0.9.0-alpha.3 | | 0.1.5-rc.1 | 0.8.2 | | 0.1.2-rc.1 | 0.6.0 | 官方桌面版: 在插件页安装 npm 包 @kirkchinese/dsh-citeciter,或在 Git 地址一栏填写 https://github.com/kirkchinese/CiteCiter.git,然后按提示重启。 命令行与 Web: dsh plugin --profile web add @kirkchinese/dsh-citeciter@0.9.0-beta.7 也可以从仓库安装某个发布标签,仓库内已包含构建好的插件,安装时无需构建: dsh plugin --profile web add "git+https://github.com/kirkchinese/CiteCiter.git#v0.9.0-beta.7" 安装或升级后重启 DSH 并刷新页面。不要用 dsh plugin allow-version 强行加载与宿主版本不匹配的插件。同一个 DSH 主目录不要同时运行两个宿主进程。 从一个疑问开始 例如,智能体修改了程序,你想知道"为什么这段异步保存逻辑会影响输入?" 1. 在主对话、工具结果或文档中选中相关内容,旁边会出现 Citer 工具条。 2. 点"解释"直接得到讲解;或者点"提问",来源和选文会作为可移除的附件放进输入框,写下自己的问题后发送。 3. 围绕这段材料继续追问;需要时让模型在小黑板上画出流程,或整理成学习卡。 4. 回到原任务,用代码、工具结果或一次小实验检查自己的理解。 新建 Topic 或选择"提问"只会准备草稿;"解释""翻译"这类预设动作在你点选时发送,也可以在设置里改成先放进输入框。解释和板书仍可能出错;它们帮助你理解和检查,不代替事实证据。 功能 | 你想做什么 | CiteCiter 提供什么 | | 理解一段回答、代码或工具结果 | 带来源引用的独立 Topic,追问不会写入主对话 | | 看懂关系与过程 | 支持 Markdown、公式、表格、SVG、图片和隔离 HTML 的小黑板;支持视觉的模型可以查看渲染后的板书并自行修正;板书还能编排动画,元素按关键帧、路径或公式运动,可以播放、暂停、拖动进度和按步骤跳转 | | 留下可回看的理解 | 可导出、可修订的学习卡,文字与代码示例分开展示 | | 围绕真实文件讨论 | 文件与图片附件;在右侧栏阅读导入的 Markdown / 文本文档和工作区文件,选中即可提问,引用带行号并能回到原文 | | 从理解继续动手 | 复用 DSH 的模型、工具、审批、权限、排队和插话;新 Topic 默认只读 | | 暂停后继续 | 草稿(文字、引用、附件)和未提交的问答自动保存,切换、刷新或重启后恢复,不会自动发送 | 使用说明 工具条与动作。 在主对话的助手回答、你自己的消息、工具结果或文档中选中文字后,旁边出现工具条:第一个动作(默认是"问 Citer")之后是"引用",再往后是其余前三个动作,剩下的动作和"在新 Topic 中提问"在"⋯"里。"引用"把选中的句子作为一个引用胶囊放进主对话的输入框,和 @文件 的样子一样,已有的文字和附件都保留;发送时主智能体收到这段原文和它出自谁(它的回复、你的消息或工具结果),就知道你接下来的话针对哪一句,适合和它讨论或反驳。DSH 0.2.1-rc.2 起,已发送的消息里也显示为引用胶囊。动作默认加入当前打开的 Topic,没有或已归档时新建。在 Citer 自己的回答里选中文字也会出现工具条,动作在这个 Topic 中继续,"引用"会把选段加到这个 Topic 的输入框。"问 Citer"打开输入框让你写问题;"解释""找错误""翻译"等预设动作直接发送,不会改动输入框里已有的草稿。动作的名称、提示词和顺序都可以在设置中修改。喜欢手势的话,可以在设置中开启轮盘:选中文字后按住右键(或设定的键)移向动作,松开即执行。 右侧栏。 Citer 是 DSH 右侧栏里的一个标签页,可以从侧栏的指引页、桌宠或工具条打开,和文件、终端、其他插件的标签并排、分屏、悬浮或全屏,关闭标签即收起。更喜欢以前那种独立面板的话,在设置 → Citer → 面板中打开「不使用 DSH 右侧栏」。界面语言跟随 DSH 的语言设置(中文或英文),默认动作的名称和提示词也随之切换,你改过的动作保持原样。Topic 在输入框下方显示自己的用量:token 数、缓存命中率和上下文占用。 文档。 在 Citer 的空状态点「打开文档」,或在 Topic 列表的「文档」页导入 .md / .txt 文件,文档会在右侧栏的标签页里打开:Markdown 正常排版(标题、列表、代码块、公式),文本和代码带行号,长文档边滚动边显示。选中文字就会出现同样的工具条,「问 Citer」「解释」「引用」都可以用。从文档提问的 Topic 在引用下方显示「文档名 · 第 N 行」,点「打开原文」回到那一段并短暂高亮。工作区里的文件用 DSH 自己的文件预览打开,在视图菜单中选「Citer 阅读」即可同样选文提问,提问时会把文件快照存入 Citer 的文档。文档列表在 Topic 列表的「文档」页,可以搜索和删除;删除只移除文档本身,相关 Topic 的对话保留。不使用 DSH 右侧栏时,文档在 Citer 面板的页签里打开。 桌宠。 Citer 收起时,她会扒在窗口边缘探头;鼠标靠近时站起来,点一下就打开 Citer。可以把她拖到左边或右边的任意高度,位置会被记住。收起期间有回答完成,或有问题在等你回答时,她旁边会出现一个小圆点。 输入。 输入框依次提供附件、权限模式、模型与思考强度、发送。Enter 发送,Shift + Enter 换行,输入法组词时 Enter 不会发送。生成过程中 Enter 跟随 DSH 的排队/插话设置,Ctrl + Enter 临时使用另一种方式。可以从附件菜单选择文件、粘贴图片,或把文件拖到 Citer 面板上。 草稿。 草稿在后台静默保存。多个窗口编辑同一个 Topic 时,各自的修改会自动合并;同一处有冲突时,以正在输入的窗口为准。发送成功后只清除已发送的部分,发送期间新写的内容会保留。 来源与代码库。 每个 Topic 都知道自己属于哪个主对话,即使没有引用任何内容,Citer 也能随时读取它(只能读这个主对话)。看到的是带位置标记的对话记录:用户与助手的消息、工具调用和结果;过长的工具输出先缩短,需要时再读全文。在设置中开启「自动附上来源摘录」后,每轮开头会附上来源最近的新内容,默认关闭。「代码库变化感知」在每轮开头列出上一轮以来 git 工作区(含未提交的改动)改了哪些文件,Citer 需要时再用工具读取逐行改动;也可以在设置中改为直接附上 diff,或者关闭。这些内容都记录在 Topic 里,像 DSH 主对话一样显示为可展开的上下文行,展开即是模型收到的原文;它们不会写入你的仓库。运行环境、时间等其他上下文和 DSH 一样默认不列出,可以在 Topic 菜单中选择「显示全部上下文」查看。Topic 中的工具调用也使用 DSH 的样式:读取文件带行号,编辑显示为 diff,命令显示输出和退出码。 学习路线与学习卡。 学习路线默认关闭,可以在 Topic 菜单(⋯)中开启;开启后,模型会根据问题用 DSH 待办安排讲解步骤。学习卡可以随时单独请求,生成前模型会核对结论、条件和计算,但自查不能保证正确。主动回忆默认关闭,开启后学习卡先显示自测问题。 Codex Connect。 CiteCiter 适配了社区插件 Codex Connect(dsh-codex-connect)。在同一个 Profile 中安装并开启它之后,Topic 可以使用它接入的 ChatGPT / Codex 模型和 GPT Image 图片工具,生成的图片直接显示在工具卡下方。图片工具需要在 Codex Connect 的设置中单独开启;它的安装、登录和支持的 DSH 版本请见该插件的说明。 权限与数据 新 Topic 默认只读,即使来源会话拥有更高权限。只有你在输入框中选择其他权限模式,或在设置里修改新 Topic 的默认权限后,Topic 才能修改工作区;DSH 的审批和沙箱规则照常生效。 Topic 只出现在 Citer 的列表里,不会出现在 DSH 的会话列表中。新 Topic 先以引用摘录或问题为标题,第一次回答时由 DSH 的标题服务生成摘要标题;双击标题、按 F2 或在 Topic 菜单中重命名,重命名后不再自动修改;归档的 Topic 在你再次发送消息后自动恢复。永久删除需要输入完整的 Session ID,只删除这个 Topic 自己的记录、草稿、附件和代码库快照。 新 Topic 使用设置中「新 Topic 的模型」,未设置时沿用来源对话输入框里当前选择的模型。如果这个模型在当前 DSH 中不可用(例如设置是在另一台机器上配置的),Topic 照常创建,引用和草稿都保留,Citer 会提示你在模型菜单中换一个可用的模型,不会自动换模型或发送。 CiteCiter 的数据保存在每个来源会话的目录中: .dsh/sessions/<workspace>/<sourceSession>/ ├── session.v4.jsonl[.zstd] DSH 管理的主会话(Citer 不会改动) └── citeciter/ ├── owner.json 目录归属 ├── <topicNumber>/ │ ├── topic.json Topic 信息 │ ├── draft/ 未发送的文字、引用和附件 │ ├── question-drafts/ 未提交的问答 │ ├── workspace/ 代码库变化感知的快照(独立的 git 对象) │ └── sessions/ Topic 自己的会话日志 └── deleted/ 删除记录(只含身份,不含内容) 0.8 之前版本创建的 Topic 会在启动时自动迁移到这个目录,原始日志保留不动。 已知问题 - Windows 上,只读模式下的 PowerShell 可能报语言模式错误或输出中文乱码。这是 DSH 执行器在只读沙箱中的限制,CiteCiter 不会为此放宽权限。 - 官方桌面版重启后,仍连接着旧后台的其他浏览器标签页可能白屏,刷新即可恢复;停用 CiteCiter 时同样会出现。 - 在同一个浏览器地址上先后使用不同版本的 DSH,宿主自己保存的草稿格式可能不兼容,导致主对话无法显示;不同版本请使用不同的地址或端口。 - 插件主要在 Windows 上测试;Linux 与 macOS 未经系统测试,遇到问题欢迎反馈。 为什么做 CiteCiter 实践通常同时产生两样东西:成果和能力。我们通过尝试、犯错、比较方案和验证,逐渐形成判断。AI 可以接手越来越多的执行,却不会自动把相应的理解交给使用者,任务完成与人的成长可能因此分离。 CiteCiter 尝试把真实的 AI 工作过程变成可引用、可追问、可检验的学习材料。从眼前的一个疑问出发,理解原理、查看证据,再带着新的认识继续工作。即使把执行交给智能体,人仍需要提出目标、理解关键条件、判断结果是否适用,并在出现异常时接管。 反馈 欢迎带着「智能体已经完成了,但我还讲不清」的任务来反馈。请写明 DSH 和插件版本,以及卡在安装、引用追问还是理解回答。贴材料前请移除密钥和私人内容。 开发说明见 CONTRIBUTING.zh.md,产品规则见 docs/product.zh.md。同作者的 Claude2DSH 用于在 Claude Code 与 DSH 之间迁移会话和资产。 MIT License.
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
kirkchinese/CiteCiter
为 DeepSeek Harness 打造:选中 AI 回答或思考内容,随时追问、学习、检查与纠偏。
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,025未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,358已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13938 个插件含 PR 收录与…
★ 350已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7