From 71c7f25f4bdcec9ebf8fa96e44a83a2a0553053d Mon Sep 17 00:00:00 2001 From: ekko Date: Wed, 15 Apr 2026 16:36:04 +0800 Subject: [PATCH] feat: add web terminal, improve README, fix node-pty and i18n issues - Add web terminal view with xterm.js and node-pty WebSocket backend - Rewrite README with badges, feature table, mobile demo video - Add package keywords and improved description for npm/GitHub SEO - Fix node-pty spawn-helper missing execute permission after npm install -g - Auto-fix node-pty permissions on CLI startup - Fix duplicate 'error' key in en.ts and zh.ts i18n files - Remove nested NSpin in PlatformSettings (causes invisible loading spinner) Co-Authored-By: Claude Opus 4.6 --- README.md | 351 ++++---- bin/hermes-web-ui.mjs | 16 +- package.json | 32 +- server/src/index.ts | 4 + server/src/routes/terminal.ts | 287 +++++++ src/assets/video.mp4 | Bin 0 -> 5469963 bytes src/components/chat/ChatPanel.vue | 4 +- src/components/jobs/JobCard.vue | 2 +- src/components/layout/AppSidebar.vue | 21 + src/components/layout/LanguageSwitch.vue | 4 +- src/components/layout/ModelSelector.vue | 5 +- src/components/models/ProviderFormModal.vue | 2 +- src/components/settings/PlatformSettings.vue | 10 +- src/components/usage/StatCards.vue | 2 +- src/i18n/locales/en.ts | 14 +- src/i18n/locales/zh.ts | 14 +- src/router/index.ts | 5 + src/stores/chat.ts | 10 +- src/stores/settings.ts | 10 +- src/views/ChannelsView.vue | 3 +- src/views/LoginView.vue | 2 +- src/views/SettingsView.vue | 2 +- src/views/SkillsView.vue | 4 +- src/views/TerminalView.vue | 802 +++++++++++++++++++ vite.config.ts | 5 +- 25 files changed, 1367 insertions(+), 244 deletions(-) create mode 100644 server/src/routes/terminal.ts create mode 100644 src/assets/video.mp4 create mode 100644 src/views/TerminalView.vue diff --git a/README.md b/README.md index 8bc396a..b6bcfba 100644 --- a/README.md +++ b/README.md @@ -1,76 +1,165 @@ -# Hermes Web UI +

+ Hermes Web UI +

-Web dashboard for [Hermes Agent](https://github.com/NousResearch/hermes-agent) — chat interaction, session management, scheduled jobs, usage statistics, platform channel configuration, and log viewing. +

+ A full-featured web dashboard for Hermes Agent.
+ Manage AI chat sessions, monitor usage & costs, configure platform channels,
+ schedule cron jobs, browse skills — all from a clean, responsive web interface. +

-![Hermes Web UI Demo](https://github.com/EKKOLearnAI/hermes-web-ui/blob/main/src/assets/output.gif) +

+ npm install -g hermes-web-ui && hermes-web-ui start +

-## Tech Stack +

+ Hermes Web UI Demo +

-- **Vue 3** — Composition API + ` + + + + + + diff --git a/vite.config.ts b/vite.config.ts index 3dc0d2e..eaaee03 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -3,16 +3,17 @@ import vue from '@vitejs/plugin-vue' import type { ProxyOptions } from 'vite' import { resolve } from 'path' +const BACKEND = 'http://127.0.0.1:8648' + function createProxyConfig(): ProxyOptions { return { - target: 'http://127.0.0.1:8648', + target: BACKEND, changeOrigin: true, configure: (proxy) => { proxy.on('proxyReq', (proxyReq) => { proxyReq.removeHeader('origin') proxyReq.removeHeader('referer') }) - // Disable response buffering for SSE streaming proxy.on('proxyRes', (proxyRes) => { proxyRes.headers['cache-control'] = 'no-cache' proxyRes.headers['x-accel-buffering'] = 'no'