{ "name": "hermes-web-ui", "version": "0.6.1", "description": "Self-hosted AI chat dashboard for Hermes Agent — multi-model web UI with multi-platform integration", "repository": { "type": "git", "url": "https://github.com/EKKOLearnAI/hermes-web-ui.git" }, "homepage": "https://ekkolearnai.com", "license": "BSL-1.1", "engines": { "node": ">=23.0.0" }, "keywords": [ "hermes", "hermes-agent", "hermes-web", "agent", "ai", "ai-agent", "ai-chat", "ai-dashboard", "llm", "multi-model", "chat-ui", "dashboard", "self-hosted", "multi-platform", "vue3", "typescript" ], "bin": { "hermes-web-ui": "./bin/hermes-web-ui.mjs" }, "scripts": { "start": "vite --host --port 8648", "dev": "concurrently \"npm run dev:server\" \"npm run dev:client\"", "dev:client": "vite --host", "dev:server": "nodemon", "build": "vue-tsc -b && vite build && tsc --noEmit -p packages/server/tsconfig.json && node scripts/build-server.mjs", "prepare": "[ -d dist ] || npm run build", "preview": "NODE_ENV=production vite preview", "test": "vitest run", "test:watch": "vitest", "test:coverage": "vitest run --coverage", "test:e2e": "playwright test", "test:e2e:ui": "playwright test --ui", "dev:website": "vite --config vite.config.website.ts", "build:website": "vite build --config vite.config.website.ts", "preview:website": "vite preview --config vite.config.website.ts", "openapi:generate": "node scripts/generate-openapi.mjs", "claude": "claude --dangerously-skip-permissions" }, "files": [ "bin/", "dist/" ], "dependencies": { "@vscode/markdown-it-katex": "^1.1.2", "eventsource": "^4.1.0", "js-tiktoken": "^1.0.21", "katex": "^0.17.0", "node-edge-tts": "^1.2.10", "node-pty": "^1.1.0", "socket.io": "^4.8.3", "socket.io-client": "^4.8.3" }, "devDependencies": { "@koa/bodyparser": "^5.0.0", "@koa/cors": "^5.0.0", "@koa/router": "^15.4.0", "@multiavatar/multiavatar": "^1.0.7", "@pinia/testing": "^1.0.3", "@playwright/test": "^1.60.0", "@types/eventsource": "^1.1.15", "@types/js-yaml": "^4.0.9", "@types/katex": "^0.16.8", "@types/koa": "^2.15.0", "@types/koa__cors": "^5.0.0", "@types/koa__router": "^12.0.5", "@types/koa-send": "^4.1.6", "@types/koa-static": "^4.0.4", "@types/markdown-it": "^14.1.2", "@types/node": "^24.12.2", "@types/qrcode": "^1.5.6", "@types/ws": "^8.18.1", "@vitejs/plugin-vue": "^6.0.5", "@vitest/coverage-v8": "^3.2.4", "@vue/test-utils": "^2.4.6", "@vue/tsconfig": "^0.9.1", "@xterm/addon-fit": "^0.11.0", "@xterm/addon-web-links": "^0.12.0", "@xterm/xterm": "^6.0.0", "axios": "^1.9.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "esbuild": "^0.27.0", "highlight.js": "^11.11.1", "js-yaml": "^4.1.1", "jsdom": "^27.0.1", "koa": "^2.15.3", "koa-send": "^5.0.1", "koa-static": "^5.0.0", "markdown-it": "^14.1.1", "mermaid": "^11.14.0", "monaco-editor": "^0.55.1", "naive-ui": "^2.44.1", "nodemon": "^3.1.14", "pinia": "^3.0.4", "pino": "^10.3.1", "pino-pretty": "^13.1.3", "qrcode": "^1.5.4", "sass": "^1.99.0", "ts-node": "^10.9.2", "ts-node-dev": "^2.0.0", "tsoa": "^7.0.0-alpha.0", "typescript": "~6.0.2", "vite": "^8.0.4", "vitest": "^3.2.4", "vue": "^3.5.32", "vue-i18n": "^11.3.2", "vue-router": "^4.6.4", "vue-tsc": "^3.2.8", "ws": "^8.20.0" } }