Skip to main content

githermes

❖ Communityv0.5.0★ 12

GitHub PRs and issues as a right workspace pane in Hermes Desktop, via the connected gh CLI.

Open in Hermes Desktop
hermes plugins install githermes

README

From the reviewed commit 09d5b56 ↗; it updates when the author re-pins.

GitHermes

GitHub PRs & Issues as a right workspace pane in Hermes Desktop.

Community plugin. GitHermes is an open-source, independent project. It is not an official Nous Research product and is not developed or maintained by the Hermes team. It works with Hermes Desktop through its public plugin API.

A single-file desktop plugin (@hermes/plugin-sdk) that shows your repository's open PRs and issues in a dockable pane — conversation, reviews, commits, checks, files, and in-pane merge — styled after GitHub and themed with Hermes --ui-* variables. No backend, no extra token: data comes from the connected gh CLI via host.request('shell.exec').

PR list PR detail
PR list pane PR detail view
Conversation (inline review) Commits
Inline review threads Commits tab
Issues
Issue list

Features

  • PR list — state pills, +N / −N, relative timestamps, CI (passing / pending / failing) and review (approved / changes / required) chips, exact #N search (#42 does not match #142)
  • Session chip + repo picker — PR for the active session branch (same join as the core review pane); 32px pill with https://github.com/{owner}.png avatar
  • PR / Issue header — kicker, grouped meta chips, title glued to #, Merge action on open PRs (squash / merge / rebase, optional delete-branch, GH_PROMPT_DISABLED=1)
  • Conversation — gh-timeline rail, GFM subset (quotes, task lists, tables, <details>, strikethrough; raw HTML stripped), icon-only Quote → active composer, compact checks strip (Blocked / Waiting / All passed)
  • Inline review threads — file:line chip (original_line fallback), collapsed diff hunk, replies grouped by in_reply_to_id
  • Jump to latest — floating control on the Radix viewport only (nested code/table scrollers ignored); remeasures when the detail DOM mounts
  • Commits — same rail; each row is a <details> with lazy-loaded body / +− / files; SHA + external link do not toggle
  • Files — unified hunks per file, line numbers, theme diff colors, A/D/M/R badge; unboxed header, border on the diff body
  • Issues — label chips in the label's own color, black/white text via W3C relative luminance
  • Theme — field surfaces on --ui-editor-surface-background (matte/glass inherited from Desktop); cards on --ui-bg-quaternary; container queries at <360 / <300 / <240

Requirements

  • Hermes Desktop
  • gh installed and authenticated (gh auth status)

Install

hermes plugins install claudioorjunior/githermes --enable

Or manually: drop this folder into ~/.hermes/plugins/githermes/ (unified package — the desktop half lives at desktop/plugin.js), or copy desktop/plugin.js to ~/.hermes/desktop-plugins/githermes/plugin.js (standalone disk door). The app hot-reloads on save.

Upgrading from github-prs

The plugin id changed (github-prs → githermes), so the old install must be removed first — delete the old folder (~/.hermes/desktop-plugins/github-prs/ or ~/.hermes/plugins/github-prs/), then install fresh. One-time cost: the saved repository in the picker resets (plugin storage is namespaced by id).

Development notes

  • Disk plugins load uncompiled: UI is written with jsx()/jsxs() calls, no JSX syntax, no build step.
  • Only @hermes/plugin-sdk, react, and react/jsx-runtime are importable.
  • Tailwind classes must already exist in the app's compiled CSS — arbitrary var() bracket forms (bg-[var(--x)]) are silently dead at runtime. Use the paren shorthand (text-(--ui-text-tertiary)) or scoped <style> blocks with real theme variables.
  • Large gh payloads go through shBig / shJsonBig (base64 chunks under the gateway stdout cap). Lists are capped at 30 rows by design.

Status & contributing

Early stage — expect bugs; reports and PRs are very welcome. See CONTRIBUTING.md.

License

MIT


🇧🇷 PT-BR: pane de PRs e Issues no Hermes Desktop. Lista com CI/review, busca #N exata, header preenchido, merge no pane, timeline com threads inline (file:line + diff), jump-to-latest no viewport, commits em <details> lazy, diffs por hunk, labels com contraste W3C. Sem backend — só gh via shell.exec.

← Back to the catalog · catalog built Oct 14, 2026