DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

Simple Auth — DeepSeek Harness 插件(DSH Plugin)
← Plugins
S

dsh-simple-auth

Simple Auth

超轻量 DeepSeek Harness 登录门禁:支持共享密钥或主密钥/访客密钥、经过 ACL 过滤的会话列表,以及仅所有者可用的共享/取消共享悬浮操作按钮。生产环境零依赖。

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

npx -y @deepseek-ai/dsh plugin --profile web add github:lt9/dsh-simple-auth#064074fa9ad428258092072f7b49266ffcc26314
README兼容性版本
Login pageSession sharing

兼容性与来源证明

Simple Auth 以 dsh-simple-auth 发布,当前版本为 0.2.3。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境

README

dsh-simple-auth

Ultra-light login gate for DeepSeek Harness web.

Zero production dependencies. One login field. Optional master / guest keys. Sessions are isolated by default; only the owner can share or unshare; the sidebar list is ACL-filtered; a bottom-right share FAB targets the currently selected session.

Other catalog login gates cover passwords, TOTP, or settings cards. This one stays a shared-key (or per-user key file) gate plus session ACL. Do not stack it with dsh-auth-gate, dsh-webui-auth, dsh-web-startup-auth, or dsh-auth-gateway.

中文说明

Install

dsh plugin --profile web add github:lt9/dsh-simple-auth

If the profile is a pnpm workspace and add fails with ERR_PNPM_ADDING_TO_ROOT:

dsh plugin --profile web add -w github:lt9/dsh-simple-auth

Local checkout:

dsh plugin --profile web add ./dsh-simple-auth

Set the key before restarting dsh. The gate fails closed: if the key is missing, the login page explains that and every other request is denied.

export DSH_SIMPLE_AUTH_KEY='a-long-random-secret'

systemd / Docker: put the same variable in the service Environment / EnvironmentFile. To reuse an existing secret, point keyEnv at that variable instead of copying it:

# $DSH_HOME/cordis.patch.yml  (home layer; replaces this plugin row's config)
- id: dsh-simple-auth
  config:
    keyEnv: EXISTING_SECRET_ENV

Restart the dsh web process, open the UI, enter the key.

dsh --profile web --dump-config should list a row named dsh-simple-auth.

Screenshots

Login

Visitors enter the access key once; optional “remember key on this device”.

Login page

Session sharing (multi-user)

The share panel in the bottom-right targets the currently selected sidebar session. The owner can share with or revoke access for other users; guests can use the session but cannot manage sharing.

Session sharing

Requirements

  • Node.js ≥ 20
  • dsh web profile (tested on @deepseek-ai/dsh@0.1.1-rc.2 and @deepseek-ai/dsh@0.1.2-rc.1; both still expose webServer.server)
  • pnpm on PATH if you use dsh plugin add

What it protects

SurfaceUnauthenticatedAuthenticated
Pages (GET/HEAD)302 → /loginpassed through
APIs / other methods401 JSONpassed through
WebSocket upgradehandshake 401passed through
ScriptsAuthorization: Bearer <key> or X-Api-Keysame as a session

/login and /logout are the only public paths.

Configuration

All keys are optional. Defaults are applied in code (home-layer patch config replaces the whole object, it does not deep-merge).

KeyDefaultMeaning
keyEnvDSH_SIMPLE_AUTH_KEYEnvironment variable that holds the access key
keyFile""If set, read the key from this file (trimmed). Takes precedence over keyEnv
cookieNamedsh_simple_authSession cookie name
sessionTtl604800Cookie lifetime in seconds (7 days)
cookieSecureautoauto follows X-Forwarded-Proto; true / false force the Secure flag
rewriteLoopbacktruePresent authenticated traffic as 127.0.0.1:<port> so dsh’s reverse-proxy Host fence does not 403 privileged APIs
titleDeepSeek HarnessLogin heading
hint(built-in zh/en copy)Login subtitle
remembertrueShow “remember key on this device” (localStorage only; the server still uses the cookie)
rpcMinTimeoutMs120000Floor for AbortSignal.timeout injected into the web index. dsh’s unary RPC default is 30s; large session.history pages over a tunnel abort with The user aborted a request. 0 disables the inject

