A browser UI for Hermes Agent.
Hermes-Web is in early stage development. Expect broken features, rough edges, and incomplete flows. Testers are welcome, and reports that help break the app are greatly appreciated.
Hermes-Web connects to the Hermes Agent TUI gateway over WebSocket. You get a browser chat surface on top of the agent without modifying the agent runtime itself.
git clone git@github.com:ChloeVPin/hermes-web.git
cd hermes-web
bash scripts/install.shgit clone git@github.com:ChloeVPin/hermes-web.git
cd hermes-web
.\scripts\install.ps1The installer scripts in this repo handle both local checkout and direct setup.
The installer handles the following:
- Detects OS, architecture, and package manager
- Installs prerequisites including Git and Node.js 18+
- Clones or updates
hermes-agentif needed - Builds the frontend and the bridge
- Creates the
hermes-webcommand and launcher scripts
| Requirement | Version | Notes |
|---|---|---|
| Node.js | 18+ | With npm |
| Python | 3.10+ | Required for the Python bridge fallback |
| Hermes Agent | latest | Cloned adjacent to this repo |
| API key | any supported provider | Configured inside hermes-agent |
Configure hermes-agent with an API key on the machine hosting the agent:
cd ~/hermes-agent # or your hermes-agent directory
# Option 1: use the hermes CLI
hermes model
# Option 2: set an API key via environment variable
export OPENROUTER_API_KEY="your-api-key"
# or
export OPENAI_API_KEY="your-api-key"
# or
export ANTHROPIC_API_KEY="your-api-key"
# Save to ~/.hermes/.env for persistence
mkdir -p ~/.hermes
echo "OPENROUTER_API_KEY=your-api-key" >> ~/.hermes/.envFor more configuration detail, see the Hermes Agent repository.
|
Chat surface
|
Workspace
|
|
Interface
|
Transport
|
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ │ │ │ │ │
│ Browser (React)│ ◄─────► │ Bridge │ ◄─────► │ tui_gateway │
│ │ WS │ (Rust or Py) │ stdio │ (JSON-RPC) │
│ │ │ │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
The bridge spawns the hermes-agent tui_gateway subprocess and passes JSON-RPC messages over WebSocket.
# 1. Install frontend dependencies
npm install
# 2. Start the Python bridge
pip install websockets
HERMES_AGENT_DIR=../hermes-agent python bridge/server.py
# 3. Start the frontend
npm run devAfter install, the combined launcher is also available:
bash start.shOpen http://localhost:5173.
| Variable | Default | Description |
|---|---|---|
HERMES_AGENT_DIR |
../hermes-agent |
Path to the hermes-agent checkout |
BRIDGE_HOST |
0.0.0.0 |
Bridge bind host |
BRIDGE_PORT |
9120 |
Bridge bind port |
HERMES_PYTHON |
auto-detect | Python used for the gateway subprocess |
src/
├── lib/
│ ├── gateway-types.ts # TypeScript types for the JSON-RPC protocol
│ ├── gateway-client.ts # WebSocket JSON-RPC client
│ └── use-gateway.ts # React hook for sessions, chat, tools, commands
├── components/hermes/
│ ├── hermes-web-app.tsx # Main app shell
│ ├── hermes-web.tsx # Chat messages and empty state
│ ├── hermes-sidebar.tsx # Tabs for chats, skills, and tools
│ ├── hermes-prompt-composer.tsx # Input and slash menu
│ └── hermes-slash-menu.tsx # Slash command autocomplete
bridge/
├── server.py # Python WebSocket bridge
scripts/
├── get.sh # Bootstrap helper
├── install.sh # Installer for Linux, macOS, WSL, Termux
└── install.ps1 # Installer for Windows PowerShell
npm run buildrm -rf ~/hermes-web
rm /usr/local/bin/hermes-web
rm ~/.local/share/applications/hermes-web.desktoprm -rf ~/hermes-web
git clone git@github.com:ChloeVPin/hermes-web.git ~/hermes-web
cd ~/hermes-web
bash scripts/install.sh- Release v1.0.0
- Changelog
- Contributing
- Security Policy
- Troubleshooting
- Performance Notes
- Acknowledgments
MIT licensed. Built on Hermes Agent by Nous Research.
