Preface¶
Below is an introduction to a DSH plugin: alooshxl/dsh-session-pins. It solves a specific problem: pin frequently used sessions in the DeepSeek Harness web sidebar to avoid searching for them again each time.
DSH supports plugin extensions, but this plugin does not replace the host session browser. Instead, it contributes a root-level action through the public sidebar.footer.action slot. This way, the plugin does not patch the host or rely on private UI source code.
What This Is¶
@dsh-external/dsh-session-pins is an MIT-licensed plugin maintained by alooshxl. It targets users and developers who use the DSH web profile: it adds a pinned session menu at the bottom of the sidebar, providing a stable entry point for frequently used sessions.
Pin records are stored locally in the browser’s localStorage and do not depend on API keys or credentials.
Core Features¶
- The action in the wide sidebar displays a pin icon,
Pinned sessions, and the current pin count. - The action in the narrow sidebar is icon-style, with an accessible name and a delayed tooltip.
- The menu supports
Open,Unpin, andBack, showing them where applicable; an empty list has a clear empty state. - A current session that is regular, non-empty, and not a sub-agent session can be pinned; the most recently pinned items appear first; re-pinning an existing id moves it to the front without creating duplicates.
- Empty sessions and current sub-agent sessions cannot be newly pinned; saved ids can still be removed, and failed-to-open sessions are included in the menu with recovery actions preserved.
- Pinned items are stored under
dsh.session-pins.v1inlocalStorageas a versioned ordered id list. Input is validated: invalid records fall back to empty, non-string and blank ids are removed, duplicate ids keep their first occurrence, and a maximum of 100 pinned items is retained. - Same-origin tabs synchronize via the browser
storageevent when the plugin is active; the writing tab updates itself directly. - Pinning, unpinning, persisting, and opening sessions require no API keys or credentials.
- The integration uses public Harness client services and the
sidebar.footer.actionslot, without host patches, monkey patches, or compatibility layers. - In
package.json,dsh.client.platformisweb, anddsh.client.injectincludes@deepseek-ai/dsh-client-runtime,@deepseek-ai/dsh-client-locale, and@deepseek-ai/dsh-client-ui-sidebar.
Installation and Activation¶
The following installation command uses the v0.1.0 Git tag as an example. The README states that the GitHub repository and tags are created during the release step, so you should run the command only after the corresponding release exists.
dsh plugin --profile web add github:alooshxl/dsh-session-pins#v0.1.0
After installation, start the stock web profile:
dsh web
The equivalent explicit startup command is:
dsh --profile web
If upgrading to another Git tag, repeat the add command with the new tag; do not use update to select a Git ref. For example:
dsh plugin --profile web add github:alooshxl/dsh-session-pins#v0.1.1
For an immutable installation, replace the placeholder with the full 40-character commit SHA:
dsh plugin --profile web add github:alooshxl/dsh-session-pins#<40-character-commit-sha>
To remove the plugin:
dsh plugin --profile web remove @dsh-external/dsh-session-pins
Typical Usage¶
In the browser, after starting dsh web, open the menu from the pinned sessions entry at the bottom of the sidebar. When a root row is selected, a drill-down view of the same menu opens; you will see Open, Unpin, and Back where applicable.
To pin the current session, it must be a regular, non-empty, non-sub-agent session; a pinned current session provides Unpin current session.
If you want to develop locally or verify the repository, first prepare the environment. In package.json, packageManager is pnpm@11.7.0, and engines is ^22.19.0 || >=24.0.0.
git clone https://github.com/alooshxl/dsh-session-pins.git
cd dsh-session-pins
pnpm install --frozen-lockfile
GNU Make checkpoints:
make fmt && make test && make lint
The full release-oriented verification commands are as follows. The final git status command should have no output; if generated artifacts drift, it should be considered a failure.
pnpm run build
pnpm run format:check
pnpm run typecheck
pnpm run verify:self-contained
pnpm run verify:package
git diff --check
git status --short --untracked-files=all -- lib
Applicable Scenarios and Notes¶
- The plugin’s compatibility target is
@deepseek-ai/dsh@0.1.0-rc.6. DeepSeek Harness is in developer preview, and new release candidates may break this plugin before a compatibility review. - Browser-local persistence does not sync across devices, browser profiles, browsers, or different origins. If
localStorageis blocked or throws an error, pinned items remain usable in the current page’s memory but will not persist after a refresh. - Workspace archive actions are only executable when
baselinesReady === true,phase === 'ready', andstate === 'idle'; otherwise,Openis omitted, whileUnpinandBackremain. - In DeepSeek Harness
0.1.0-rc.6, selecting an archived id viasessions.open()clears it immediately, and there is no public unarchive action; actionable archived pinned items retain live titles, omitOpen, but can still be removed. - Task 7’s wide/rail manual visual acceptance remains pending and is not declared as completed in this document.
- The plugin does not read credential files, carry temporary browser profiles, or include private Harness source code; pinning, unpinning, persisting, and opening sessions require no API keys or credentials.
- The DSH ecosystem extends through plugins. The third-party plugin directory is an independent site with no official affiliation to DeepSeek or High-Flyer, and it should not be understood as an official app store.
- The plugin runs with the permissions of the current
dshprocess. It is recommended to review the source code, dependencies, license, and actual behavior before installation; this project is licensed under MIT.
Reference Links¶
- Directory page (from the clues in this material): https://www.skillhub.cn/plugins/alooshxl/dsh-session-pins
- GitHub: https://github.com/alooshxl/dsh-session-pins