Skip to content
dsh.fish
Bundle

dsh-bookmark

Codex-style conversation navigator for the DeepSeek Harness web UI.

Source
leilei3167
stars
1 stars
License
MIT
Updated
Updated 5 days ago

Readme

# dsh-bookmark

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

A Codex-style conversation navigator for the DeepSeek Harness Web UI. It places a compact rail in the gutter beside the conversation, with one marker for each user message. Hover to preview the turn, or click a marker to jump directly to that message.

## Features

- One marker for every user or steering message.
- Compact 12 px markers that expand with a Codex-style three-level hover cascade.
- The message nearest the current viewport is highlighted in black.
- Hover cards show the user-message title and a preview of the following assistant response.
- Click or use the keyboard to scroll directly to a turn.
- Automatically follows the selected session, including previously saved conversations.
- Loads older history through the native DSH session API when necessary.
- Repositions itself when the sidebar or conversation layout changes.

## Installation

Install directly from GitHub:

```bash
dsh plugin --profile web add github:leilei3167/dsh-bookmark
```

Restart the Web profile after installation:

```bash
dsh web
```

To update an existing installation:

```bash
dsh plugin --profile web update dsh-bookmark
```

Then fully stop and restart `dsh web` so the browser receives the new client bundle.

## Usage

- **Hover a marker:** expand it and its nearby markers, then show the user prompt and assistant-response preview.
- **Click a marker:** smoothly scroll the matching user message into view.
- **Keyboard navigation:** focus a marker and use `ArrowUp` or `ArrowDown`; `Enter` and `Space` use the native button action.
- **Current position:** the marker nearest the viewport anchor is shown in black.

## Privacy

The plugin runs entirely inside the DSH Web client. It does not read API keys and does not send conversation content to external services. Conversation data is read from the active DSH session snapshot and the already-rendered chat nodes, and is kept in browser memory only.

## Development

Requirements: Node.js 22 or newer and pnpm.

```bash
pnpm install
pnpm run typecheck
pnpm test
pnpm run build
```

Install a local checkout for testing:

```bash
dsh plugin --profile web add link:/absolute/path/to/dsh-bookmark
```

## Implementation notes

The navigator reads the current conversation from DSH's `sessions` client service and uses stable `[data-chat-anchor-key]` / `[data-chat-flow-kind]` attributes to link each marker to its rendered message. DOM selectors are retained only as a compatibility fallback; hashed host class names are never used.

The generated `lib/client.js` is wrapped in the DSH `window.__ModuleLoader__` format during `pnpm run build`.

## Discovery and releases

The repository uses the `deepseek-harness`, `dsh`, and `dsh-plugin` GitHub topics so DSH plugin discovery tools can find it. Before publishing an npm release, verify a clean install and then run:

```bash
npm publish --access public
```

## License

MIT

Install

dsh plugin --profile web add github:leilei3167/dsh-bookmark

Profile: web

  • This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source