Skip to content
dsh.fish
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

![dsh-turn-rail screenshot](docs/screenshot.png)

## 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

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