Skip to content
dsh.fish
Bundle

dsh-annotator

DSH conversation annotator: select transcript text, attach a note in a popup, then send the compiled quote+note pair through the composer.

Source
cw1999mm
stars
1 stars
License
MIT
Updated
Updated 14 days ago

Readme

# dsh-annotator

English | [中文](README.zh-CN.md)

DSH (DeepSeek Harness) community plugin: **annotate the transcript**. Select any text in the conversation, click the floating **Annotate** mark, write your note — the send arrow compiles the quote (as a blockquote) plus your note and submits it through the composer.

## Features

- Select transcript text → a floating annotate mark appears right below the selection.
- Only selections wholly inside the chat transcript (`[data-chat-flow]`) get a mark; a drag that leaves the transcript is ignored.
- Modal editor shows the quoted source plus a note field (⌘/Ctrl + Enter to send).
- The send arrow compiles `> quoted text` + your note and submits it through the composer.
- English UI copy.
- Cleanup is fully `ctx.effect`-driven — no global listeners leak on unload.

## Requirements

- A DeepSeek Harness **web** profile (any profile name; the examples below use `web`).

## Installation

`lib/` is committed, so neither install path needs a build step.

### Option A — tarball

```sh
cd dsh-annotator
npm pack                        # → dsh-annotator-0.1.0.tgz
dsh plugin --profile web add ./dsh-annotator-0.1.0.tgz
```

### Option B — git (latest)

```sh
dsh plugin --profile web add github:cw1999mm/dsh-annotator
```

Then restart (or refresh) the web UI. The plugin loads as the `dsh-annotator` bundle layer; remove it with:

```sh
dsh plugin --profile web remove dsh-annotator
```

### Manual / development install

Link the package into your profile's `node_modules` and add the bundle row:

```sh
# from the profile directory (e.g. ~/.dsh/profiles/web)
pnpm add link:<absolute path to this project>
```

Then append to the profile's `cordis.patch.yml`:

```yaml
- insert:
    - id: dsh-annotator
      name: dsh-annotator
```

## Usage

1. Drag to select any span of text in the chat transcript.
2. Click the floating **Annotate** button.
3. Write your note and click the send arrow (or press ⌘/Ctrl+Enter) — the message `> quoted text\n\nnote` is compiled and sent through the composer.

## Development

`src/` is the TypeScript source; `lib/` is the committed build output.

Typechecking needs the DSH client type packages. The shipped `tsconfig.json` maps them via `paths` to a sibling `deepseek-harness` checkout (the layout this plugin was developed against); adjust the paths to your checkout:

```sh
pnpm typecheck   # tsc -p tsconfig.json (noEmit)
```

Rebuilding `lib/` (the browser bundle) uses the DSH repo's `tsdown` toolchain from a checkout that includes the client packages; the committed `lib/client.js` is the canonical runtime artifact.

## License

[MIT](./LICENSE) © 2026 cw1999mm

Install

dsh plugin --profile web add github:cw1999mm/dsh-annotator

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source