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"
Admin Settings
Manage users and access control
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}}
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'}}
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