dsh-toolkit
Plugins for DeepSeek Harness (dsh): database workbench, S3 storage, OpenTelemetry export and browser control — install one or all in a single package
- Stars
- 0
- Language
- TypeScript
- Created
- Sep 25, 2026
- Updated
- Oct 7, 2026
Introduction
dsh-toolkit
English | 中文
Plugins for DeepSeek Harness (dsh): databases, object storage, observability, browser control, AI subscriptions and a configuration center. All packages share a version and release workflow.
| Package | What it adds | Where it appears |
|---|---|---|
@onenightcarnival/dsh-rdb | Relational database workbench: SQLite / PostgreSQL / MySQL / GaussDB, data grid, structure, SQL editor, db_* tools | Sidebar "Database" |
@onenightcarnival/dsh-s3 | S3-compatible object storage browser: MinIO / OSS / COS / R2, s3_* tools | Sidebar "S3" |
@onenightcarnival/dsh-otel | OpenTelemetry GenAI export to Langfuse and other OTLP backends | Settings → Observability |
@onenightcarnival/dsh-bridge-browser | Browser bridge: browser_* tools driving the user's tabs through the Chrome / Firefox extension | Settings → General → Browser bridge address |
@onenightcarnival/dsh-subscriptions | Codex, ChatGPT and Google Antigravity models, Codex search and image tools | Sidebar "AI subscriptions" |
@onenightcarnival/dsh-config-center | MCP and skill management, dedicated uv / Python environment, common settings of built-in plugins | Sidebar → MCP / Skills; Settings → Environment dependencies / Plugins → Common settings |
@onenightcarnival/dsh-memory | Layered career records, episodes, human corrections, version history and memory_* tools | Sidebar "Memory" |
@onenightcarnival/dsh-toolkit | Integrated package with all seven plugins | Each module's entry point |
dsh-browser-extension | Chrome / Firefox MV3 extension paired with the bridge | Browser side panel |
Runtime compatibility
| Toolkit version | dsh runtime |
|---|---|
| 0.7.x | 0.2.0-rc.2 (workspace pin) |
| 0.6.x | 0.1.7-rc.2 |
| 0.5.x | 0.1.5-rc.2 |
Plugins and hosts use the same runtime line. A mismatch causes typert validation failures and prevents UI loading.
Installation
Every release carries:
| File | Purpose |
|---|---|
onenightcarnival-dsh-toolkit-<version>.tgz | All seven plugins in one install |
onenightcarnival-dsh-rdb-<version>.tgz and the other six | One plugin on its own |
dsh-browser-extension-chrome-<version>.zip | Chrome extension, loaded unpacked |
SHA256SUMS.txt | Checksums |
Installation modes: the integrated toolkit or standalone plugins. The two modes are mutually exclusive.
Desktop app: Plugins → Config center… → Plugins → Install from .tgz, pick the file, restart when prompted.
dsh CLI:
dsh plugin --profile web add file:./onenightcarnival-dsh-toolkit-<version>.tgz
dsh web
Chrome extension: extract to a permanent directory → chrome://extensions → Developer mode → Load unpacked. Local Chrome connections discover the bridge automatically and require no token entry. Firefox requires a source build and token configuration; see browser control.
Module configuration
Module keys, defaults and override examples: integrated package configuration.
Migrating from the standalone packages
Packages use the @onenightcarnival/ scope from 0.5.0. Migration order: remove the old dsh-rdb, dsh-s3 and dsh-otel packages → install their replacements. Connections, credentials and settings remain under ~/.dsh.
Layout
| Path | Responsibility |
|---|---|
packages/{rdb,s3,otel,browser-bridge,subscriptions,config-center,memory} | Seven standalone plugins |
packages/toolkit | Module configuration, host and UI mounting, typert registration |
extensions/dsh-browser | Chrome / Firefox MV3 extension |
benchmark | Playwright comparison benchmark |
docs/browser.md | Browser installation, capabilities, troubleshooting and security boundaries |
scripts/build-plugin.mjs | Shared esbuild configuration for host and client bundles |
scripts/version.mjs | Package, extension manifest and OTel version synchronization |
scripts/package.mjs | Release artifacts and checksums |
scripts/check-runtime.mjs | Runtime version validation |
scripts/smoke-runtime.mjs | Real host validation in an isolated data directory |
Development
Node.js ^22.19 || >=24, pnpm 11. Every command runs at the repository root.
pnpm install
pnpm run build # all packages, in dependency order
pnpm run typecheck
pnpm run test
pnpm run package # dist/: eight tarballs, the extension zip, SHA256SUMS.txt
pnpm --filter @onenightcarnival/dsh-rdb run build # one package
pnpm --filter dsh-browser-extension run build:firefox
Build contract
| Item | Contract |
|---|---|
| Host dependencies | dsh provides @deepseek-ai/*; package build configurations select other dependencies for inlining |
| Subscription authentication | @cortexkit/antigravity-auth-core is a runtime dependency of subscriptions and toolkit |
| Integrated package | Bundles the seven packages' sources directly; typechecking covers the same sources |
| Runtime versions | Pinned through pnpm-workspace.yaml overrides |
Installation validation
- Set
DSH_HOMEto a temporary directory and rundsh plugin --profile web add file:<tgz>. - Start
dsh web --no-open --port 0and exchange the ready log's token URL for a cookie. Each token permits one exchange. - Use the cookie to check
/api/dsh-toolkit/modules,/api/dsh-rdb/profiles,/api/dsh-s3/profiles,/api/dsh-config-center/mcpand/ext/bridge-config.
Same-version file: packages install from the pnpm store cache; repeat validation requires plugin remove before reinstallation.
Release
The release version comes from the v<version> tag:
git tag v<version>
git push origin v<version>
| Stage | Result |
|---|---|
| Install | Dependencies installed from the lockfile |
| Version synchronization | scripts/version.mjs set writes the tag version into packages, extension manifests and OTel PLUGIN_VERSION |
| Validation and build | Typecheck → build → test → package |
| Release | All files in dist/ attached to the matching GitHub Release |
Workflow: release.yml. Artifact versions follow the tag; pnpm version:set <version> synchronizes repository versions. Tags with prerelease suffixes create prereleases; browser manifests retain only the numeric version.
License
MIT. Third-party notices: OTel, Configuration center, Subscriptions, Toolkit.