Browser-side preset visibility and ordering controls for the new-session page.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-presets-hidden
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:tkliuxing/dsh-presets-hidden
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
A browser-side DeepSeek Harness plugin for controlling agent-preset visibility and ordering. It adds search, visibility filtering, per-preset toggles, and reordering under Settings -> Preset Visibility, and replaces the Agent preset selector on the new-session page with the filtered list.
Compatibility:
0.2.xrequires deepseek-harness0.1.7-rc.1or later (engines.dsh: >=0.1.7-rc.1). Use plugin0.1.xwith DSH0.1.5and earlier.From
0.2.1the plugin also supports0.1.7-rc.2, which dropped the Host-side "mode selection for new tasks" policy field and gates preset selection on Developer tools alone. The plugin reads a missing policy field as "selection allowed", so it no longer reports the picker as off.From
0.2.2thepeerDependenciescover both the0.1.7-rc.1and0.2.0-rc.1lines, so DSH0.2.0-rc.xno longer classifies this plugin as incompatible (through0.2.1the peer range was^0.1.7-rc.1, which DSH's plugin compatibility gate rejected at install time and skipped at load time). The 0.2 line is verified through the real install gate, the build, and the full unit-test suite.From
0.2.3the plugin follows upstream's Coding Tools semantics change (issue #2). Since DSH0.2.1-alpha.1,developerTools.enabledis no longer a master switch that hides the whole preset control: it is the Coding Tools switch, and turning it off withholds only the shipped PTC and Minimal presets. The plugin now applies the same rule — PTC and Minimal leave the picker and cannot be switched to, while the control itself stays visible. On older DSH (through0.2.0-rc.2), where the official control still hides entirely when the preference is off, this plugin keeps the control: an intentional divergence, documented under Behavior boundaries.
Behavior boundaries
- Both built-in and custom presets can be hidden and reordered.
- On loopback pages, the visibility list and ordering are volatile fields of the plugin Config, saved to the active profile's
cordis.patch.yml(entry idpreset-visibility); edits apply live and are stored per profile. On non-loopback pages, the current browser’slocalStorageis still used, with the keydsh.presets-hidden.visibility.v1. - Legacy data migrates automatically, once, while the profile stores neither field: after DSH 0.1.7 renames
$DSH_HOME/settings.yamltosettings.yaml.imported, the plugin imports itspreset-visibilitysection into the active profile; legacylocalStoragedata migrates the first time a loopback page opens. - Like the official chip (Coding Tools semantics): with Coding Tools (formerly Developer tools) off, only the shipped PTC and Minimal presets are withheld — they leave the new-session picker and cannot be switched to, while Standard, Creator, and custom presets stay selectable and the control itself stays visible. The settings page marks those two presets as needing Coding Tools. While a "mode selection for new tasks" policy the Host still publishes is off, the whole control is hidden and the Host default applies, as before; DSH
0.1.7-rc.2and later publish no such policy field. - Intentional divergence on older DSH: releases before
0.2.1-alpha.1(including0.2.0-rc.2) treat Coding Tools as a master switch and hide the official control entirely; from0.2.3this plugin keeps the control and withholds only PTC and Minimal. - Move-up and move-down operate on the full list; when search or visibility filtering is active, the reorder buttons are disabled to avoid ambiguous moves across invisible items.
- Newly created custom presets are appended to the end of the existing order; Restore default order reverts to the Host roster order.
- Only the new-session page preset selector is affected. The official Agent Presets management page, session titles, old-session recovery, direct API calls, and plugin diagnostics still use the full list.
- When the currently selected preset of an empty session is hidden, the plugin switches to the first visible preset via the official selection API.
- When all presets are hidden, the new-session page hides the preset control; the Host default preset still applies.
Install
After publishing to npm, install via the DSH plugin mechanism:
dsh plugin --profile web add dsh-presets-hidden
Development
Build and test:
pnpm install
pnpm run check
If you want to develop against a local deepseek-harness checkout, override the relevant @deepseek-ai/* dependencies to local paths via .npmrc or pnpm.overrides in package.json instead of the default registry versions.
Install as a local bundle (Web profile)
Build first, then add the current directory as a local bundle:
pnpm run build
dsh plugin --profile web add /Users/baihaoran/Code/github.com/tkliuxing/dsh-presets-hidden
When using the CLI from the DSH source checkout, change the second command to:
pnpm dsh plugin --profile web add /Users/baihaoran/Code/github.com/tkliuxing/dsh-presets-hidden
Release
- CI:
.github/workflows/ci.ymlrunspnpm run checkon push/PR. - Release: After creating a Release on GitHub,
.github/workflows/release.ymlautomatically builds, tests, and publishes to npm with provenance. npm is configured to use Trusted Publisher, so noNPM_TOKENsecret is required on the GitHub side; the workflow only needs thenpm-publishenvironment andid-token: writepermission.
The package declares dsh.bundle and dsh.client. The Host entry exports a Config with volatile fields, which DSH's settings service serves as the preset-visibility form (the generated Plugins-page form is turned off; edit under Settings → Preset display).
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-task-board★ 9673
Task board for the dsh web GUI: a sidebar multi-column kanban whose cards run in real DSH agent sessions and can also be scheduled with cron expressions, executed host-side even with the browser closed.
zhu1090093659/dsh-web#packages/dsh-web-all★ 9673
Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 6324
A fixed-corner whale widget for the DSH web GUI — balance, today's usage and per-turn cost with peak/off-peak pricing, editable balance-alert and daily-budget bubbles, a module-based custom bubble queue with A/B weighted choices and random lines or images, 30+ vendor templates (OpenAI, OpenRouter, Kimi, SiliconFlow, Ark, Zhipu, MiniMax and more) with per-model balance and subscription quota, plus task-end sound, imported audio, custom roles and a resource manager. Local-only, no telemetry.
ccch1mneyyy/dsh-TUI★ 6018
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
omdsh-dev/DSH-better-sidebar★ 4645
Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.
Devin-AXIS/deepseek-design#deepseek-idesign★ 1607
Visual design studio for websites, app prototypes, posters, cards, reports, and magazines, with templates, direct element editing, selection-aware AI draft handoff, and export.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.