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

@boy_grid/multi-folder-workspace

v0.1.0

Published

Multi-folder workspace for DeepSeek Harness: pick several folders and create one workspace spanning them (directory-flow occupant + extended workspace/sandbox contract)

Readme

@boy_grid/multi-folder-workspace

Multi-folder workspaces for DeepSeek Harness (DSH): one workspace spanning several folders that live in different places. Sessions inside it can read and write every member folder, and the workspace sits in the sidebar next to ordinary single-folder ones.

This package is the plugin half (browser/client) of the feature: the multi-select directory flow plus the member-management UI.

This plugin does not work on a stock DSH install. The feature reaches into several DSH core packages, so it ships together with a patch set for those packages (workspace.paths[], the addMember/removeMember RPCs, onPicked(paths[]), hasMemberManager, multi-root sandbox policy). Install both, or neither. The patch set lives in the repository.

What it does

  • Multi-select directory flow — occupies the directoryFlow slot and replaces the default single-folder picker with a centered browse-and-tick dialog (built on DSH UI primitives; ./.. rows, breadcrumbs, create-folder, a selected-members panel, dark-mode safe).
  • Member management — adds "Manage folders…" to the workspace row menu, driving the same dialog to add or remove members of an existing workspace. Adds go through the uniqueness and non-nesting checks; the last member cannot be removed; removing a member keeps its existing sessions grouped but revokes their write access immediately.
  • Friendly errors — host business errors (workspace-member-nested / -conflict / -not-found / -required, workspace-invalid-cwd) become one localized inline notice instead of a raw error dump.
  • Bilingual UI — ships zh and en locale dictionaries.

Security note

A multi-folder workspace widens the agent's write surface: in workspace-write mode, sessions in the workspace can write to every member folder, not just their own working directory. Paths outside the member set are still denied, and read-only / danger-full-access semantics are unchanged. The patch set modifies DSH's sandbox components (dsh-sandbox, dsh-sandbox-policy, dsh-sandbox-local, dsh-sandbox-windows-acl) to make this possible — review that trade-off before installing.

Install

Install this package together with the core patch set. Full steps: docs/RELEASE.md.

  1. Apply the 10 core patches through pnpm patchedDependencies and pin @deepseek-ai/dsh exactly to the baseline version (currently 0.1.1-rc.2). The repository ships a ready-made consumer-template/ with the patches and a frozen lockfile.
  2. Add this package to the profile bundles, enable directory-picker-browse, and disable the native directory-picker:
- id: directory-picker
  disabled: true
- insert:
    - id: directory-picker-browse
      name: '@deepseek-ai/dsh-host-directory-picker-browse'
    - id: multi-folder-workspace
      name: '@boy_grid/multi-folder-workspace'
  1. Restart dsh web.

Compatibility

| | Version | | --- | --- | | DSH baseline | 0.1.1-rc.2 (pinned exactly — the patches are built against this build) | | Node | >= 22 |

peerDependencies pins the baseline exactly on purpose: an open range would suggest the plugin works against any newer DSH, which it does not until the patch set is rebased.

Uninstalling

Removing the patch set is safe: the records the patched core writes keep a path field pointing at the primary member, so a stock DSH still starts and shows those workspaces as ordinary single-folder ones. It is one-way though — stock DSH drops the paths field the first time it writes a record, so the member set is lost after that. Back up $DSH_HOME/storages/workspace.json first if you want to keep it.

Development

pnpm run bundle     # tsdown build + rolldown emit of the __ModuleLoader__ client half
pnpm run typecheck  # tsc --noEmit
  • Entry points: src/index.ts (host half, service identity only) and src/client.tsx (client half).
  • dsh.client.inject declares dsh-client-runtime / dsh-client-ui-workspace / dsh-client-locale.
  • The published tarball is limited by files to lib/* plus LICENSE.

Documentation

Design, verification and release docs live in the repository's docs/ (written in Chinese): architecture, implementation status, manual E2E checklist, cross-platform testing, release runbook.

License

MIT. The patch set is derived from the MIT-licensed upstream @deepseek-ai/dsh-* artifacts; the upstream copyright notice is kept in the repository's THIRD_PARTY_NOTICES.md.