{% for item in conversation %}
{% if item.kind == 'session_start' %}
{% elif item.kind == 'user_message' %}
{% elif item.kind == 'assistant_message' %}
{% elif item.kind == 'tool_start' %}
{% elif item.kind == 'tool_complete' %}
{% elif item.kind == 'subagent_start' %}
{% elif item.kind == 'subagent_complete' %}
{% elif item.kind == 'error' %}
{% elif item.kind == 'warning' %}
{% elif item.kind == 'session_summary' %}
{% elif item.kind == 'model_change' %}
{% elif item.kind == 'notification' %}
{% elif item.kind == 'turn_start' %}
{% elif item.kind == 'hook' %}
{% elif item.kind == 'file_snapshot' %}
{% elif item.kind == 'last_prompt' %}
{% elif item.kind == 'followups' %}
{% elif item.kind == 'progress_task' %}
{% elif item.kind == 'session_end' %}
{% endif %}
{% endfor %}
{{ ts_display(item.timestamp) }}
Session started · {{ 'Claude Code' if source == 'claude' else ('VS Code Chat' if source == 'vscode' else 'Copilot') }} {{ item.version }}
{% if item.repo %} · {{ item.repo }}{% endif %}
{% if item.branch %} ({{ item.branch }}){% endif %}
{{ ts_display(item.timestamp) }}{% if item.time_spent_waiting_ms %}waited {{ "%.1f"|format(item.time_spent_waiting_ms / 1000) }}s{% endif %}
User{% if item.permission_mode and item.permission_mode != 'default' %}{{ item.permission_mode }}{% endif %}{% if item.agent_mode %}{{ item.agent_mode }}{% endif %}
{{ item.content }}
{% if item.attachments %}
{% endif %}
{{ ts_display(item.timestamp) }}{% if item.output_tokens %}{{ item.output_tokens }} tokens{% endif %}{% if item.first_progress_ms %}TTFT {{ item.first_progress_ms }}ms{% endif %}{% if item.total_elapsed_ms %}{{ "%.1f"|format(item.total_elapsed_ms / 1000) }}s{% endif %}{% if item.cost_multiplier %}{{ item.cost_multiplier }}{% endif %}
Assistant
{% if item.parent_tool_call_id %} (sub-agent response){% endif %}
{% if item.stop_reason %}{{ item.stop_reason }}{% endif %}
{% if item.content %}
{{ Markup(md_to_html(item.content)) }}
{% endif %}
{% if item.tool_requests %}
Requesting tools: {% for tr in item.tool_requests %}
{% endif %}
{% if item.reasoning %}
{{ tr.toolName }}{% endfor %}
Show reasoning
{{ item.reasoning }}
{% endif %}
{{ ts_display(item.timestamp) }}
{% if item.mcp_server %}{{ item.mcp_server }} → {% endif %}{{ item.tool_name }}
{% if item.past_tense %}{{ item.past_tense }}
{% endif %}
{{ json.dumps(item.arguments, indent=2) }}
{{ ts_display(item.timestamp) }}
{% if item.success %} Tool succeeded{% else %} Tool failed{% endif %}
{{ item.result }}
{{ ts_display(item.timestamp) }}
Sub-agent started: {{ item.agent_name }}
{% if item.agent_prompt %}{% endif %}
{% if item.agent_prompt %}
{{ item.agent_prompt }}
{% endif %}
{{ ts_display(item.timestamp) }}
Sub-agent completed
{% if item.result %}{% endif %}
{% if item.result %}
{{ item.result }}
{% endif %}
{{ ts_display(item.timestamp) }}
{{ item.message }}
{{ ts_display(item.timestamp) }}
{{ item.message }}
{{ ts_display(item.timestamp) }}
AI-generated session summary
{{ item.content }}
{{ ts_display(item.timestamp) }}
Model changed to {{ item.new_model }}{% if item.reasoning_effort %} (reasoning: {{ item.reasoning_effort }}){% endif %}
{{ ts_display(item.timestamp) }}
{{ item.message }}
── Turn {{ item.turn_id }} ──
{{ ts_display(item.timestamp) }}
{{ item.hook_event }}: {{ item.hook_name }}{% if item.command %} → {{ item.command }}{% endif %}
{{ ts_display(item.timestamp) }}
{{ item.file_count }} file{{ 's' if item.file_count != 1 }} tracked: {{ item.files|join(', ') }}{% if item.file_count > 5 %}…{% endif %}
{{ ts_display(item.timestamp) }}
Session ended with pending prompt: {{ item.content[:120] }}{% if item.content|length > 120 %}…{% endif %}
{% for s in item.suggestions %}{{ s }}{% endfor %}
{{ item.content }}
{{ ts_display(item.timestamp) }}
Session ended