Skip to main content

hermes-workspace-ai-agent-ui

Native web workspace for Hermes Agent with chat, terminal, memory, skills, inspector, and multi-agent orchestration

インストールへ移動

ソース情報

リポジトリ
reason-machines/hermes-skills
ソースの最終更新活動
2026年5月16日 17:22
検出された SKILL.md の言語
英語
スター
5
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
hermes-workspace-ai-agent-ui
description
Native web workspace for Hermes Agent with chat, terminal, memory, skills, inspector, and multi-agent orchestration
triggers
["set up hermes workspace","configure hermes agent ui","connect workspace to hermes gateway","enable swarm mode for multiple agents","customize hermes workspace theme","troubleshoot hermes workspace connection","deploy hermes workspace with docker","configure conductor missions"]
# Hermes Workspace AI Agent UI > Skill by [ara.so](https://ara.so) — Hermes Skills collection. Hermes Workspace is a native web interface for Hermes Agent that provides chat, terminal, memory browser, skills catalog, MCP integration, multi-agent orchestration, and a complete control plane for autonomous AI workflows. Unlike chat wrappers, it's a full workspace with file browsing, persistent sessions, role-based agent dispatch, and swarm mode for managing multiple Hermes Agent workers. ## What It Does - **Chat Interface**: Real-time SSE streaming, tool call rendering, multi-session support, markdown + syntax highlighting - **Memory Browser**: Search, edit, and manage agent memory with live markdown editor - **Skills Catalog**: Browse 2,000+ skills with origin badges, filters, source paths - **MCP Integration**: Full Model Context Protocol catalog, marketplace, and source management - **Terminal & Files**: Monaco-powered file browser and cross-platform PTY terminal - **Multi-Agent Dashboard**: Manage multiple Hermes Agent instances with profile presets (Sage/Trader/Builder/Scribe/Ops) - **Swarm Mode**: Persistent tmux-backed agent workers with role-based dispatch and Kanban task board - **Conductor**: Mission decomposition and dispatch with fallback to native swarm orchestration - **PWA Support**: Install as native app, access over Tailscale ## Installation ### Docker Compose (Recommended for Self-Hosting) ```bash # Clone repository git clone https://github.com/outsourc-e/hermes-workspace.git cd hermes-workspace # Start with docker-compose docker-compose up -d # Access at http://localhost:3000 ``` ### One-Line Install (macOS/Linux) ```bash curl -fsSL https://raw.githubusercontent.com/outsourc-e/hermes-workspace/main/install.sh | bash # Terminal 1: Start Hermes Agent gateway hermes gateway run # Terminal 2: Start workspace cd ~/hermes-workspace && pnpm dev ``` ### Manual Installation ```bash # Prerequisites: Node.js 22+, pnpm git clone https://github.com/outsourc-e/hermes-workspace.git cd hermes-workspace # Install dependencies pnpm install # Configure environment cp .env.example .env # Edit .env with your settings echo 'HERMES_API_URL=http://127.0.0.1:8642' >> .env echo 'HERMES_DASHBOARD_URL=http://127.0.0.1:9119' >> .env # Start development server pnpm dev ``` ### Attach to Existing Hermes Agent If you already have a Hermes Agent gateway running: ```bash git clone https://github.com/outsourc-e/hermes-workspace.git cd hermes-workspace pnpm install cp .env.example .env # Point to existing gateway echo 'HERMES_API_URL=http://127.0.0.1:8642' >> .env echo 'HERMES_DASHBOARD_URL=http://127.0.0.1:9119' >> .env # If gateway requires auth echo 'HERMES_API_TOKEN=your_api_server_key' >> .env pnpm dev ``` ## Configuration ### Environment Variables ```bash # Required: OpenAI-compatible backend URL HERMES_API_URL=http://127.0.0.1:8642 # Optional: Dashboard API for enhanced features HERMES_DASHBOARD_URL=http://127.0.0.1:9119 # Optional: Gateway authentication token HERMES_API_TOKEN=your_api_server_key # Optional: UI password protection HERMES_PASSWORD=your_password # Optional: Provider API keys (only if using these providers) OPENAI_API_KEY=sk-... OPENROUTER_API_KEY=sk-or-v1-... GOOGLE_API_KEY=AIza... ANTHROPIC_API_KEY=sk-ant-... # Optional: Custom port PORT=3000 ``` ### Gateway Requirements For full functionality, the Hermes Agent gateway needs: ```bash # In ~/.hermes/.env or gateway config API_SERVER_ENABLED=true API_SERVER_HOST=0.0.0.0 API_SERVER_PORT=8642 # Optional: Enable authentication API_SERVER_KEY=your_secret_key ``` Start gateway and dashboard: ```bash hermes gateway run # Port 8642 hermes dashboard # Port 9119 ``` ### Remote Access (Tailscale/VPN) For access from remote devices: ```bash # Use Tailscale/LAN IP instead of localhost echo 'HERMES_API_URL=http://100.x.y.z:8642' >> .env echo 'HERMES_DASHBOARD_URL=http://100.x.y.z:9119' >> .env # Gateway must bind to 0.0.0.0 echo 'API_SERVER_HOST=0.0.0.0' >> ~/.hermes/.env ``` ## Usage Patterns ### Connecting to Local Models #### Ollama ```bash # Start Ollama with CORS enabled OLLAMA_ORIGINS=* ollama serve # Start workspace pointing to Ollama HERMES_API_URL=http://127.0.0.1:11434 pnpm dev ``` #### LM Studio ```bash # Start LM Studio server on port 1234 # In workspace: HERMES_API_URL=http://127.0.0.1:1234/v1 pnpm dev ``` #### Atomic Chat ```bash # Start Atomic Chat desktop app # In workspace: HERMES_API_URL=http://127.0.0.1:1337/v1 pnpm dev ``` ### Swarm Mode Setup Enable multi-agent orchestration: ```bash # Start multiple agent workers cd ~/hermes-workspace pnpm swarm:start # View swarm docs cat docs/swarm/README.md # Configure roles in workspace UI: # Settings → Swarm → Configure Roles # - builder: Code implementation # - reviewer: PR review and validation # - docs: Documentation # - research: Investigation # - ops: Operations and deployment # - triage: Issue classification # - qa: Quality assurance # - lab: Experiments ``` ### API Integration For programmatic access: ```typescript // Next.js API route example import { NextRequest, NextResponse } from 'next/server'; export async function POST(req: NextRequest) { const { message, sessionId } = await req.json(); const response = await fetch(`${process.env.HERMES_API_URL}/v1/chat/completions`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${process.env.HERMES_API_TOKEN || ''}` }, body: JSON.stringify({ model: 'hermes-3', messages: [{ role: 'user', content: message }], stream: true }) }); return new NextResponse(response.body); } ``` ### Custom Theme Configuration Create or modify themes in `src/styles/themes`: ```typescript // src/styles/themes/custom.ts export const customTheme = { name: 'custom', colors: { background: '#0a0a0a', foreground: '#ffffff', primary: '#6366f1', secondary: '#8b5cf6', accent: '#ec4899', muted: '#374151', border: '#1f2937' }, fonts: { sans: 'Inter, system-ui, sans-serif', mono: 'JetBrains Mono, monospace' } }; ``` ### Docker Deployment ```yaml # docker-compose.yml version: '3.8' services: hermes-workspace: build: . ports: - "3000:3000" environment: - HERMES_API_URL=http://hermes-gateway:8642 - HERMES_DASHBOARD_URL=http://hermes-gateway:9119 - HERMES_API_TOKEN=${HERMES_API_TOKEN} depends_on: - hermes-gateway volumes: - ./data:/app/data hermes-gateway: image: nousresearch/hermes-agent:latest ports: - "8642:8642" - "9119:9119" environment: - API_SERVER_ENABLED=true - API_SERVER_HOST=0.0.0.0 - API_SERVER_KEY=${HERMES_API_TOKEN} - OPENAI_API_KEY=${OPENAI_API_KEY} volumes: - ./hermes-data:/root/.hermes ``` ### Conductor Mission Dispatch ```typescript // Dispatching a mission programmatically const dispatchMission = async (mission: string) => { const response = await fetch('/api/conductor/dispatch', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ mission, mode: 'auto', // or 'native-swarm' decompose: true }) }); const result = await response.json(); return result; }; // Example usage await dispatchMission('Review and merge PR #42, update docs'); ``` ## Key Commands ### Development ```bash # Start development server pnpm dev # Build for production pnpm build # Start production server pnpm start # Run tests pnpm test # Lint code pnpm lint # Type check pnpm type-check ``` ### Swarm Management ```bash # Start swarm workers pnpm swarm:start # Stop swarm workers pnpm swarm:stop # View swarm status pnpm swarm:status # Attach to worker terminal pnpm swarm:attach <worker-name> ``` ### Docker ```bash # Build image docker build -t hermes-workspace . # Run container docker run -p 3000:3000 \ -e HERMES_API_URL=http://gateway:8642 \ -e HERMES_DASHBOARD_URL=http://gateway:9119 \ hermes-workspace # Docker Compose docker-compose up -d docker-compose logs -f docker-compose down ``` ## Troubleshooting ### Connection Issues ```bash # Verify gateway is running curl http://127.0.0.1:8642/health # Expected: {"status":"ok"} # Verify dashboard is running curl http://127.0.0.1:9119/api/status # Expected: dashboard metadata JSON # Check gateway logs hermes gateway run --verbose # Check workspace logs pnpm dev # Look for connection probe results ``` ### Authentication Failures ```bash # Ensure API_SERVER_KEY matches HERMES_API_TOKEN # In gateway config (~/.hermes/.env): API_SERVER_KEY=your_secret # In workspace .env: HERMES_API_TOKEN=your_secret # Or disable auth entirely: # Remove API_SERVER_KEY from gateway # Remove HERMES_API_TOKEN from workspace ``` ### Features Not Appearing ```bash # Check capability detection in browser console: # Settings → Connection → Test Connection # Verify dashboard is running for enhanced features: ps aux | grep "hermes dashboard" # Check HERMES_DASHBOARD_URL is set correctly: echo $HERMES_DASHBOARD_URL # Restart both services: pkill -f "hermes gateway" pkill -f "hermes dashboard" hermes gateway run & hermes dashboard & ``` ### Swarm Workers Not Starting ```bash # Check tmux sessions tmux ls # Verify worker processes ps aux | grep hermes # Check worker logs tail -f ~/.hermes/logs/worker-*.log # Reset swarm state pnpm swarm:stop rm -rf ~/.hermes/swarm-state pnpm swarm:start ``` ### Memory/Performance Issues ```bash # Increase Node.js memory NODE_OPTIONS="--max-old-space-size=4096" pnpm dev # Clear workspace cache rm -rf .next pnpm build # Check Docker resource limits docker stats # Increase in Docker Desktop settings if needed ``` ### Remote Access Not Working ```bash # Verify gateway binds to 0.0.0.0 grep API_SERVER_HOST ~/.hermes/.env # Should be: API_SERVER_HOST=0.0.0.0 # Test from remote device curl http://<tailscale-ip>:8642/health # Check firewall rules sudo ufw status sudo ufw allow 8642/tcp sudo ufw allow 9119/tcp # Verify Tailscale connectivity tailscale status ping <tailscale-ip> ``` ### Build Errors ```bash # Clear all caches and reinstall rm -rf node_modules .next pnpm-lock.yaml pnpm install pnpm build # Verify Node.js version node --version # Must be 22.0.0 or higher # Check for TypeScript errors pnpm type-check ``` ## Advanced Configuration ### Custom Skills Integration ```bash # Add custom skills directory export HERMES_SKILLS_PATH=/path/to/custom/skills # Skills should follow format: # /custom/skills/ # ├── skill-name/ # │ ├── SKILL.md # │ └── metadata.json ``` ### Persistent Sessions ```bash # Sessions stored in ~/.hermes/sessions/ # Backup sessions: tar -czf sessions-backup.tar.gz ~/.hermes/sessions/ # Restore sessions: tar -xzf sessions-backup.tar.gz -C ~/ ``` ### Custom API Routes ```typescript // app/api/custom/route.ts import { NextRequest } from 'next/server'; export async function POST(req: NextRequest) { // Custom endpoint logic const data = await req.json(); // Forward to gateway with custom headers const response = await fetch(`${process.env.HERMES_API_URL}/custom`, { method: 'POST', headers: {
GitHubで見る
この SKILL.md は非常に大きいため、SkillsMP では最初のセクションだけを表示しています。 GitHubで見る