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

@rs-dsh/dsh-threads

v0.5.0

Published

Comment on any passage of a DSH Web conversation and get a brief reply from the session's own model in a small thread next to it, without touching the main chat.

Readme

@rs-dsh/dsh-threads

Comment on any passage of a DeepSeek Harness conversation. The passage stays highlighted, and the session's own model replies briefly in a small thread next to it, without touching the main chat.

A highlighted sentence in a reply, with its thread open: the comment "Why 10 minutes and not an hour?" and a short AI reply

Formerly @rs-dsh/dsh-comment. If you installed @rs-dsh/dsh-comment, remove it and add this package instead. Threads you saved with it keep showing.

Install

dsh plugin --profile <name> add @rs-dsh/[email protected]

Then reload the DSH web page.

To install from this repository instead, pinned to the release tag:

dsh plugin --profile <name> add 'github:romany-saad/dsh-plugins#[email protected]&path:packages/dsh-threads'

The package adds itself, and the shared rs-dsh core it is drawn with, to the profile. Do not also add dsh-threads or dsh-core to the profile's own cordis.patch.yml.

Requirements

  • DSH 0.2.1-rc.2 or later. It is tested with 0.2.1-rc.2.
  • A profile with the web GUI (@deepseek-ai/dsh-web-app), such as web. The plugin works in the web GUI only.
  • A browser with the CSS Custom Highlight API: current Chrome, Edge, Safari or Firefox.

Use

Comment on a passage

Select text in a reply, in your own message, or in an expanded reasoning block, and press Comment.

The Comment button above a selected sentence in a reply

Type your comment and press Enter. Shift+Enter starts a new line, and Esc cancels.

The comment box over the conversation, showing the selected passage and a typed question

The reply

The thread opens next to the passage and shows Thinking… until the reply arrives, usually within a few seconds. The reply comes from the model and effort the session uses now. It starts from the passage, the message it is in and that turn's prompt, and reads more of the session when your question needs it.

The replier only reads. When your question needs more than the conversation, it can:

  • read the session: other turns, tool calls and their results;
  • read files in the session's working directory: open a file, list a folder, find files by name, and search their contents. It sees the files as they are now, which may differ from what the agent saw then;
  • search and fetch the web, if you turn it on (see Configure).

It cannot change files, run commands or act in the session, and the agent in the main chat does not see the thread. To have the agent act on it, use Send to chat (below).

Each thread is its own small conversation: type a follow-up in the thread and press Enter. By default, a thread holds five comments from you; you can change that limit under Configure.

Highlights

Commented passages stay highlighted, with a speech-bubble badge in the margin that counts the thread's messages. Click the highlight or the badge to open the thread. When an AI reply arrives while its thread is closed, the badge fills in and shows a dot until you open the thread again; this is remembered per browser. A highlight in a reasoning block shows while the block is expanded.

Two highlighted passages, one in a sent message and one in a reply, each with a badge in the margin

Send to chat

Send to chat puts the thread in the message box as a chip. Add your instruction and send: the agent receives the passage, its source message or turn, your comments and the replies. Older saved drafts may not include the source reference.

A thread chip in the message box above the instruction "Make the TTL configurable."

Your sent message shows the thread as a card. Click it to see the whole thread.

The sent message with the thread card expanded, followed by the instruction

Delete a thread

Delete in the thread removes it after you confirm.

Configure

The defaults suit most uses. To change them, open Plugins, choose @rs-dsh/dsh-threads, and select Configure on the dsh-threads component. Expand AI reply settings to adjust file and web access and reply limits. Turn off Enable AI replies to keep comments as notes; you can still expand the section, but its controls are disabled. The comments-per-thread limit remains available. Edit settings and press Save.

Threads settings on the Plugins page

You can also set them in the profile’s cordis.patch.yml. Numeric values outside the ranges below are rejected; if an existing patch exceeds a limit, reduce it before starting the plugin:

- id: dsh-threads
  config:
    reply:
      maxRounds: 3
      web: true
    maxComments: 8

| Option | Default | Meaning | |---|---|---| | reply.enabled | true | false keeps comments without AI replies. | | reply.maxTokens | 8192 | Output tokens per model call, reasoning included; 1–131,072. | | reply.maxRounds | 5 | Model calls per reply; 1–20. Every call but the last can read the session. | | reply.timeoutMs | 180000 | Time limit for one reply in milliseconds; 1–3,600,000 (one hour). | | reply.files | true | The replier can read files in the session's working directory. | | reply.web | false | The replier can search and fetch the web. | | maxComments | 5 | Comments from you per thread, the first one included; 1–100. |

Limits

  • Running sessions only for new comments. You can read the threads of any session. To comment, reply or delete, the session must be running: send a message in it first.
  • File reading is not sandboxed by the session's permissions. The replier reads through DSH's filesystem, like the agent's read tool, with no approval step. It can read any file the DSH process can, not only the working directory. Set reply.files: false to turn it off.
  • The web is off by default. A fetched page could carry instructions meant to make the replier fetch a URL that leaks what it read from your files. The replier is told to treat pages as data, but turn reply.web on only if you accept that risk.
  • Replies cost tokens. Each reply is one or more calls to the session's model, billed like any other request.
  • Forks start without threads. A forked session does not show its parent's threads.
  • Exports include threads. Threads are stored in the session log, so a session export contains them.
  • Not on tool output. You cannot comment on tool calls or their results.
  • A changed message loses its highlight. If the text of a passage changes, the thread is kept but its highlight no longer shows. The thread notes that the passage is not on the page.
  • Web GUI only. In the terminal UI or an export, a sent thread shows as a tagged text block.
  • The chip shows an @ sign. DSH has its own icons for files, folders and sessions only, so thread chips use the generic @ marker.

More