Install
Inside DeepSeek Harness, with dsh-market
dsh plugin --profile web add dshmarket
Or from the command line
dsh plugin --profile web add dsh-presets-hidden
Installing runs third-party code with your own permissions — it can read your files, use your credentials and reach the network. Review the source first, and pin a commit (github:owner/repo#sha) when you can.
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.
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, the new-session control is hidden (and the Host default applies) while developer tools are off, or while a "mode selection for new tasks" policy the Host still publishes is off; the settings section shows a notice. DSH
0.1.7-rc.2and later publish no such policy field, leaving developer tools as the only gate. - 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).
Comments
Comments live in GitHub Discussions. Sign in with GitHub to post or react.