DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

@woosau/dsh-custom-env

Custom Env

DSH 插件:从“设置”管理 $DSH_HOME/.env

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add @woosau/dsh-custom-env@0.1.10
README兼容性版本

兼容性与来源证明

Custom Env 以 @woosau/dsh-custom-env 发布,当前版本为 0.1.10。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/11/3

版本

0.1.10stable
2026/11/3
0.1.9stable
2026/11/2
0.1.8stable
2026/11/2
查看其余 4 个版本收起版本
0.1.6stable
2026/10/30
0.1.4stable
2026/10/29
0.1.3stable
2026/10/29
0.1.0stable
2026/10/26

相关插件

正在加载相关插件…

最新版
0.1.10
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
221.7 kB
文件数
40
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 1
周下载
0
最近提交
2026/11/3
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

README

dsh-custom-env

English | 中文

Community DeepSeek Harness plugin for managing environment variables in Settings → Environment. Not an official DeepSeek AI product.

Changes apply to the running app right away, and on Windows / macOS also to the user environment so new terminals can see them. Linux user-environment sync is not supported.

Install

Requires DSH with the dsh CLI (desktop or web).

dsh plugin --profile desktop add @woosau/dsh-custom-env
# or: dsh plugin --profile web add @woosau/dsh-custom-env
# or: dsh plugin --profile desktop add github:ownduck/dsh-custom-env

If install fails because Desktop is locking files, quit Desktop first. After install, restart DSH and open Settings → Environment.

dsh plugin --profile desktop remove @woosau/dsh-custom-env

For users

  1. Open Settings → Environment
  2. Edit a row as a draft → Confirm to save, Cancel to discard
  3. Groups (accordion) are UI/plugin labels only — they do not change process.env / OS sync. .env stays NAME=value; group metadata is $DSH_HOME/.dsh-custom-env-groups.json. Create / rename / delete groups from the headers; move a saved row with Move to group
  4. Paste NAME=VALUE lines into an empty row to add or update several variables at once (same names overlay existing rows as drafts and keep their group)
  5. Drag across rows to multi-select, or Ctrl/Cmd+click to toggle; Ctrl/Cmd+C copies selected rows as NAME=VALUE (input text selection still wins when present)
  6. Restore brings back the value from when this app session started
  7. At startup, values are injected into the Host process.env first; writing the user environment (registry / launchctl) is deferred via setImmediate into a child process and is not broadcast. Log off or reboot before other tools need those values
  8. Use Install only when shown, to wire this Host’s dsh command into your user PATH (Windows / macOS)

System-reserved names (such as PATH and names starting with DSH_ / XDG_) cannot be edited here.

When saving a value

You saveVariable does not exist yetVariable already exists
A non-empty valueCreatedReplaced
An empty valueCreated as emptyLeft unchanged

For other plugins (Remote API)

Call the Host customEnv service (ctx.get('customEnv') or injected ctx.customEnv).

Everyday use — by variable name

const env = ctx.get('customEnv')

await env?.setVar('MY_KEY', 'value')              // create → default group; existing keep group
await env?.setVar('MY_KEY', 'value', someGroupId) // also set / move group
await env?.setVar('MY_KEY', '')                   // create only if missing
await env?.removeVar('MY_KEY')

await env?.setVars([
  { name: 'A', value: '1' },
  { name: 'B', value: '', group: someGroupId }, // no-op if B already exists
])
await env?.removeVars(['A', 'B'])

const group = await env?.createGroup('Social')
await env?.renameGroup(group!.id, 'Social media')
await env?.deleteGroup(group!.id, { moveToDefault: true })
await env?.moveEntry(rowId, group!.id)

Reserved names are rejected (batch calls fail entirely). Unknown group ids raise custom-env/invalid-group.

CallPurpose
setVar(name, value, group?)Create/replace by name. Omit group: new → default, existing keep group. Pass group to assign/move
setVars([{ name, value, group? }, ...])Same rules per entry; last duplicate name wins
removeVar(name) / removeVars(names)Delete by name (clears membership)
createGroup(title)Create custom group; returns { id, title }
renameGroup(id, title)Rename custom group (not default)
deleteGroup(id, { moveToDefault })Delete custom group; true moves members to default, false deletes their variables
moveEntry(id, groupId)Move one row (by Settings row id) to another group

Settings UI — by row id

CallPurpose
list()Variables + groups; each entry has groupId
upsert(id, name, value, groupId?)Create (id empty; groupId defaults to default) or update/rename by id (omit groupId to keep group)
deleteEntry(id)Delete that row
restore(id)Restore session-start value, or remove if the row was added later

CLI helpers

CallPurpose
cliStatus()Whether this Host’s dsh CLI is ready / can be installed
cliInstall()Install or repair that CLI entry

License

MIT

相关插件

继续浏览 developer-tools 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Sdk Minimal@deepseek-ai/dsh-sdk-minimal独立的最小 SDK 配置包:JSON-RPC、一个 DeepSeek 适配器、持久化 Shell 和 JSONL 会话Sdk App@deepseek-ai/dsh-sdk-appdsh SDK 配置包:基于 dsh-base 提供 stdio JSON-RPC 服务和进程生命周期管理Experimental Inspector@deepseek-ai/dsh-experimental-inspector用于 Host 调试和 Client Runtime 检查的实验性跨 realm CDP hub