diff --git a/apps/hermes-webui/config.json b/apps/hermes-webui/config.json new file mode 100644 index 0000000..9bdce16 --- /dev/null +++ b/apps/hermes-webui/config.json @@ -0,0 +1,44 @@ +{ + "$schema": "../app-info-schema.json", + "name": "Hermes WebUI", + "id": "hermes-webui", + "available": true, + "short_desc": "Browser interface for Hermes Agent", + "author": "nesquena", + "port": 8787, + "categories": [ + "ai", + "utilities" + ], + "description": "Hermes WebUI is a lightweight, dark-themed web interface for Hermes Agent. It provides near-complete parity with the CLI experience via a three-panel layout with session management, chat, and workspace file browsing. Use it in any browser, or pair it with the Hermes Agent Mobile iOS app by setting a password.", + "tipi_version": 1, + "version": "0.51.345", + "source": "https://github.com/nesquena/hermes-webui", + "website": "https://github.com/nesquena/hermes-webui", + "exposable": true, + "supported_architectures": [ + "arm64", + "amd64" + ], + "created_at": 1780963200000, + "updated_at": 1780963200000, + "dynamic_config": true, + "form_fields": [ + { + "type": "password", + "label": "Password", + "hint": "Password for web UI access. Required when using Hermes Agent Mobile (iOS app).", + "required": false, + "env_variable": "HERMES_WEBUI_PASSWORD", + "default": "" + }, + { + "type": "text", + "label": "Default Model", + "hint": "Optional model override (e.g. claude-sonnet-4-6). Leave blank to use the agent's configured default.", + "required": false, + "env_variable": "HERMES_WEBUI_DEFAULT_MODEL", + "default": "" + } + ] +} diff --git a/apps/hermes-webui/docker-compose.json b/apps/hermes-webui/docker-compose.json new file mode 100644 index 0000000..f5681bf --- /dev/null +++ b/apps/hermes-webui/docker-compose.json @@ -0,0 +1,21 @@ +{ + "schemaVersion": 2, + "services": [ + { + "name": "hermes-webui", + "image": "ghcr.io/nesquena/hermes-webui:0.51.345", + "isMain": true, + "internalPort": "8787", + "environment": [ + { "key": "HERMES_WEBUI_HOST", "value": "0.0.0.0" }, + { "key": "HERMES_WEBUI_PORT", "value": "8787" }, + { "key": "HERMES_WEBUI_STATE_DIR", "value": "/data" }, + { "key": "HERMES_WEBUI_PASSWORD", "value": "${HERMES_WEBUI_PASSWORD}" }, + { "key": "HERMES_WEBUI_DEFAULT_MODEL", "value": "${HERMES_WEBUI_DEFAULT_MODEL}" } + ], + "volumes": [ + { "hostPath": "${APP_DATA_DIR}/data", "containerPath": "/data" } + ] + } + ] +} diff --git a/apps/hermes-webui/metadata/description.md b/apps/hermes-webui/metadata/description.md new file mode 100644 index 0000000..d4e537e --- /dev/null +++ b/apps/hermes-webui/metadata/description.md @@ -0,0 +1,27 @@ +# Hermes WebUI + +A lightweight browser interface for [Hermes Agent](https://github.com/nesquena/hermes), providing a three-panel layout with session management, chat, and workspace file browsing. + +## Features + +- Dark-themed web UI with near-complete CLI parity +- Session management and workspace file browser +- Compatible with **Hermes Agent Mobile** (iOS app) — set a password to enable +- Supports a default model override per deployment + +## Configuration + +| Field | Description | +|---|---| +| **Password** | Protects the UI with HTTP authentication. Required when connecting from Hermes Agent Mobile. | +| **Default Model** | Override the agent's default model (e.g. `claude-sonnet-4-6`). Leave blank to use the agent's own default. | + +## Usage with Hermes Agent Mobile (iOS) + +1. Set a **Password** in the app settings above. +2. In the iOS app, point it at `http://:8787` with the password you set. + +## Notes + +- State and sessions are persisted to the app data directory. +- If you are running Hermes Agent separately, ensure both containers can reach each other on your network. diff --git a/apps/hermes-webui/metadata/logo.jpg b/apps/hermes-webui/metadata/logo.jpg new file mode 100644 index 0000000..bf1ed13 Binary files /dev/null and b/apps/hermes-webui/metadata/logo.jpg differ