Skip to content
dsh.fish
Bundle

dsh-github-sidebar

A DSH (DeepSeek Harness) client plugin that adds a GitHub info sidebar to the chat window's right details column: the top pane lists repositories under a GitHub topic (e.g. dsh-plugin) sorted by stars, the bottom pane lists a repository's discussions with time / comments / pinned sorting.

Source
Olympianz
License
MIT
Updated
Updated 6 days ago

Readme

# dsh-github-sidebar

A [DeepSeek Harness (DSH)](https://github.com/deepseek-ai/deepseek-harness) **client plugin** that adds a GitHub info sidebar to the chat window's right `details` column, with two stacked panes:

- **Top pane — topic repos by stars**: lists repositories under a GitHub topic (default `dsh-plugin`), sorted by stars descending, 10 per page with pagination. Uses the public GitHub REST Search API (no token needed).
- **Bottom pane — discussions**: lists a repository's discussions (default `deepseek-ai/deepseek-harness`), sortable by **newest** (server-side, near → far), **most comments**, and **pinned first** (client-side, fetches the full list then sorts), 10 per page with pagination. Uses the GitHub GraphQL API (a token is required).

## Features

- ✨ Right-side GitHub sidebar inside the DSH chat window (auto-opens the details column).
- ⭐ Topic repos sorted by stars, pageable.
- 💬 Discussions with 3 sort dimensions + pagination.
- 🔑 Token entered in the panel itself (stored in `localStorage`, sent only to `api.github.com`).

## Installation

Install into your DSH profile (installs the host bundle and registers the client plugin):

```sh
dsh plugin --profile web add dsh-github-sidebar
# or, when running dsh from a source checkout:
pnpm dsh plugin --profile web add dsh-github-sidebar
```

Or install directly from this repository:

```sh
dsh plugin --profile web add https://github.com/Olympianz/dsh-github-sidebar
```

Then **restart dsh** (`dsh web`) and refresh the page — the client plugin set is scanned at startup.

## Usage

1. Open a session.
2. The right `details` column auto-opens showing **GitHub Sidebar**.
3. **Top pane**: browse topic repositories sorted by stars; use pagination buttons to flip pages.
4. **Bottom pane**:
   - Switch sort with **Newest / Most comments / Pinned first**.
   - Paste a GitHub token (GraphQL requires one) and press **Save**.

## Configuration

All defaults are hardcoded in the panel for now; the host half exposes a `Config` schema (`topic`, `owner`, `repo`, `pageSize`) that can be overridden in `cordis.yml`, but the browser half does not read it yet. The token is entered in the panel (per-user, persisted in `localStorage`).

## Development

```sh
pnpm install
pnpm run bundle     # build lib/client.js (tsdown)
pnpm run watch      # rebuild on change
pnpm run typecheck  # tsc --noEmit (best-effort)
```

`lib/client.js` is committed so that installing from GitHub works without a build step. Regenerate it after changing `src/client`.

## Publishing

See [CONTRIBUTING.md](./CONTRIBUTING.md#publishing) for the full guide. Short version:

1. Create a GitHub repository (e.g. `dsh-github-sidebar`), push this directory, and add the topics **`dsh-plugin`**, `deepseek-harness`, `dsh` on the repo's Topics page.
2. Publish to npm so users can `dsh plugin add dsh-github-sidebar`:
   ```sh
   npm login
   npm publish
   ```

## Known limitations

- The `details` column is a single-occupant slot: the GitHub panel **replaces** the default call/trajectory details in the right column. A true "coexist toggle" would require modifying DSH's `ui-conversation` `DetailsPanel` (a DSH source change).
- Sorting discussions by comments/pinned fetches the full discussion list first (more GraphQL requests; watch rate limits on large repos).
- The token lives in `localStorage` (exposed in the browser). A server-side host proxy would keep it out of the browser; not implemented yet.
- Details-column visibility is maintained by auto-opening it; some layout transitions (session switches) may briefly close it before the plugin re-opens it.

## License

[MIT](./LICENSE)

Install

dsh plugin --profile web add github:Olympianz/dsh-github-sidebar#1edd39343d8ed07dcd24afb8bb2fa32aadd232cd

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.
Source