Bundle
@deepseek-ai/dsh-turn-rail
Right-side session turn navigation rail for DeepSeek Harness Web (official DeepSeek page style)
- Source
- Luoji-Yuli
- stars
- 1 stars
- License
- MIT
- Updated
- Updated 4 days ago
Readme
# dsh-turn-rail
English | [中文](README.zh.md)
**v0.3** — A right-side session turn navigation rail for DeepSeek Harness Web, replicating the DeepSeek official website chat page style:
- Collapsed: a 34px rail at the right edge; one small gray marker per user turn, the active turn is blue and stretched. The frosted rounded background is opt-in and **off by default** — see the toggle section below.
- Hover / keyboard focus: expands into a 240px floating panel with one row per user message.
- scrollspy keeps the active marker in sync while scrolling.
- Opening a session auto-pages older history, so every historical turn appears in the rail without manual scrolling.
## Screenshot

## One-line install
Prerequisite: DeepSeek Harness Web is installed and running (`npx @deepseek-ai/dsh web` or `pnpm dsh web`), and both `dsh` and `pnpm` are on PATH.
```sh
dsh plugin --profile web add github:Luoji-Yuli/dsh-turn-rail
```
A successful install prints `+ @deepseek-ai/dsh-turn-rail ...`.
If `dsh web` is running, restart it and refresh the page.
Local directory install (development):
```sh
dsh plugin --profile web add link:./dsh-turn-rail
```
## Start
```sh
dsh web
```
Open `http://127.0.0.1:3080` and hard-refresh with **Ctrl + F5**. Open any session with at least 2 user messages; the rail appears at the right edge of the page.
## Frosted background toggle
The collapsed rounded frosted background is **off by default**.
1. Open DeepSeek Harness Web and go to **Settings → General**.
2. Find the row **Turn rail frosted background**.
3. Toggle it on: the frosted rounded background shows in both light and dark themes.
4. Toggle it off: no background in either theme (markers only).
## Uninstall
```sh
dsh plugin --profile web remove @deepseek-ai/dsh-turn-rail
```
## Repository layout
```
dsh-turn-rail/
package.json # declares both dsh.bundle and dsh.client
cordis.patch.yml # inserts one plugin row into the web profile
docs/
screenshot.png # UI screenshot
lib/
index.js # host-side no-op plugin (so the loader can import it)
client.js # prebuilt browser bundle (works out of the box)
types/ # TypeScript declarations
src/ # plugin source (browser component + host no-op)
tests/ # component tests
tsconfig.json # TS config used when building inside the deepseek-harness monorepo
tsdown.config.ts # bundle config used when building inside the deepseek-harness monorepo
```
## Building from source
This repo ships a prebuilt `lib/client.js`, so normal installs do not need a build step.
After editing files under `src/`, mirror them into the `deepseek-harness` monorepo at:
```
packages/client/ui-turn-rail/
```
Then run:
```sh
pnpm install
pnpm --filter @deepseek-ai/dsh-turn-rail run bundle
```
Commit the regenerated `lib/client.js` back to this repo.
Install
dsh plugin --profile web add github:Luoji-Yuli/dsh-turn-rail
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 deepseek-ai-dsh-turn-rail from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.