Skip to main content

openclaw-admin-vue

AI agent management platform built with Vue 3 for OpenClaw Gateway and Hermes Agent

Zur Installation springen

Quellinformationen

Repository
reason-machines/hermes-skills
Letzte Quellaktivität
17. Mai 2026 um 22:48
Erkannte Sprache von SKILL.md
Englisch
Sterne
5
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
openclaw-admin-vue
description
AI agent management platform built with Vue 3 for OpenClaw Gateway and Hermes Agent
triggers
["set up openclaw admin dashboard","how do i configure the claw admin interface","install openclaw admin frontend","manage ai agents with openclaw","connect hermes agent to openclaw admin","deploy openclaw admin ui","configure openclaw gateway dashboard","troubleshoot openclaw admin connection"]
# OpenClaw Admin Vue Skill > Skill by [ara.so](https://ara.so) — Hermes Skills collection. OpenClaw Admin is a modern AI agent management platform built with Vue 3 that provides a comprehensive web interface for both OpenClaw Gateway and Hermes Agent. It enables visual management of AI agents, sessions, models, channels, skills, and includes a full-featured Web CLI terminal with session persistence. ## What OpenClaw Admin Does - **Dual Gateway Support**: Manages both OpenClaw Gateway and Hermes Agent from a single interface - **Web CLI Terminal**: Real terminal emulation using xterm.js with session persistence and reconnection - **Multi-Agent Orchestration**: Create and coordinate multiple AI agents for complex workflows - **Real-time Monitoring**: System resources, session states, token usage, and event streams - **Channel Management**: Configure QQ, Feishu, DingTalk, WeChat integrations - **Skill Management**: Install, update, and configure agent skills/plugins - **Memory Management**: Edit agent identity, personality (SOUL.md), and instructions ## Installation ### Prerequisites ```bash # Required node >= 18.0.0 npm >= 9.0.0 # For Hermes CLI terminal feature python >= 3.10 # Must be deployed on the same node as the gateway # .env only supports 127.0.0.1 or localhost ``` ### Setup Steps ```bash # Clone repository git clone https://github.com/itq5/OpenClaw-Admin.git cd OpenClaw-Admin # Install dependencies npm install # Initialize environment configuration cp .env.example .env # Edit .env file vim .env ``` ### Environment Configuration ```bash # .env # Server Port VITE_PORT=3001 # OpenClaw Gateway Configuration VITE_OPENCLAW_WS_URL=ws://localhost:8081 VITE_OPENCLAW_HTTP_URL=http://localhost:8081 # Hermes Agent Configuration VITE_HERMES_API_URL=http://localhost:8642 VITE_HERMES_WEB_URL=http://localhost:9119 VITE_HERMES_API_KEY= # CLI Terminal Configuration (for Hermes CLI) VITE_CLI_SESSION_DB=./cli-sessions.db ``` ### Development Mode ```bash # Start frontend only npm run dev # Start backend only (for CLI terminal) npm run dev:server # Start both frontend and backend npm run dev:all # Access at http://localhost:3001 ``` ### Production Build ```bash # Build for production npm run build # Start production server npm run start # Access at configured port (default 3001) ``` ## Hermes Agent Integration ### Install Hermes Agent ```bash # Official installation script curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash # Run configuration wizard hermes setup ``` ### Configure Hermes Agent ```bash # Configure AI model provider hermes setup model # Or edit ~/.hermes/.env directly # Example for OpenRouter: OPENROUTER_API_KEY=${OPENROUTER_API_KEY} # Example for Anthropic: ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} # Enable API Server vim ~/.hermes/.env # Add: API_SERVER_ENABLED=true GATEWAY_ALLOW_ALL_USERS=true API_SERVER_KEY=${API_SERVER_KEY} ``` ### Start Hermes Gateway ```bash # Install gateway hermes gateway install # Start gateway (background) hermes gateway start # Start Web UI dashboard hermes dashboard # Verify services curl http://localhost:8642/v1/health curl http://localhost:9119/api/status ``` ## Key Features and API Usage ### OpenClaw Gateway Module #### Session Management API ```typescript // Create new session import { sessionApi } from '@/api/openclaw/session' const createSession = async () => { const response = await sessionApi.createSession({ session_id: 'my-session', agent_id: 'default', metadata: { user_id: 'user123', channel: 'web' } }) return response.data } // List sessions with filters const listSessions = async () => { const sessions = await sessionApi.listSessions({ agent_id: 'default', active: true, limit: 20 }) return sessions.data } // Reset session await sessionApi.resetSession('session-id') // Delete session await sessionApi.deleteSession('session-id') ``` #### Model Management API ```typescript import { modelApi } from '@/api/openclaw/model' // Add model provider const addModel = async () => { await modelApi.addModel({ provider: 'openrouter', api_key: process.env.OPENROUTER_API_KEY, base_url: 'https://openrouter.ai/api/v1', models: ['anthropic/claude-3.5-sonnet'] }) } // Set default model await modelApi.setDefaultModel('anthropic/claude-3.5-sonnet') // Probe model availability const probeResult = await modelApi.probeModel({ provider: 'openrouter', model: 'anthropic/claude-3.5-sonnet', api_key: process.env.OPENROUTER_API_KEY }) ``` #### Skill Management API ```typescript import { skillApi } from '@/api/openclaw/skill' // List available skills const skills = await skillApi.listSkills() // Install skill await skillApi.installSkill({ name: 'web-search', version: 'latest' }) // Update skill await skillApi.updateSkill('web-search') // Toggle skill visibility in chat await skillApi.toggleSkillVisibility('web-search', true) ``` #### Cron Task API ```typescript import { cronApi } from '@/api/openclaw/cron' // Create scheduled task const createTask = async () => { await cronApi.createTask({ name: 'morning-report', schedule_type: 'cron', cron_expression: '0 9 * * *', // Every day at 9 AM prompt: 'Generate daily summary report', agent_id: 'default', enabled: true }) } // List tasks const tasks = await cronApi.listTasks() // Trigger task manually await cronApi.triggerTask('task-id') ``` ### Hermes Agent Module #### Chat API Integration ```typescript import { hermesApi } from '@/api/hermes' // Send chat message (SSE streaming) const sendMessage = async (message: string) => { const eventSource = hermesApi.chat.sendMessageStream({ message, session_id: 'session-123', model: 'anthropic/claude-sonnet-4', stream: true }) eventSource.onmessage = (event) => { const data = JSON.parse(event.data) if (data.type === 'content') { console.log('Chunk:', data.content) } else if (data.type === 'tool_call') { console.log('Tool invoked:', data.tool_name) } } return eventSource } // Execute slash command await hermesApi.chat.executeCommand('/skills enable web-search') ``` #### Session Management ```typescript import { hermesApi } from '@/api/hermes/session' // List sessions const sessions = await hermesApi.listSessions({ page: 1, page_size: 20, search: 'keyword' }) // Get session messages const messages = await hermesApi.getSessionMessages('session-id') // Delete session await hermesApi.deleteSession('session-id') ``` #### Configuration Management ```typescript import { hermesApi } from '@/api/hermes/config' // Get configuration const config = await hermesApi.getConfig() // Update configuration await hermesApi.updateConfig({ model: 'anthropic/claude-sonnet-4', provider: 'anthropic', max_turns: 10, temperature: 0.7 }) // Get environment variables const envVars = await hermesApi.getEnvVars() // Set environment variable await hermesApi.setEnvVar('MY_API_KEY', process.env.MY_API_KEY) ``` ### Web CLI Terminal #### Using the CLI Terminal UI The CLI terminal provides a real terminal experience with full Hermes CLI support: ```typescript // Component usage import CliTerminal from '@/components/hermes/cli/CliTerminal.vue' // In your Vue component <template> <CliTerminal :session-id="currentSessionId" :auto-connect="true" @session-created="handleSessionCreated" /> </template> ``` #### CLI Session API ```typescript import axios from 'axios' // Create CLI session with startup parameters const createCliSession = async () => { const response = await axios.post('/api/cli/sessions', { name: 'My CLI Session', startup_params: { model: 'anthropic/claude-sonnet-4', provider: 'anthropic', skills: ['web-search', 'code-execution'], yolo: false, verbose: true } }) return response.data.session_id } // List CLI sessions const sessions = await axios.get('/api/cli/sessions') // Reconnect to existing session const reconnect = async (sessionId: string) => { const response = await axios.post(`/api/cli/sessions/${sessionId}/connect`) return response.data } // Send input to CLI await axios.post(`/api/cli/sessions/${sessionId}/input`, { data: 'what skills are enabled?\n' }) // Resize terminal await axios.post(`/api/cli/sessions/${sessionId}/resize`, { cols: 120, rows: 30 }) // Destroy session await axios.delete(`/api/cli/sessions/${sessionId}`) ``` #### CLI Commands Available in Terminal ```bash # Hermes CLI-specific commands (work in Web Terminal) /skills # List all skills /skills enable web-search # Enable a skill /tools # List available tools /cron list # List scheduled tasks /config # Show configuration /browser # Open browser tool /help # Show all commands # Regular slash commands /new # Start new session /model claude-sonnet-4 # Switch model /status # Show system status ``` ### WebSocket Event Handling ```typescript import { useOpenClawStore } from '@/stores/openclaw' const store = useOpenClawStore() // Connect to OpenClaw Gateway await store.connect() // Listen to events store.on('session.message', (data) => { console.log('New message:', data) }) store.on('system.stats', (stats) => { console.log('System stats:', stats) }) // Send command store.sendCommand({ type: 'chat.send', data: { session_id: 'my-session', message: 'Hello AI' } }) ``` ## Configuration Patterns ### Connecting to Multiple Gateways ```typescript // stores/settings.ts export const useSettingsStore = defineStore('settings', { state: () => ({ connections: { openclaw: { wsUrl: 'ws://localhost:8081', httpUrl: 'http://localhost:8081', enabled: true }, hermes: { apiUrl: 'http://localhost:8642', webUrl: 'http://localhost:9119', apiKey: '', enabled: true } } }), actions: { async testConnection(type: 'openclaw' | 'hermes') { if (type === 'openclaw') { const ws = new WebSocket(this.connections.openclaw.wsUrl) return new Promise((resolve, reject) => { ws.onopen = () => { ws.close(); resolve(true) } ws.onerror = reject }) } else { const response = await fetch(`${this.connections.hermes.webUrl}/api/status`) return response.ok } } } }) ``` ### Slash Command Implementation ```typescript // components/chat/CommandProcessor.ts export class CommandProcessor { private commands = { '/new': () => this.newSession(), '/model': (args: string) => this.switchModel(args), '/skills': () => this.listSkills(), '/status': () => this.showStatus(), '/help': () => this.showHelp() } async process(input: string) { const [command, ...args] = input.split(' ') const handler = this.commands[command]
Auf GitHub ansehen
Diese SKILL.md ist sehr gross, daher zeigt SkillsMP hier nur den ersten Abschnitt. Auf GitHub ansehen