explaingit

deboboy/hermes-pwa

Analysis updated 2026-05-18

0TypeScriptAudience · developerComplexity · 4/5Setup · hard

TLDR

A TypeScript Next.js PWA chat frontend for the Hermes AI agent backend, with streaming chat, push notifications, session history, and offline support.

Mindmap

mindmap
  root((Hermes PWA))
    Chat UI
      shadcn MessageScroller
      Streaming Replies
      Session Restore
    PWA Features
      Service Worker
      Offline Caching
      Installable App
    Push Notifications
      VAPID Keys
      Webhook from Backend
      Per-Device Client ID
    Tech Stack
      Next.js 16
      TypeScript
      Tailwind CSS
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Build an installable mobile chat interface for a custom AI agent backend running on your own server.

USE CASE 2

Add push notifications to a chat app so users get alerted when async AI tasks complete.

USE CASE 3

Store and search chat session history locally in the browser and across a remote backend.

USE CASE 4

Use the shadcn/ui MessageScroller components as a reference for streaming chat UI implementation.

What is it built with?

TypeScriptNext.jsTailwind CSSshadcn/uiWeb PushIndexedDB

How does it compare?

deboboy/hermes-pwaairirang/airirang-builderaisurfer/mcp_ui_app_example
Stars000
LanguageTypeScriptTypeScriptTypeScript
Setup difficultyhardmoderatemoderate
Complexity4/53/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires a running Hermes agent backend at a known URL, plus VAPID key generation and HTTPS for push notifications to work.

In plain English

Hermes PWA is a reference implementation of a chat interface built as an installable web app. It is designed to connect to a backend called Hermes Agent, which runs separately on a server. The project exists to test whether a set of recently released chat components from the shadcn/ui library would work well as the mobile-facing front end for that agent. The app is built with Next.js 16 and TypeScript, and uses Tailwind CSS for styling. The shadcn/ui chat components handle the details of displaying a conversation correctly: streaming responses appear as they arrive, scroll position stays anchored to the latest message, and previous sessions can be restored. The app works as a Progressive Web App, meaning users can install it from their browser to their phone's home screen and use it like a native app, even offline for previously loaded content. On top of the basic chat, the app supports browser push notifications using a web standard called Web Push. When the Hermes backend finishes an async task, it can send a notification to a specific installed app instance. Each installation has a stable ID stored in the browser, so the backend can target the right device. Session history is stored locally in the browser's built-in database and can also be searched across the remote Hermes backend using full-text search. Setup requires pointing the app at your own Hermes backend by setting an environment variable with its URL. You generate encryption keys for push notifications, run the standard npm install, and deploy anywhere that can run Node.js. This is a developer reference project, not a consumer product. It is most useful to someone who has already built or is building the Hermes agent and wants a ready-made mobile chat front end to connect to it.

Copy-paste prompts

Prompt 1
I'm building a Next.js chat app that connects to a custom AI backend. Help me write the API proxy route that forwards requests and streams the response back to the browser.
Prompt 2
Show me how to implement Web Push notifications in a Next.js PWA using VAPID keys, including subscribe, unsubscribe, and send API routes.
Prompt 3
I want to store chat transcripts in IndexedDB so they persist between sessions. Write a TypeScript module that saves messages and retrieves them by session ID.
Prompt 4
Explain how Progressive Web Apps work on iOS: why do push notifications require the user to 'Add to Home Screen' first, and what are the limitations compared to Android?
Prompt 5
Help me generate VAPID keys for Web Push in a Next.js project and explain where each key goes (client vs server) and why.

Frequently asked questions

What is hermes-pwa?

A TypeScript Next.js PWA chat frontend for the Hermes AI agent backend, with streaming chat, push notifications, session history, and offline support.

What language is hermes-pwa written in?

Mainly TypeScript. The stack also includes TypeScript, Next.js, Tailwind CSS.

How hard is hermes-pwa to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is hermes-pwa for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub deboboy on gitmyhub

Verify against the repo before relying on details.