Saltar al contenido principal
O

dsh-github-sidebar

olympianz/dsh-github-sidebar

Plugin cliente DSH (DeepSeek Harness) que añade una barra lateral con información de GitHub en la columna derecha de detalles del chat. El panel superior muestra repositorios de un topic de GitHub (p. ej., dsh-plugin) ordenados por estrellas; el inferior lista las discussions del repositorio.

Instalar

dsh plugin --profile web add github:olympianz/dsh-github-sidebar

README

dsh-github-sidebar

A DeepSeek Harness (DSH) 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):

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:

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

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

Plugins relacionados