Skip to content

feat(memory): Graphnosis provider UI, MCP install, and onboarding#856

Open
nehloo wants to merge 4 commits into
fathah:mainfrom
nehloo-interactive:feat/graphnosis-desktop-ui
Open

feat(memory): Graphnosis provider UI, MCP install, and onboarding#856
nehloo wants to merge 4 commits into
fathah:mainfrom
nehloo-interactive:feat/graphnosis-desktop-ui

Conversation

@nehloo

@nehloo nehloo commented Jul 16, 2026

Copy link
Copy Markdown

Summary

Adds optional UI surfaces for connecting Graphnosis — local, encrypted, on-device memory — to Hermes Desktop:

  • Memory Providers screen — description + download link for the graphnosis provider
  • Capabilities → MCP Servers — a one-click "Install Graphnosis MCP" card that registers the stdio server directly via addMcpServer (npx -y @graphnosis/mcp-relay ${HOME}/.graphnosis/mcp.sock)
  • Welcome — a "Pair with Graphnosis" onboarding card linking to the download
  • Shared styles for the new cards

No coupling to hermes-agent

The memory provider ships as a standalone plugin (nehloo-interactive/hermes-graphnosis), which Hermes Desktop discovers automatically since it runs Hermes Agent underneath. No dependency on any in-tree hermes-agent change — the MCP install writes the server config directly rather than calling a catalog preset.

Test plan

  • Memory screen shows the Graphnosis provider once the plugin is installed
  • "Install Graphnosis MCP" registers the server on a stock Hermes Agent (no preset)
  • External links open graphnosis.com/download
  • Welcome onboarding card renders

🤖 Generated with Claude Code

Add English copy and download links for the Graphnosis memory provider, a
Capabilities → MCP Servers "Install Graphnosis MCP" card that registers the
stdio server directly (npx @graphnosis/mcp-relay) via addMcpServer, and a
Welcome onboarding card pointing to graphnosis.com.

The memory provider itself ships as the standalone hermes-graphnosis plugin
(github.com/nehloo-interactive/hermes-graphnosis); Hermes Desktop discovers it
automatically since it runs Hermes Agent underneath. No dependency on any
in-tree hermes-agent change.
@nehloo

nehloo commented Jul 16, 2026

Copy link
Copy Markdown
Author

Supersedes #763. That PR used an earlier approach — a hermes-agent catalog-preset install (hermes mcp install graphnosis) that no longer exists — and was ~113 commits behind main.

This PR rebuilds the same UI on current main and registers the MCP server directly via addMcpServer (npx -y @graphnosis/mcp-relay ${HOME}/.graphnosis/mcp.sock), so there's no dependency on any in-tree hermes-agent change. The memory provider itself ships as a standalone plugin (nehloo-interactive/hermes-graphnosis), which Hermes Desktop discovers automatically since it runs Hermes Agent underneath.

@greptile-apps

greptile-apps Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR adds optional Graphnosis integration to Hermes Desktop. The main changes are:

  • Graphnosis metadata for local and remote memory-provider discovery.
  • A one-click Graphnosis MCP server installer in Capabilities.
  • Graphnosis download links in provider and onboarding screens.
  • Shared card styles and English translations for the new UI.

Confidence Score: 5/5

This looks safe to merge.

  • The provider description fix now covers both local and remote discovery.
  • The MCP socket path is handled by the documented downstream interpolation and relay behavior.
  • No blocking issue remains in the changed code.

Important Files Changed

Filename Overview
src/main/installer.ts Adds Graphnosis metadata to local memory-provider discovery.
src/main/ssh-remote.ts Adds matching Graphnosis metadata to remote memory-provider discovery.
src/renderer/src/screens/Tools/Tools.tsx Adds the Graphnosis MCP installation and download actions.
src/renderer/src/screens/Memory/MemoryProviders.tsx Adds the Graphnosis download URL to provider cards.
src/renderer/src/screens/Welcome/Welcome.tsx Adds the Graphnosis onboarding card and download action.

Reviews (4): Last reviewed commit: "style(welcome): restyle the Graphnosis c..." | Re-trigger Greptile

Comment thread src/renderer/src/screens/Tools/Tools.tsx
Comment thread src/shared/i18n/locales/en/memory.ts
Local (installer.ts) and remote (ssh-remote.ts) memory-provider discovery
fell back to the bare provider name for anything absent from KNOWN_PROVIDERS,
so the Memory screen rendered t("graphnosis") — a literal "graphnosis" —
instead of the memory.providers.graphnosis description. Add the entry so the
description key resolves. (Flagged by review.)
nehloo added a commit to nehloo-interactive/hermes-graphnosis that referenced this pull request Jul 16, 2026
Adds patches/memory-provider-known-map.patch (installer.ts + ssh-remote.ts):
without it, local/remote memory-provider discovery falls back to the bare
provider name, so the Memory screen renders t("graphnosis") instead of the
memory.providers.graphnosis description. Mirrors fathah/hermes-desktop#856
follow-up commit 847ed5b. (Flagged by automated review on the PR.)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
nehloo added a commit to nehloo-interactive/graphnosis-app that referenced this pull request Jul 16, 2026
The stdio relay read process.argv[2] raw — path was required and never
expanded. Some MCP hosts spawn stdio servers without a shell and don't
interpolate ${HOME}; notably on Windows HOME is usually unset, so
${HOME}/.graphnosis/mcp.sock reached the relay as a literal, unusable path.

Now the socket-path arg is optional (defaults to ~/.graphnosis/mcp.sock), and
a provided path has a leading ~ and ${HOME}/$HOME expanded via os.homedir()
(cross-platform). Fixes the Windows gap flagged on fathah/hermes-desktop#856 —
consumers can keep passing ${HOME}/... or omit the arg entirely. README
updated; @graphnosis/mcp-relay bumped 1.0.2 -> 1.0.3.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
nehloo and others added 2 commits July 24, 2026 23:41
Resolves the conflict in src/renderer/src/screens/Welcome/Welcome.tsx.

Upstream's "Redesign Entry Screens" replaced the main welcome screen with
the new <OnboardHero> layout, removing the anchor this branch had used to
place the Graphnosis pairing card. Git landed the conflict in the if (error)
block instead, where the same installSizeHint line still existed.

Resolution:
- error screen: take upstream verbatim (drops the misplaced card and the
  installSizeHint paragraph upstream removed there)
- main screen: re-place the Graphnosis card inside OnboardHero, between
  onboard-cta-row and onboard-divider — the semantic equivalent of its
  previous position
- keep the existing .welcome-graphnosis-* classes (merged cleanly in
  main.css); restyling to the onboard-* system is a follow-up design call

Verified: typecheck (node + web) clean, vitest 1850 passed / 3 skipped
across 172 files, eslint clean on the resolved file.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The pairing card still carried its pre-redesign .welcome-graphnosis-*
styling, which used theme CSS vars and a 12px-radius flat surface — visibly
out of place next to upstream's new glass hero.

- add .onboard-graphnosis / -title / -body to the onboard block, matching the
  system's literal dark palette (#c3c8d8 / #8b91a5), 16px radius, glass
  surface with backdrop blur, and 420px max-width so it lines up with
  .onboard-divider
- swap the CTA to .onboard-btn.onboard-btn-glass, tightened one step to
  10px/20px/14px so it reads as secondary to the connect-row buttons
- drop the now-unused .welcome-graphnosis-* rules

Verified in a static harness of the settled hero (tailwind-compiled main.css,
data-phase="done"): card aligns with the divider and matches the glass
buttons. typecheck clean, vitest 1850 passed / 3 skipped, eslint clean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant