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

@ergon.studio/dsh

v0.1.2

Published

Ergon multi-agent orchestration for DeepSeek Harness: 10-agent team preset, memory steward, debate, scratchpad

Downloads

322

Readme

@ergon.studio/dsh

Ergon multi-agent orchestration for DeepSeek Harness (DSH).

One command turns a DSH profile into the full Ergon experience: a 10-agent team preset, automatic memory recall and saving through a local 4B memory steward, a persistent scratchpad, and two multi-agent tools (debate, run_parallel).

This is a port of the ergon.studio OpenCode plugin to the DSH plugin system. Design notes and the pinned harness contracts live in contracts.md.

What you get

| Piece | How it works in DSH | | --- | --- | | 10-agent team | The ergon agent preset: orchestrator as the session persona + 9 specialist tools (scout, architect, coder, researcher, reviewer, design_reviewer, critic, tester, quality_controller) via dsh-tool-subagent rows, each with its persona and deny-based tool filter. | | debate tool | Two agents alternate on a task until one agrees, blocks, or max turns. | | run_parallel tool | Up to 10 specialists run concurrently (hard cap per call); results are combined per agent (fail-open per task). | | Memory recall | On each user message in a top-level session: local 4B steward rewrites the query → openmemory search → results surfaced as a dynamic prompt context (append-only snapshot, KV-cache friendly). A pre-step fallback re-triggers recall if a user message reaches the step unrecalled; subagent turns never recall. | | Memory save | On completed top-level turns: the steward judges the exchange and stores distilled notes in openmemory. Subagent turns never save (no cost amplification, no corpus noise). | | Scratchpad / handoff | .ergon.studio/scratchpad.md and HANDOFF.md re-read on every prompt assembly (survives compaction) + the matching skills. | | memory_search tool | Explicit semantic search over the memory corpus. |

The plugin mounts at profile level (a DSH bundle: the package declares dsh.bundle, and dsh plugin add registers it as a profile layer), so every session in that profile gets the tools and the memory/scratchpad contexts. The preset itself only carries agent configuration.

All external dependencies are fail-open: a dead steward or memory service degrades to "no memory" — never to a broken session.

Requirements

  • DSH ≥ 0.1.1 (pre-1.0; contracts pinned in contracts.md)
  • Node ≥ 20, pnpm on PATH (used by dsh plugin)
  • For the memory features (optional — everything else works without):
    • ergon-steward.service — a local vLLM instance serving a ~4B "memory steward" model (default http://127.0.0.1:18091)
    • an openmemory store (default http://127.0.0.1:8082)

Install

# from the npm registry (published):
dsh plugin --profile web add @ergon.studio/dsh

That's the whole install. On the next profile boot:

  1. the bundle layer mounts the ergon plugin and sets the session default agent preset to ergon (override per session via the preset picker, or globally in the profile's own cordis.patch.yml — the user layer wins);
  2. the plugin self-installs its agent preset to ~/.dsh/.agent-presets/ergon/ and its skills to ~/.dsh/skills/ (install-only-when-missing; never overwrites a copy you have edited — refresh one with init --force);
  3. new sessions start in the Ergon team.

Existing user presets are left alone; an older preset version still carrying the now-forbidden ergon-plugin row is detected by the CLI validator (init/status) with instructions to regenerate.

To install from a local checkout before publishing:

cd ergon.studio/dsh && npm run build && npm pack
dsh plugin --profile web add ./ergon.studio-dsh-0.1.1.tgz

Configuration

Row config (profile cordis.patch.yml, applied after the bundle layer):

- id: ergon-plugin
  config:
    stewardUrl: http://127.0.0.1:18091   # optional
    stewardModel: ergon-studio-memory-steward  # optional
    memoryUrl: http://127.0.0.1:8082     # optional
    recallTimeoutMs: 5000                # default
    recallLimit: 5                       # default

Precedence: row config → environment → prompts/steward.md (shipped definition) → built-in defaults:

| Setting | Env var | Default | | --- | --- | --- | | stewardUrl | ERGON_STEWARD_URL | http://127.0.0.1:18091 | | stewardModel | ERGON_STEWARD_MODEL | ergon-studio-memory-steward | | memoryUrl | ERGON_MEMORY_URL | http://127.0.0.1:8082 |

CLI

npx @ergon.studio/dsh init [--profile web] [--force]  # (re)install preset + skills, validate, check profile
npx @ergon.studio/dsh status                           # show install state

Uninstall

dsh plugin --profile web remove @ergon.studio/dsh
rm -rf ~/.dsh/.agent-presets/ergon ~/.dsh/skills/handoff ~/.dsh/skills/scratchpad

Restart the profile (removing the bundle restores the standard default preset).

Development

npm run build   # tsc + regenerate presets/ergon from agents/*.md
npm test        # build + node --test (102 tests against dist/)
  • agents/*.md — the 10 agent definitions (roster source of truth); any extra file fails the preset build (it would silently become a spawnable agent)
  • src/plugin.ts — the cordis plugin (tools, recall, save, scratchpad)
  • src/preset-gen.ts — preset generator (validated against the shipped standard preset)
  • presets/ergon/ — generated, checked in
  • cordis.patch.yml — the bundle layer (plugin row + default preset)
  • contracts.md — pinned DSH contracts; re-verify on harness upgrade

License

MIT