编辑中文系统提示词,一键切换极简助手预设
29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/9 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add GemChance/dsh-chinese-minimal-mode该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · skill
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 24 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 91 处,展示前 77 条)
- 读取本地文件index.mjs:131
return JSON.parse(readFileSync(new URL('./package.json', import.meta.url), 'utf8')).version - 读取本地文件index.mjs:228
return readFileSync(starterPromptFile(directory), 'utf8') - 读取本地文件index.mjs:243
return { ok: true, path, text: readFileSync(path, 'utf8') } - 读取本地文件index.mjs:285
packagedPromptCache = readFileSync(join(packagedPresetDir(), 'prompt.md'), 'utf8') - 读取本地文件index.mjs:377
if (!existsSync(composition)) return { ok: false, code: 'compositionMissing', params: { path: composition }, error: '找不到组成文件:' + composition } - 读取本地文件index.mjs:378
const text = readFileSync(composition, 'utf8') - 删除本地文件递归index.mjs:893
rmSync(created.dir, { recursive: true, force: true }) - 发起网络请求client.js:898
return asJson(await fetch(ROUTES.list, { method: "GET", headers: { accept: "application/json" } })) - 发起网络请求client.js:904
await fetch(ROUTES.state + "?id=" + encodeURIComponent(id), { - 发起网络请求client.js:914
await fetch(url, { - 发起网络请求client.js:1563
const response = await fetch(ROUTES.history + "?id=" + encodeURIComponent(draft.id) + "&n=" + encodeURIComponent(picked)) - 写入本地文件atomic.mjs:66
writeFileSync(temporary, text, 'utf8') - 删除本地文件atomic.mjs:78
rmSync(staged.temporary, { force: true }) - 读取本地文件atomic.mjs:122
if (existsSync(file) && statSync(file).isDirectory()) { - 读取本地文件atomic.mjs:122
if (existsSync(file) && statSync(file).isDirectory()) { - 读取本地文件atomic.mjs:141
if (existsSync(one.file)) { - 删除本地文件atomic.mjs:158
rmSync(one.file, { force: true }) - 删除本地文件atomic.mjs:179
rmSync(backup, { force: true }) - 读取本地文件atomic.mjs:211
entries = readdirSync(directory) - 读取本地文件atomic.mjs:217
if (existsSync(file)) continue - 写入本地文件atomic.mjs:221
renameSync(join(directory, backups[0]), file) - 写入本地文件atomic.mjs:231
writeFileSync(temporary, text, 'utf8') - 删除本地文件atomic.mjs:235
rmSync(temporary, { force: true }) - 读取本地文件preset-backend/index.mjs:50
if (!existsSync(file)) return {} - 读取本地文件preset-backend/index.mjs:52
const parsed = parseComposition(readFileSync(file, 'utf8')) - 读取本地文件preset-backend/index.mjs:147
return statSync(dir).isDirectory() && existsSync(join(dir, SEED_MARKER)) - 读取本地文件preset-backend/index.mjs:147
return statSync(dir).isDirectory() && existsSync(join(dir, SEED_MARKER)) - 读取本地文件defaults.mjs:22
if (!existsSync(join(home, '.agent-presets', presetId, 'prompt.md'))) { - 读取本地文件defaults.mjs:26
if (!existsSync(file)) { - 写入本地文件defaults.mjs:27
mkdirSync(home, { recursive: true }) - 读取本地文件defaults.mjs:31
const text = readFileSync(file, 'utf8') - 读取本地文件composition.mjs:910
if (existsSync(join(root, '@deepseek-ai')) === false) return [] - 读取本地文件composition.mjs:917
for (const entry of readdirSync(join(root, '@deepseek-ai'))) { - 读取本地文件composition.mjs:919
if (existsSync(join(nested, '@deepseek-ai'))) roots.push(nested) - 读取本地文件composition.mjs:965
? roots.some((each) => existsSync(join(each, pkg))) - 读取本地文件meta.mjs:132
text = readFileSync(presetMetaPath(directory), 'utf8') - 读取本地文件journal.mjs:57
if (!existsSync(file)) return [] - 读取本地文件journal.mjs:60
raw = readFileSync(file, 'utf8') - 读取本地文件seed.mjs:119
if (!existsSync(sourceDir)) { - 写入本地文件seed.mjs:123
mkdirSync(presetDir, { recursive: true }) - 读取本地文件seed.mjs:132
if (existsSync(target)) { - 读取本地文件seed.mjs:134
if (REFRESHABLE_MODULES.includes(name) && existsSync(source)) { - 读取本地文件seed.mjs:136
const shipped = readFileSync(source, 'utf8') - 读取本地文件seed.mjs:137
if (readFileSync(target, 'utf8') !== shipped) { - 读取本地文件seed.mjs:161
if (!existsSync(source)) { - 读取本地文件postures.mjs:70
return readFileSync(join(DIR, id + '.' + lang + '.md'), 'utf8') - 读取本地文件postures.mjs:72
return readFileSync(join(DIR, id + '.' + (lang === 'zh' ? 'en' : 'zh') + '.md'), 'utf8') - 读取本地文件assistants.mjs:74
return existsSync(seedMarkerPath(root)) - 写入本地文件assistants.mjs:92
mkdirSync(root, { recursive: true }) - 写入本地文件assistants.mjs:93
writeFileSync(seedMarkerPath(root), JSON.stringify({ seededAt: new Date().toISOString() }) + '\n', 'utf8') - 读取本地文件assistants.mjs:103
if (!existsSync(join(dir, 'prompt.md'))) return false - 读取本地文件assistants.mjs:104
if (existsSync(join(dir, 'prompt-reader.mjs'))) return true - 读取本地文件assistants.mjs:108
return readFileSync(join(dir, COMPOSITION_FILE), 'utf8').includes("'./prompt-reader.mjs'") - 读取本地文件assistants.mjs:126
children = readdirSync(root, { withFileTypes: true }) - 读取本地文件assistants.mjs:268
if (existsSync(dir)) return { ok: false, code: 'dirExists', params: { path: dir }, error: `目录已存在:${dir}` } - 删除本地文件递归assistants.mjs:276
rmSync(dir, { recursive: true, force: true }) - 写入本地文件assistants.mjs:292
writeFileSync(join(dir, COMPOSITION_FILE), composition, 'utf8') - 读取本地文件preset-backend/declarative.mjs:108
if (!existsSync(file)) return null - 读取本地文件preset-backend/declarative.mjs:109
const rows = parseComposition(readFileSync(file, 'utf8')) - 写入本地文件preset-backend/declarative.mjs:188
renameSync(target, trash) - 写入本地文件preset-backend/declarative.mjs:199
renameSync(trash, target) - 删除本地文件递归preset-backend/declarative.mjs:205
rmSync(trash, { recursive: true, force: true }) - 读取本地文件base-composition.mjs:105
const text = readFileSync(file, 'utf8') - 读取本地文件base-composition.mjs:241
if (!existsSync(candidate)) continue - 读取本地文件base-composition.mjs:291
if (BASE_MODE_IDS.some((mode) => existsSync(join(presets, mode + '.patch.yml')))) return presets - 读取本地文件preset/prompt-reader.mjs:64
info = statSync(this.path) - 读取本地文件preset/prompt-reader.mjs:73
const next = readFileSync(this.path, 'utf8') - 读取本地文件preset/prompt-tool.mjs:125
for (const line of readFileSync(META_PATH, 'utf8').split('\n')) { - 读取本地文件preset/prompt-tool.mjs:184
return '当前系统提示词(' + PROMPT_PATH + '):\n\n' + readFileSync(PROMPT_PATH, 'utf8') - 读取本地文件preset/prompt-tool.mjs:196
current = readFileSync(PROMPT_PATH, 'utf8') - 写入本地文件preset/prompt-tool.mjs:208
mkdirSync(dirname(PROMPT_PATH), { recursive: true }) - 写入本地文件preset/prompt-tool.mjs:236
mkdirSync(dirname(PROMPT_PATH), { recursive: true }) - 删除本地文件preset/prompt-tool.mjs:328
if (gateReady) rmSync(join(dirname(PROMPT_PATH), GATE_MARKER), { force: true }) - 写入本地文件preset/prompt-tool.mjs:329
else writeFileSync(join(dirname(PROMPT_PATH), GATE_MARKER), 'this host has no tools/pre-execute event\n', 'utf8') - 写入本地文件preset/prompt-tool.mjs:354
renameSync(from, to) - 写入本地文件preset/prompt-tool.mjs:368
writeFileSync(temporary, text, 'utf8') - 删除本地文件preset/prompt-tool.mjs:372
rmSync(temporary, { force: true })
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 编辑系统提示词
- 一键切换极简预设
DeepSeek Harness 极简预设,系统提示词用 Markdown 写,可随时改
README
由 DeepSeek 最新模型翻译生成DSH 中文极简自定义模式
完整保留 dsh-custom-mode 的设置页:可以手动编辑系统提示词、切换基础模式、开关插件行并管理多个助手。本分支只修改首次安装默认值:基础模式为极简模式,完整系统提示词为 你是一个中文助手。
安装
从 GemChance 的 GitHub 稳定版本安装:
dsh plugin --profile web add https://codeload.github.com/GemChance/dsh-chinese-minimal-mode/tar.gz/refs/tags/v2.3.0
重启为这个 profile 提供服务的进程。设置页上的版本号才是正在运行的版本。
桌面端从应用里的插件页安装。CLI 不能改 profiles/desktop。
在 Windows 上,install.sh 是 bash,而且 PATH 里要有 dsh。否则用 DeepSeek Harness 自带的 dsh,或 node node_modules/@deepseek-ai/dsh/lib/bin.js。
使用
1. 打开设置 → 自定义模式。
2. 改系统提示词。保存按钮在编辑器下面。
3. settings.yaml 里还没有 agent-presets.default 时,新会话用这个助手。已经写过的值保持原样。
展开完整文档(README 剩余 1 节)
DSH 中文极简自定义模式 完整保留 dsh-custom-mode 的设置页:可以手动编辑系统提示词、切换基础模式、开关插件行并管理多个助手。本分支只修改首次安装默认值:基础模式为极简模式,完整系统提示词为 你是一个中文助手。 安装 从 GemChance 的 GitHub 稳定版本安装: dsh plugin --profile web add https://codeload.github.com/GemChance/dsh-chinese-minimal-mode/tar.gz/refs/tags/v2.3.0 重启为这个 profile 提供服务的进程。设置页上的版本号才是正在运行的版本。 桌面端从应用里的插件页安装。CLI 不能改 profiles/desktop。 在 Windows 上,install.sh 是 bash,而且 PATH 里要有 dsh。否则用 DeepSeek Harness 自带的 dsh,或 node node_modules/@deepseek-ai/dsh/lib/bin.js。 使用 1. 打开设置 → 自定义模式。 2. 改系统提示词。保存按钮在编辑器下面。 3. settings.yaml 里还没有 agent-presets.default 时,新会话用这个助手。已经写过的值保持原样。 首次安装会创建“自定义模式”,默认选中极简模式,并把 prompt.md 初始化为 你是一个中文助手。之后所有内容都可以继续在设置页手动修改,升级不会覆盖已有用户数据。 提示词是 prompt.md。下一步组装模型输入时会重读这个文件。历史可以把旧稿载入编辑器;载入不落盘。打开页面之后文件被改过时,这一次保存会被拒绝。模型要改同一份文件,只能走 custom_prompt,并且先问过你。 页面分成两支。当前助手改的是已经打开的这一位,基础模式五档都可以点。新建助手只在点「新增助手」时写入:开发、写作、聊天可以点,工具底只有官方标准模式是亮的。其余四档是暗的,在这一支里点不了。 | 姿态 | 新建之后 | | 开发 | 官方标准模式,工具按出厂。 | | 写作 | 官方标准模式。终端关,文件工具开。 | | 聊天 | 官方标准模式。文件和终端关。 | 边界 - 不替换标准、PTC、极简、创造。 - 不附带角色扮演预设。 - 不用 CLI 改桌面端 profile。headless 不会启动使用 agent preset 的会话。 兼容 声明范围:>=0.1.5-rc.2 <0.2.0-0 || >=0.1.6-alpha.1 <0.2.0-0 || >=0.1.7-alpha.1 <0.2.0-0 || >=0.2.0-0 <0.3.0-0 || >=0.2.1-alpha.1 <0.3.0-0 | dsh | 声明 | 2.3.0 核对 | | 0.2.0-rc.2 | 声明支持 | 本版发布前的 Windows web profile | | 0.2.1-alpha.1 | 声明支持,CI 有这条腿 | 本版没有重跑 | | 0.1.7-rc.2 | 声明支持,CI 有这条腿 | 本版没有重跑 | 单元套件在 WSL2 Ubuntu 26.04 下也通过了(只有 Node,没有 dsh 进程,没有浏览器)。这不是 Linux 桌面的结果。 文档 - docs/TROUBLESHOOTING.zh.md — 装到旧版、基础模式不可用、升级停在半截 - docs/ARCHITECTURE.zh.md — 提示词在哪被读,依赖宿主的哪些调用 - docs/PUBLISHING.zh.md — tag 与发布 - CONTRIBUTING.zh.md — 给人看 - AGENTS.md — 给 agent 看 许可证 MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
GemChance/dsh-chinese-minimal-mode
编辑中文系统提示词,一键切换极简助手预设
相关插件 · 技能 / 提示词
人设统管ZiChuanLan/agent-purge
一份系统提示词,喂给多个 coding…
★ 931已汉化DSH
73.8
人物画像蒸馏titanwings/distilly
Distilly — 把他们的思考方式提炼成可复用的技能,供任何智能体或机器人使用。原名 Colleague Skill(原同事 Skill)。
★ 25,659已汉化DSH
71.3
推理工作空间套件Tiger3807861189/J-Space-Cognition-Suite
J-Space 是面向复杂推理、大型仓库工程、子代理协作与授权安全分析的推理时工作空间和控制套件。
★ 2,957已汉化DSH
70.5
两阶段工具锚定预设xiaobright/dsh-anchored-standard
实验性 DeepSeek Harness agent preset…
★ 3,742已汉化DSH
70.1
智能体工作流编排nrslib/takt
不再日夜盯着 AI 编码智能体。
★ 1,402已汉化DSH
70
Agent 运行时手册Electricitysheep/dsh-handbook
DeepSeek Harness dsh 从 0 到 1 深度手册:安装/插件开发/性能调优/实测案例/同模型多…
★ 827已汉化DSH
68.7