Dashboard
Overview of all {{agents.length}} agents
Total Agents
{{agents.length}}
Active
{{statusCount('idle')}}
Running
{{statusCount('running')}}
Errors
{{statusCount('error')}}
Server Resources
CPU
{{ systemStats.cpu_pct ?? '—' }}%Auslastung
RAM
{{ systemStats.ram_pct ?? '—' }}%{{ systemStats.ram_used_gb ?? '—' }} / {{ systemStats.ram_total_gb ?? '—' }} GB
Speicher
{{ systemStats.disk_pct ?? '—' }}%{{ systemStats.disk_used_gb ?? '—' }} / {{ systemStats.disk_total_gb ?? '—' }} GB
All Agents
{{agent.name}}
{{agent.title}}
Organization Chart
Drag to pan · Scroll to zoom · Double-click to fit
Settings
Manage your profile
Profile Picture
{{settingsMsg}}
Display Name
Change Password
{{settingsPwMsg}}
Username: {{settingsProfile.username}} · Role: {{settingsProfile.role}} · Member since {{settingsProfile.created_at ? new Date(settingsProfile.created_at * 1000).toLocaleDateString() : 'N/A'}}
Costs & Token Usage
Across all {{costsData?.totals?.agent_count || 0}} agents
Total Tokens
{{formatTokensBig(costsData.totals.total_tokens)}}
↑ {{formatTokensBig(costsData.totals.input_tokens)}} in · ↓ {{formatTokensBig(costsData.totals.output_tokens)}} out
Cache Read
{{formatTokensBig(costsData.totals.cache_read_tokens)}}
⚡ gespartes Reprocessing
Sessions
{{costsData.totals.session_count}}
{{costsData.totals.agent_count}} Agents
Est. Cost
${{costsData.totals.cost_usd > 0 ? costsData.totals.cost_usd.toFixed(2) : '0.00'}}
via OpenRouter Preise
Token-Verlauf ({{costsDays}} Tage)
Kosten nach Modell
{{m.model.replace('anthropic/','').replace('openai/','')}}
{{m.sessions}} sessions · {{formatTokensBig(m.input_tokens + m.output_tokens)}} tok
Token-Verbrauch pro Agent
Top Sessions nach Token-Verbrauch
| Session | Agent | Input | Output | Total | Cost | Datum |
|---|---|---|---|---|---|---|
| {{s.title || 'Untitled'}} | {{s.agent}} | {{formatTokensBig(s.input_tokens)}} | {{formatTokensBig(s.output_tokens)}} | {{formatTokensBig(s.input_tokens + s.output_tokens)}} | ${{s.cost_usd > 0 ? s.cost_usd.toFixed(3) : '—'}} | {{new Date(s.started_at * 1000).toLocaleDateString('de-DE')}} |
📊 Effizienz-Analyse
Wie sich Token-Verbrauch, Caching und Kosten über Zeit entwickeln
⚡ Cache Hit Rate
{{costsData.efficiency_trend[costsData.efficiency_trend.length-1].cache_hit_rate.toFixed(1)}}%
{{(() => { const first = costsData.efficiency_trend[0].cache_hit_rate; const last = costsData.efficiency_trend[costsData.efficiency_trend.length-1].cache_hit_rate; const diff = last - first; return (diff >= 0 ? '↑ +' : '↓ ') + diff.toFixed(1) + '% seit Start'; })()}}
🔧 Tools/Session
{{costsData.efficiency_trend[costsData.efficiency_trend.length-1].tools_per_session.toFixed(1)}}
Ø letzte {{costsDays}} Tage: {{(costsData.efficiency_trend.reduce((s,d) => s + d.tools_per_session, 0) / costsData.efficiency_trend.length).toFixed(1)}}
💰 Cost/Session
${{costsData.efficiency_trend[costsData.efficiency_trend.length-1].cost_per_session.toFixed(3)}}
Ø: ${{(costsData.efficiency_trend.reduce((s,d) => s + d.cost_per_session, 0) / costsData.efficiency_trend.length).toFixed(3)}}
📝 Output/Tool
{{formatTokensBig(costsData.efficiency_trend[costsData.efficiency_trend.length-1].output_per_tool)}}
Token pro Tool-Call
Tägliche Kosten
OpenRouter-Preise · Input + Output + Cache
Cache Hit Rate Trend
Anteil Cache-Reads an gesamten Input-Tokens · höher = effizienter
Tool-Calls pro Session
Steigt = mehr Aufgaben pro Session
Kosten pro Session
Sinkt = effizienter durch Caching
Tägliche Metriken
| Datum | Sessions | Tools | Tools/Sess | Output | Cache Read | Cache% | Cost | $/Sess |
|---|---|---|---|---|---|---|---|---|
| {{d.day}} | {{d.sessions}} | {{d.tool_calls}} | {{d.tools_per_session.toFixed(1)}} | {{formatTokensBig(d.output_tokens)}} | {{formatTokensBig(d.cache_read_tokens)}} | {{d.cache_hit_rate.toFixed(1)}}% | ${{d.cost_usd.toFixed(2)}} | ${{d.cost_per_session.toFixed(3)}} |
⏰ Cron Jobs
Automatisierte Tasks verwalten und erstellen
Neuen Cron Job erstellen
{{ sk.description }}
Keine Cron Jobs vorhanden
Klicke "Neuer Job" um einen zu erstellen
{{ job.prompt }}
📖 Schedule Referenz
Format: Minute Stunde Tag Monat Wochentag (UTC) · Oder einfache Intervalle wie "30m", "every 2h"
Project Management
Goals, Projects und Tasks für deine Agenten
Goals
0Noch keine Goals
Definiere übergeordnete Ziele
Projects
0Noch keine Projects
Gruppiere Tasks in Projekte
Tasks
0Noch keine Tasks
Weise Agenten konkrete Aufgaben zu
Admin Settings
Manage users, access control and container stats
Container Stats
CPU · RAM · Netzwerk · Disk — Echtzeit
| User | Status | CPU | RAM | Netzwerk | Disk | PIDs |
|---|---|---|---|---|---|---|
|
{{s.display_name || s.username}}
{{s.container_name}}
|
{{s.status || 'unknown'}} |
{{s.cpu_perc}}%
|
{{s.mem_usage}} / {{s.mem_limit}}
{{s.mem_perc}}%
|
{{s.net_io}} — | {{s.block_io}} — | {{s.pids}} — |
Users ({{adminUsers.length}})
| User | Role | Container | Created | Last Login | Actions |
|---|---|---|---|---|---|
|
{{(u.display_name || u.username || '?')[0].toUpperCase()}}
{{u.display_name || u.username}} @{{u.username}} |
Host
{{ u.container_status || 'Not provisioned' }}
⚠ {{u.container_error}} |
{{u.created_at ? new Date(u.created_at * 1000).toLocaleDateString() : '—'}} | {{u.last_login ? timeAgo(u.last_login) : 'Never'}} | You |
Invite Tokens
| Token | Role | Status | Expires | Actions |
|---|---|---|---|---|
{{inv.token.substring(0, 12)}}...
|
{{inv.role}} | Used by {{inv.used_by}} Expired Active | {{inv.expires_at ? new Date(inv.expires_at * 1000).toLocaleDateString() : 'Never'}} |
Create Invite
Invite Link created!
{{newInviteLink}}
Proxy Usage
Token-Verbrauch pro Customer · Daily Limit · Sperren
| User | Heute | Daily Limit | Gesamt | Status | Aktionen |
|---|---|---|---|---|---|
| {{s.username}} |
{{(s.used_today || 0).toLocaleString()}} Tokens
{{s.today_requests || 0}} Requests
|
{{(s.daily_limit || 0).toLocaleString()}}
|
{{(s.alltime_input_tokens + s.alltime_output_tokens).toLocaleString()}} Tokens {{s.alltime_requests || 0}} Requests |
🚫 Gesperrt ✓ Aktiv |
Delete User
Are you sure you want to delete {{deleteUserTarget.display_name || deleteUserTarget.username}}? This cannot be undone.
Create User
{{createUserMsg}}
{{selectedAgent.name}}
{{selectedAgent.title}}
❌ {{deleteError}}
Sessions
{{agentDetail?.sessions?.length || 0}}📭
No sessions{{s.title || 'Untitled session'}}
Willkommen, {{authUser.display_name || authUser.username}}!
Dein KI-Assistent ist bereit. Starte einfach eine neue Konversation.
Oder klicke auf + in der Sidebar um einen neuen Agent zu erstellen.
Neue Konversation
Wähle ein Modell, um mit {{selectedAgent?.name}} zu chatten
💬
No messages in this session
You {{formatTime(group.user.created_at)}}
{{selectedAgent?.name || 'Assistant'}} {{formatTime(group.final.created_at)}}
{{typeof msg.content === 'object' ? JSON.stringify(msg.content, null, 2) : msg.content}}
{{selectedAgent?.name || 'Assistant'}}
💭 {{currentThinkingQuote}}
{{selectedAgent?.name || 'Assistant'}}
💭 {{currentThinkingQuote}}
{{compactStatus}}
{{chatError}}
Datei wird hochgeladen...
Agent Memory
{{agentDetail.memory}}
User Memory
{{agentDetail.userMemory}}
🧠
No memory data found for this agent
Error Log
{{agentDetail.errorLog}}
✅
No errors logged
🔧
Keine Skills für diesen Agent gefunden
{{ cat }}
{{ skill.name }}
{{ skill.description || 'Keine Beschreibung verfügbar' }}
{{ agentSkills.length }} Skills insgesamt