Atlas CC

Command Center

Anmelden

{{ authError }}

Hast du einen Einladungslink? Registrieren

Registrieren

{{ authError }}

Schon ein Konto? Anmelden

Dashboard

Overview of all {{agents.length}} agents

Total Agents

{{agents.length}}

Active

{{statusCount('idle')}}

Running

{{statusCount('running')}}

Errors

{{statusCount('error')}}

Server Resources

{{ systemStatsError }}

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[0]}}

{{agent.name}}

{{agent.title}}

{{agent.sessionCount}} sessions Last: {{timeAgo(agent.lastActive)}}

Organization Chart

Drag to pan · Scroll to zoom · Double-click to fit

Loading hierarchy...
{{Math.round(zoom * 100)}}%

Settings

Manage your profile

Profile Picture

{{(settingsProfile.display_name || settingsProfile.username || '?')[0].toUpperCase()}}

{{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

Lade Daten...

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)

{{formatTokensBig(costsMaxTokens)}}
Input Output

Kosten nach Modell

{{m.model.replace('anthropic/','').replace('openai/','')}}

{{m.sessions}} sessions · {{formatTokensBig(m.input_tokens + m.output_tokens)}} tok

${{m.cost_usd.toFixed(2)}}

Token-Verbrauch pro Agent

{{a.name[0]}}
{{a.name}} {{a.session_count}} sessions
{{formatTokensBig(a.total_tokens)}}

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

${{effMaxCost.toFixed(2)}}

Cache Hit Rate Trend

Anteil Cache-Reads an gesamten Input-Tokens · höher = effizienter

{{d.day.slice(5)}} 100%

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

{{ cronSchedulerStatus.running ? 'Scheduler aktiv' : 'Scheduler inaktiv' }}

Neuen Cron Job erstellen

→ {{ cronScheduleParsed.cron }} ✓ {{ cronScheduleParsed.human }} z.B. "täglich 7 Uhr", "alle 30 Minuten", "montags 9:00", "0 */4 * * *"
{{ sk }}
{{ sk.name }} {{ sk.category }}

{{ sk.description }}

{{ cronCreateMsg }}

Keine Cron Jobs vorhanden

Klicke "Neuer Job" um einen zu erstellen

{{ job.name || job.id }} {{ job.status || 'active' }}
{{ job.schedule }} → {{ job.deliver }} Letzter Lauf: {{ new Date(job.last_run).toLocaleString('de-DE') }} Nächster: {{ new Date(job.next_run).toLocaleString('de-DE') }}

{{ job.prompt }}

Noch keine Outputs vorhanden
{{ out.timestamp }} {{ (out.size / 1024).toFixed(1) }} KB
{{ cronOutputFilename[job.id] }}
{{ cronOutputContent[job.id] }}

📖 Schedule Referenz

*/30 * * * * — Alle 30 Minuten
0 * * * * — Jede Stunde
0 7 * * * — Täglich 7:00 UTC
0 9 * * 1 — Montags 9:00 UTC
0 0 1 * * — Monatlich am 1.
30m / every 2h — Intervalle

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}}

{{u.created_at ? new Date(u.created_at * 1000).toLocaleDateString() : '—'}} {{u.last_login ? timeAgo(u.last_login) : 'Never'}} You

Invite Tokens

No 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[0]}}

{{selectedAgent.name}}

{{selectedAgent.title}}

⚠️ Agent "{{selectedAgent.name}}" wirklich löschen?
🚨 Endgültig löschen? Dieser Schritt kann NICHT rückgängig gemacht werden!

❌ {{deleteError}}

Sessions

{{agentDetail?.sessions?.length || 0}}

📭

No sessions

{{s.title || 'Untitled session'}}

{{formatTokens((s.input_tokens||0)+(s.output_tokens||0))}} tok · {{s.source || 'cli'}} · {{timeAgo(s.last_message_at || s.started_at)}}
{{modelDisplayName(activeSessionInfo.model)}} ↑ {{formatTokens(activeSessionInfo.input_tokens || 0)}} in · ↓ {{formatTokens(activeSessionInfo.output_tokens || 0)}} out ⚡ {{formatTokens(activeSessionInfo.cache_read_tokens)}} cached Σ {{formatTokens((activeSessionInfo.input_tokens||0)+(activeSessionInfo.output_tokens||0))}} tokens
🤖

Neue Konversation

Wähle ein Modell, um mit {{selectedAgent?.name}} zu chatten

💬

No messages in this session

{{selectedAgent?.name?.[0] || 'A'}}

{{selectedAgent?.name || 'Assistant'}}

💭 {{currentThinkingQuote}}

{{selectedAgent?.name?.[0] || 'A'}}

{{selectedAgent?.name || 'Assistant'}}

💭 {{currentThinkingQuote}}

{{ modelDisplayName(streamStatus?.model) || streamStatus?.model || 'Connecting...' }}
{{ streamStatus.tokens_used }} / {{ streamStatus.tokens_limit }}
{{ streamStatus.progress_pct }}%
{{ streamElapsed }}
Datei hier ablegen

{{compactStatus}}

{{chatError}}

Datei wird hochgeladen...

Agent Memory

{{agentDetail.memory}}

User Memory

{{agentDetail.userMemory}}

🧠

No memory data found for this agent

Loading...

Error Log

{{agentDetail.errorLog}}

No errors logged

🔧

Keine Skills für diesen Agent gefunden

{{ cat }}

{{ skill.name }}

{{ skill.description || 'Keine Beschreibung verfügbar' }}

{{ tag }}

{{ agentSkills.length }} Skills insgesamt

Agent erstellt!

{{createdAgent.name}} wurde erfolgreich angelegt.

⚠️ API Key — Nur einmal sichtbar!

{{createdAgent.apiKey}}

Neuen Agent hinzufügen

Reportet an: {{newAgentParent?.name}}

{{createError}}

ℹ️ {{ toastMsg }}