💬 Chat

{$messages.length} Nachrichten 20000} class:danger={estimatedTokens > TOKEN_WARNING_THRESHOLD}> ~{(estimatedTokens / 1000).toFixed(1)}k Token
{#if $messages.length === 0}
🤖

Starte eine Konversation mit Claude.

Enter/Ctrl+Enter = Senden, Shift+Enter = Neue Zeile, Ctrl+K = Focus, Escape = Stopp

{:else} {#each $messages as message, index}
{#if message.role === 'user'} 👤 Du {:else if message.role === 'assistant'} 🤖 {#if message.model}{message.model.replace('claude-', '').replace(/-\d{8}$/, '').replace(/(\D)-(\d)/g, '$1 $2').replace(/(\d)-(\d)/g, '$1.$2').replace(/\b[a-z]/g, c => c.toUpperCase())}{:else}Claude{/if} {:else} ⚙️ System {/if}
{#if message.role === 'user' && !$isProcessing && editingMessageId !== message.id} {/if} {#if message.role === 'assistant' && !$isProcessing && isLastAssistantMessage(index) && message.content} {/if} {#if message.content && message.role !== 'system'} {/if} {message.timestamp.toLocaleTimeString('de-DE', { hour: '2-digit', minute: '2-digit' })}
{#if editingMessageId === message.id}
{:else if message.role === 'assistant'} {#if message.content} {@html renderMarkdown(message.content)} {:else if $isProcessing} {/if} {:else} {message.content} {/if}
{/each} {/if} {#if $isProcessing} {@const lastMsg = $messages.at(-1)} {#if !lastMsg || lastMsg.role !== 'assistant'}
🤖 Claude
{/if} {/if}
{#if liveTranscript}
🎤 {liveTranscript}
{/if} {#if $queuedMessage}
📬 Nachricht wartet: „{$queuedMessage.slice(0, 80)}{$queuedMessage.length > 80 ? '…' : ''}"
{/if}
{#if rememberDialogOpen} {/if} {#if showCompactingDialog} {/if}