deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
By default, modern browsers and DeepSeek Harness block key capabilities when accessed over plain HTTP from local IP addresses:
isLoopbackHostname disables plugin cards and switches settings to read-only memory mode outside loopback.crypto.randomUUID() requires a secure context (HTTPS or localhost).navigator.clipboard and getUserMedia are blocked over plain HTTP.127.0.0.1 callers.dsh-lanmode solves these limitations via polyfill injection, a direct TLS bridge, mDNS, local Root CA, and an interactive settings card.
/mobileqr Command & Mobile Pairingsidebar.footer / sidebar.rail) to open an interactive popover with an SVG QR code, LAN/WAN toggle, and copy button./mobileqr chat tool and print an ASCII QR code to stdout on launch./dsh-lanmode/qr and on /dsh-lanmode/health./dsh-lanmode/manifest.json with viewport-fit=cover, apple-mobile-web-app-capable, and theme-color.dsh.local)dsh.local across the local subnet.dsh-lanmode Local Root CA (10-year validity) $\rightarrow$ Server Certificate with SANs for dsh.local, LAN IPs, and localhost.GET /dsh-lanmode/ca.crt for certificate installation on mobile devices. Supports SNI via tlsSites.turn/end and approval/asked session events. Dispatches native push notifications when the tab is hidden (document.hidden).lib/client.js)unlockPrivileged: Master gate for settings & credentials mutation from LAN.lanPin / lanPinRef: Optional PIN protection for privileged operations. LAN PIN supports both plaintext and PBKDF2 digests (pbkdf2$sha512$100000$salt$hash) generated via hashPin(). Brute-force rate limiting enforces a 15-minute lockout after 5 consecutive failed attempts per IP (HTTP 429).adminAllow and guestAllow CIDR rules. Subnets designated under guestAllow are strictly prohibited from mutating system settings or revoking sessions (403 Forbidden)./dsh-lanmode/devices, /dsh-lanmode/tunnel, /dsh-lanmode/api/config) feature fail-closed authorization. GET /dsh-lanmode/tunnel requires administrator verification (403 for guests). Login, config, and tunnel requests stop reading after 64 KiB and return HTTP 413.Sec-Fetch-Site: cross-site) and validate origin headers.scrypt$16384$8$1$salt$hash) via hashAuthPassword(). Verification runs in constant time (timingSafeEqual), with dummy scrypt passes preventing timing attacks. Changing password immediately revokes all other active sessions for that user.hashToken); raw session and cookie tokens are never stored in memory registry, JSON API, or serialized disk files (dsh-lanmode-devices.json and .bak)..bak files are generated atomically using temporary files and atomic rename. Corrupted data files without valid backup engage fail-closed security mode (HTTP 403 for non-loopback traffic) that persists across routine writes and reloads, with automatic recovery from backup if the primary file is missing.lanPinRef, authPasswordRef, tunnelTokenRef) query the provider context fresh per operation across all API endpoints, applying external rotations immediately to subsequent requests without requiring restarts or configuration resaves.parts.translate across Chinese, English, and Russian without exposing raw dictionary keys.h2) bridge support alongside HTTP/1.1 for multiplexed low-latency streaming./api/chat/stream). Streaming traffic never starves static or API responses.trycloudflare.com) and persistent Named Tunnels (tunnelToken / tunnelTokenRef).lanPin (or lanPinRef) is configured, inbound HTTP requests and WebSocket upgrades through Cloudflare tunnels require LAN PIN verification (tunnelPin: true, default). If no PIN is configured, tunnel requests do not challenge a PIN./api/dsh-lanmode/update) with npm registry check and protected admin perimeter.dsh plugin --profile web add @goodandready/dsh-lanmode
cordis.patch.yml)# ~/.dsh/profiles/web/cordis.patch.yml
- id: dsh-lanmode
config:
mode: direct # direct, proxy, or auto
directHost: 0.0.0.0 # defaults to 127.0.0.1
directPort: 3080
mdns: true # dsh.local on LAN
pwa: true # PWA manifest
tls: self-signed # self-signed, files, or off
unlockPrivileged: true # LAN settings access
lanPinRef: "" # PIN secret
tunnelTokenRef: "" # Cloudflare tunnel token
allow:
- 192.168.0.0/16
- 10.0.0.0/8
passwordAuth: false # Password gate
authPasswordRef: "" # Password secret
publicHost: ""
disabledUsers: []
trustedProxyCidrs: []
tlsSites: []
adaptiveCompression: true
MIT © GooDAnDReaDY
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。