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
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-annotator from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.