DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Auth — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
A

@tyler9061/dsh-auth

Auth

dsh web authentication plugin: login protection, automatic logout after inactivity, authentication validity period, settings interface, `dsh web p` password reset

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add @tyler9061/dsh-auth@0.1.7
READMECompatibilityVersions

Compatibility and provenance

Auth is published as @tyler9061/dsh-auth and currently resolves to version 0.1.7. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
npm
Registry updated
8/20/2026

Versions

0.1.7stable
8/20/2026

Related plugins

Loading related plugins…

Latest
0.1.7
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
57.7 kB
Files
7
Surface
web
License
MIT
Source
npm
GitHub
★ 1
Weekly downloads
0
Last push
8/20/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in security-access.

Doctor@linxin666/dsh-doctorTransactional rescue mode for DSH profiles with a supervised launcher, isolated recovery capsule, deterministic repairs, health monitoring, and a local Web recovery consoleMobiledsh-mobileDeepSeek Harness mobile adaptation and secure access plugin, supporting LAN, remote connections, Android App, and mobile browsers.DSCODE@toddzheng024/dscode-bundleA complete DeepSeek coding agent with persistent shell, Ultra collaboration and automatic permission review.Auto Reviewdsh-auto-reviewSecond-model AI auto-review for DeepSeek Harness approval requests: a read-only reviewer subagent decides allow/deny on the approval answerer chain, with fail-closed fallback and full session-log audit.

README

dsh-auth

English | 中文

Authentication plugin for DeepSeek Harness: accessing dsh web requires sign-in (username + password); idle sessions log out automatically; sessions expire after a configurable max age; single sign-on mode; the settings UI changes the username / password / expiry times; dsh web p resets the password and dsh web u changes the username.

  • GitHub: https://github.com/optttt/dsh-auth
  • npm: https://www.npmjs.com/package/@tyler9061/dsh-auth

Install

From npm (recommended):

dsh plugin --profile web add @tyler9061/dsh-auth

From a source directory (development; live-links local code):

dsh plugin --profile web add link:/path/to/dsh-auth

Restart dsh web after installing.

Usage

  • On first start the server console prints the initial username and password (default username admin). Visiting the web UI redirects to /login.
  • Settings > Auth: change username / password, idle logout minutes, session max age (minutes), single sign-on, and sign out.
  • Single sign-on: when enabled, every new login invalidates all other sessions. Kicked clients land on the login page with a warning — "if this was not you, change the password immediately".
  • Forgot credentials: dsh web p prints a new random password (or dsh web p mypass); dsh web u newname changes the username (3-32 chars, letters/digits/_``-).
  • Login history: Settings > Auth lists recent successful logins (IP, time, GeoIP location); the last 50 are kept.

Network access (LAN)

The real server binds 127.0.0.1 only; the plugin runs a reverse proxy on 0.0.0.0:<lanPort> (default 3080, override with DSH_AUTH_PORT) that forwards to loopback and rewrites Host/Origin, so the built-in /api trust fence accepts every request — all /api RPCs (settings, files, SCM, other plugins) work from LAN clients. The auth gateway still protects everything.

  • LAN URL: http://<LAN-IP>:3080 (printed at startup).
  • --host 0.0.0.0 stays rejected by the CLI; use the proxy defaults.
  • The proxy forwards the WebSocket upgrade's first data frame correctly (never as an HTTP request body); either end closing tears down the other, so no half-open tunnels are left behind.

i18n & theme

  • UI strings follow the main client language (zh/en via ctx.locale); the login page follows the browser language.
  • The settings UI uses the main client design tokens (--dsw-alias-*) and adapts to light/dark themes automatically.

Data

Stored in $DSH_HOME/auth.json (default ~/.dsh/auth.json):

  • Password: scrypt salted hash (node:crypto, zero runtime dependencies), AES-256-GCM encrypted at rest. The key lives in $DSH_HOME/auth.key (mode 0600, local only; losing it requires dsh web p to reset). Legacy plaintext data auto-migrates to ciphertext on the next save.
  • Login history: last successful logins (IP, time, GeoIP location; up to 50), saved in loginHistory and shown under Settings > Auth.
  • Sessions: random tokens + HttpOnly/SameSite cookies; idle timeout and max-age expiry are enforced; password/username changes and single sign-on invalidate other sessions and notify the kicked clients; the idle activity timestamp is throttled-persisted so idle timers survive process restarts
  • Username: default admin; change via CLI or the settings UI

Development

npm test        # node:test unit tests

Security notes

  • Auth protects the whole web surface (HTTP/API/WebSocket upgrades pass the gateway)
  • Change the initial password after first login; use HTTPS in production