Skip to main content
When the task router mixes models, β€œwhich one was slow?” and β€œwhich one errored?” stop being obvious. Model events is an opt-in debug view that records every LLM call SoulForge makes β€” main loop, subagents, compaction, semantic summaries, web search β€” so you can see exactly what each model did. Off by default. No overhead when disabled.

Open it

Press e to start recording, e again to stop (clears the buffer). The view stays empty until you enable it.

Three tabs

Models β€” per-model aggregates. Calls, errors, average latency, last latency, total tokens. Sorted by most recent activity. Recent β€” every call newest-first. When, source (main / subagent / compaction / other), model, status, time, in/out tokens. Errors β€” only failed calls, with the error message attached to the model and source that produced it.

When to enable

  • The router is slower than you expect β€” find which model is the bottleneck.
  • Subagents are silently failing β€” see which model errored on which step.
  • Comparing two providers for the same task β€” read avg/last latency side by side.
  • Cache hit rates feel off β€” see cache-read tokens per model.
For day-to-day work leave it off. Cost and aggregate token usage already live in /context.

Footprint

  • 500-event ring buffer, in-memory only.
  • Cleared when you disable recording or restart SoulForge.
  • Not written to disk, not persisted across sessions.
  • Toggle is per-session β€” not a config setting.
  • /context β€” running totals, per-model cost, per-subagent spend.
  • /router β€” pick which model handles which kind of task.