# 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