Tool timeline & normalization
How Happier renders tools consistently across providers, with configurable detail levels.
Happier normalizes provider-native tools into a canonical timeline surface (for example Bash, Edit, Read, Diff).
This keeps session timelines consistent across Claude/Codex/Gemini/OpenCode/Kilo/Kimi/Qwen/Augment backends.
What normalization gives you
- A consistent tool vocabulary across providers.
- Stable per-tool rendering in session timeline cards.
- Better compatibility for legacy sessions and mixed backend histories.
- Cleaner diffs and summaries (including per-turn diff aggregation where available).
- Visibility into subagent activity when a provider emits subagent events.
Tool detail controls
In the app, open:
- Settings
- Session
- Tool Rendering
Detail levels:
- Title: tool name only
- Summary: compact safe summary
- Full: full inline details
You can configure defaults and per-tool overrides.
Expanded-view overrides are configured separately from timeline/collapsed behavior.
The dedicated Tool Rendering screen exists so the root Session settings page does not need to render every tool override inline.
Debug/raw visibility
For advanced debugging, you can view raw normalized payloads in full tool views. This is helpful when investigating provider drift or tool parsing edge cases.
Turn summaries and subagents
Depending on provider/runtime payload quality, Happier can surface:
- per-file diffs for the current turn,
- a turn-end summary of changes,
- nested subagent actions in the same timeline.
These displays are capability-driven and may vary by provider.
If you want the live roster for those agents, use the dedicated Agents & subagents surface. The transcript keeps the launch history; the Agents tab keeps the current running/recent view.
Related pages
For internal implementation details, see /docs/tool-normalization.md in the repository.