Never put the key itself in YAML or git.

Multi-user session sharing (0.2+)

When usersFile is set, each login key maps to a user id + name. Cookies sign userId with a separate secret file. Sessions are isolated by default; the current session is the sessionId from DSH RPC (session.history / session.prompt, etc.), and titles come from official session.list. Owners can share that session. Shared users get mutual access but cannot share or unshare. Concurrent session.prompt / session.updateQueue on one session returns 409 session-busy.

[
  { "id": "master", "name": "master", "keyEnv": "DSH_SIMPLE_AUTH_KEY" },
  { "id": "guest", "name": "guest", "keyFile": "/path/to/guest-key" }
]
KeyDefaultMeaning
usersFile""JSON user list; enables multi-user when valid
aclFile$DSH_HOME/simple-auth/acl.jsonSession owner / sharedWith
secretFile$DSH_HOME/simple-auth/secretCookie HMAC secret (auto-created)
legacyOwnermasterOwner for pre-existing sessions on upgrade

Known limitations

  • Sharing a session shares the live agent, not chat text only. Credentials, bash, workspace, and settings remain machine-wide.
  • This is access control, not a substitute for TLS or treating the agent as remote code execution.
  • Catalog listing (when present) is not a security audit.

Disable / uninstall

dsh plugin --profile web remove dsh-simple-auth

Then restart the dsh web process. To disable without uninstalling, stop setting usersFile / keyEnv / keyFile — the gate fails closed.

Security notes

  • Fail-closed: misconfiguration does not leave the UI open.
  • Login attempts are rate-limited per client IP (honors X-Forwarded-For only when the peer is loopback).
  • Sessions are HMAC-signed with the access key (stateless). Rotating the key invalidates every cookie.
  • Authenticated JSON /api responses that look like session.history pages drop assistant/chunk events whose message already closed (dsh #4678) so the browser does not download tens of megabytes of redundant deltas.
  • Do not expose dsh over plaintext on the public internet; use HTTPS and keep cookieSecure: auto.
  • Behind a tunnel, also pass the public origin to dsh: --trusted-host your.example:port (repeatable). This plugin already rewrites Host/Origin to loopback after login; the CLI flag is the documented backup for the /api fence.

Development

node --test

Zero production dependencies. The host half wraps webServer.server request / upgrade listeners (the same approach used by other dsh auth gates) so static files, /api, and sockets are covered even on builds that have no request-gate extension point. On 0.1.2 the web surface also has a browser-session cookie (connection.authorizeIndex); after our login cookie is valid, this plugin skips that second 401 so the SPA still loads without the process launch token. 0.1.1 has no such fence and is unchanged.

License

MIT

any
发布来源
github
Registry 更新时间
2026/9/17

版本

0.2.3stable
2026/9/17
0.2.2stable
2026/9/10
0.2.0stable
2026/9/8

相关插件

正在加载相关插件…

最新版
0.2.3
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/9/17
查看源码 ↗
README Badge

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

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

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

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

相关插件

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

Pocketdsh-pocket把 DeepSeek Harness 装进你的口袋:一个包、一个设置页,手机扫码即同步访问电脑上的 DSH(局域网 + 公网,实时同屏)。DSCODE@toddzheng024/dscode-bundle完整的 DeepSeek 编码代理,支持持久化 shell、Ultra 协作和自动权限审查。Auto Reviewdsh-auto-review针对 DeepSeek Harness 审批请求的第二模型 AI 自动审查:只读审查子代理在审批应答链上决定允许或拒绝,并采用故障关闭回退机制和完整的会话日志审计。Codex Subscriptiondsh-codex-subscription通过 OAuth 在 DeepSeek Harness 中使用 ChatGPT 和 Codex 订阅,支持配额管理、安全重置、网页搜索、图像和快速模式