npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

soulnet-dsh-sidebar

v0.1.0

Published

SoulMirror sidebar for DeepSeek Harness: replaces dsh's left column and brand with the SoulMirror ones, keeps every stock sidebar seat, and adds new seats (primary nav, header actions) other plugins can fill

Readme

soulnet-dsh-sidebar

The SoulMirror sidebar for DeepSeek Harness (dsh): a dsh bundle that takes over the left column and the brand of the dsh web UI — and nothing else.

  • Same skeleton as the stock column (brand row + fold toggle, New Session, the workspace/session browser, footer actions, Settings, the 56px rail when collapsed), so dsh works exactly as before.
  • Every stock inner seat is declared again — sidebar.brand.mark, sidebar.brand.name, sidebar.workspaces, sidebar.settings, sidebar.footer.action — so ui-workspace, ui-settings and any footer action mount untouched.
  • Two new seats for other plugins: sidebar.nav.primary (navigation rows under New Session; icon-only in the rail) and sidebar.header.action (icon buttons in the brand row, wide only).
  • The SoulMirror icon and wordmark replace the official brand in the sidebar and in the new-session hero (conversation.hero.brand.mark).

How it works

dsh's web UI is a roster of plugin rows (ui-layout, ui-sidebar, ui-brand-official, …). This package's cordis.patch.yml disables the two rows ui-sidebar and ui-brand-official and inserts itself; its browser half registers the layout's sidebar seat (the whole left column) and the three brand seats. No dsh code is forked or patched.

npx -y @deepseek-ai/[email protected] plugin --profile web add soulnet-dsh-sidebar
npx -y @deepseek-ai/[email protected] web --port 3099

Roll back: dsh plugin --profile web remove soulnet-dsh-sidebar — the stock rows come back on their own.

Filling the new seats (from another plugin)

ctx.slots.inject('sidebar.nav.primary', () => ctx.slots.register(
  { name: 'sidebar.nav.primary', id: 'my-entry', order: 10 },
  MyRow,   // receives { wide: boolean } (+ t when the registration has a locale)
))

The inject callback fires only once this sidebar has declared the seat, so a plugin can register into a new seat and a stock one (say sidebar.footer.action) and stay correct on a stock dsh — see how soulnet-dsh moves its SoulMirror entry.

Types for the two seats (SidebarNavPrimaryOwnerProps, SidebarHeaderActionOwnerProps) come from soulnet-dsh-sidebar/client (type-only import; the bundle purity gate erases it).

Layout

packages/sidebar/
├── cordis.patch.yml     disables ui-sidebar + ui-brand-official, inserts soulmirror-sidebar
├── src/index.ts         host half: empty apply (Loader needs a host row)
└── src/client/
    ├── index.ts         registers the `sidebar` seat + the three brand seats
    ├── SidebarRoot.tsx  the column (stock fold state machine + the two new seats)
    ├── brand.tsx        SoulmirrorBrandMark / SoulmirrorBrandName
    ├── brand-assets.ts  the app icon, 128px PNG data URI (dsh/scripts/brand-asset.py)
    ├── slots.ts         SlotMap augmentation for sidebar.nav.primary / sidebar.header.action
    ├── locales.ts       zh/en (`soulmirror-sidebar` namespace)
    └── styles.ts        one <style>, --dsw-* tokens only