[FEATURE] Display message timestamps in Claude Code CLI interface

Open 💬 17 comments Opened Jan 26, 2026 by tlelekas-cloud

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

Summary

Add visible timestamps to all messages in the Claude Code CLI interface to help users track conversation chronology, debug issues, measure performance, and create timestamped documentation.

Environment

  • OS: WSL2 Ubuntu 24.04 on Windows 11 (applicable to all platforms)
  • Claude Code Version: Current as of 2026-01-26
  • Use Case: Professional development workflows requiring session tracking, debugging, documentation, and multi-day collaboration

Current Behavior

What Users See Now

Messages appear in the Claude Code CLI with no timestamp information:

User: Run the backup script

[Assistant response appears with no visible time]

User: Check the logs
[Assistant response appears with no visible time]

User: What time did that error occur?
[No way to know without checking external logs or exporting session]

Hidden Timestamp Data

Timestamps already exist in the session .jsonl files but are not displayed in the live CLI interface:

{"type":"userMessage","text":"Run the backup script","timestamp":"2026-01-26T09:15:23.456Z"}
{"type":"assistantMessage","text":"Running backup...","timestamp":"2026-01-26T09:15:24.123Z"}
{"type":"userMessage","text":"Check the logs","timestamp":"2026-01-26T09:18:45.789Z"}

Users can only see these timestamps by:

  1. Exporting session using session export tool
  2. Manually opening .jsonl files at ~/.claude/projects/[project]/[session-id].jsonl
  3. Parsing with external tools

This creates a disconnect between available data and user experience.

Desired Behavior

Display timestamps for each message in the CLI interface, similar to how professional messaging applications (Teams, Slack, Discord) show message times.

Visual Examples

Option A: Inline Timestamps (Compact)
[09:15:23] User: Run the backup script

[09:15:24] Assistant: Running backup script...
[Output appears here]

[09:18:45] User: Check the logs
Option B: Right-Aligned Timestamps
User: Run the backup script                                    09:15:23 AM

Assistant: Running backup script...                            09:15:24 AM
[Output appears here]

User: Check the logs                                           09:18:45 AM
Option C: Hover/Toggle
User: Run the backup script     [timestamp visible on hover or toggle]
Option D: Full Date-Time for Session History
[2026-01-26 09:15:23] User: Run the backup script
[2026-01-26 09:15:24] Assistant: Running backup...

Use Cases: Why Timestamps Are Valuable

1. Session Management

  • Track when conversations happened: Know if a session is from 2 hours ago or 2 days ago
  • Resume work context: "I was working on backups yesterday afternoon around 3pm"
  • Session continuity: Understand breaks between conversation segments
  • Long-running sessions: Track work across multi-day sessions (especially with laptop sleep mode)

2. Debugging & Troubleshooting

  • Error correlation: "The error occurred at 9:15am, let me check system logs from that time"
  • Timeline reconstruction: Map Claude Code actions to external system events
  • Performance tracking: "That command took from 9:15 to 9:18 (3 minutes)"
  • Identify bottlenecks: See which operations take unusually long

3. Productivity & Time Management

  • Response time measurement: How long did Claude take to respond?
  • Session duration tracking: How much time spent on a task?
  • Work session boundaries: Clear markers for when work started/stopped
  • Billing/time tracking: Professional users billing clients for development time

4. Documentation & Knowledge Sharing

  • Timestamped records: Create documentation with temporal context
  • Team collaboration: Share conversations with "This happened at 9:15am on Jan 26"
  • Issue reports: Include timestamps when reporting bugs or problems
  • Learning artifacts: "Here is the conversation where we solved X problem (with timestamps)"

5. Long-Running Sessions

  • Multi-day tracking: Sessions that span laptop sleep/wake cycles
  • Context switching: "I started task A at 9am, switched to task B at 2pm"
  • Parallel workflows: Track multiple threads of work in same session
  • Session hygiene: Know when a session has become too long (see related issue #session-size-monitoring)

6. Audit & Compliance

  • Work verification: Prove when specific tasks were performed
  • Process documentation: Record detailed timeline of troubleshooting steps
  • Quality assurance: Review response times and workflow efficiency

Suggested Implementations

Option 1: Configuration Toggle (Recommended)

Add setting in settings.json:

{
  "showTimestamps": true,
  "timestampFormat": "HH:MM:SS"  // or "YYYY-MM-DD HH:MM:SS", "relative"
}

Benefits:

  • User choice (not forced on everyone)
  • Configurable format preferences
  • Can be changed without restart
  • Per-project configuration possible

Option 2: Command-Line Flag

claude --show-timestamps
claude --timestamp-format=full  # Show YYYY-MM-DD HH:MM:SS
claude --timestamp-format=time  # Show HH:MM:SS only
claude --timestamp-format=relative  # Show "2 minutes ago"

Benefits:

  • Quick enable/disable per session
  • No configuration file changes needed
  • Easy for occasional use

Option 3: Status Line Integration

Display current message timestamp in status line (bottom of terminal):

[Session: abc123] [09:15:23] Ready

Benefits:

  • Non-intrusive (does not clutter chat area)
  • Always visible for reference
  • Shows "current" time context

Option 4: Configurable Format Options

Support multiple timestamp formats:

  1. Time only: 09:15:23 (compact, good for same-day sessions)
  2. Full datetime: 2026-01-26 09:15:23 (best for multi-day sessions)
  3. Relative time: 2 minutes ago, 3 hours ago (human-friendly)
  4. ISO 8601: 2026-01-26T09:15:23.456Z (precise, machine-readable)
  5. Custom format: User-defined strftime-style format

Option 5: Hybrid Approach

  • Default: Show relative times ("2 minutes ago") for recent messages
  • Hover: Show full timestamp on hover
  • Old messages: Auto-switch to full datetime for messages older than 24 hours
  • Export: Always include full ISO 8601 timestamps

Current Workaround

The only current workaround is:

  1. Export session using session export tool:

``bash
bash ~/scripts/export-session.sh [session-id]
``

  1. Manually open .jsonl files:

``bash
cat ~/.claude/projects/[project-name]/[session-id].jsonl | jq
``

  1. Parse timestamps from raw .jsonl data

Problems with workaround:

  • Requires external tools
  • Breaks workflow (must exit Claude Code or use separate terminal)
  • Not real-time (must export to see timestamps)
  • Technical barrier (requires jq, bash scripting knowledge)
  • No visual integration with conversation

Prior Submission

This feature request was initially submitted via the /feedback command within Claude Code on approximately 2026-01-14. Now formally requesting via GitHub issue for:

  • Tracking: Ability to track feature request status
  • Community input: Allow other users to upvote/comment
  • Transparency: Public visibility of feature request
  • Prioritization: Help Anthropic prioritize features

Benefits

User Experience Benefits

  • Contextual awareness: Always know temporal context of conversations
  • Reduced friction: No need to export sessions just to see timestamps
  • Professional appearance: Matches expectations from other messaging tools
  • Better debugging: Immediate correlation with external events

Development Workflow Benefits

  • Faster troubleshooting: Quick timeline reconstruction
  • Better documentation: Timestamped records of solutions
  • Team collaboration: Share contextualized conversations
  • Session management: Know when to start fresh sessions

Technical Benefits

  • Data already exists: Timestamps are already captured in .jsonl files
  • Low implementation cost: Display layer only (no backend changes)
  • Minimal performance impact: Timestamps are lightweight data
  • Configurable: Can be optional feature (disabled by default if needed)

Similar Features in Other Applications

Microsoft Teams, Slack, Discord: All show timestamps next to messages (format varies: "9:15 AM", "Today at 9:15 AM", etc.)

GitHub Copilot Chat: Shows "Today at 9:15 AM" format in VS Code chat history

ChatGPT Web: Shows timestamps on hover, essential for conversation context

IRC clients (WeeChat, irssi): Standard [HH:MM:SS] prefix: [09:15:23] <user> message

Bash history: Supports HISTTIMEFORMAT for timestamped command history

Industry Standard: Timestamps are standard in ALL modern messaging apps, AI assistants, and developer tools. Claude Code is an outlier by not showing them.

Technical Notes

Data already exists: Every message in .jsonl files has timestamp field (ISO 8601 format)

No backend changes needed: This is purely a display/UI enhancement

Example from session file:

{"type":"userMessage","text":"Run backup","timestamp":"2026-01-26T09:15:23.456Z"}
{"type":"assistantMessage","text":"Running...","timestamp":"2026-01-26T09:15:24.123Z"}

Simple architecture:

Current:  .jsonl → Parse → Display (no timestamps)
Proposed: .jsonl → Parse → Format timestamp → Display (with timestamps)

Expected Impact

High value, low cost:

  • Implementation cost: LOW (display layer only)
  • User value: HIGH (fundamental professional feature)
  • Risk: MINIMAL (optional, no breaking changes)
  • Maintenance: LOW (data already captured)

User adoption:

  • Power users: Enable immediately for debugging/docs
  • Enterprise users: Critical for audit/compliance
  • Casual users: Can default to off for cleaner interface

Related Issues

This feature request complements:

  • Session size monitoring (know when sessions become too long)
  • Session export tools (timestamps already shown in exports, should be in live interface too)
  • Multi-day session tracking (essential for understanding conversation context across sleep/wake cycles)

Conclusion

Timestamps are a fundamental feature in professional communication tools. Claude Code has the data, session export tools prove it's accessible, and every comparable tool (Teams, Slack, ChatGPT, Copilot, IRC) shows timestamps by default.

This is a high-value, low-cost enhancement that would significantly improve:

  • Debugging workflows (correlate with external logs)
  • Documentation quality (timestamped records)
  • Team collaboration (share contextualized conversations)
  • Professional usage (audit trails, billing, compliance)

Request: Implement configurable timestamp display in Claude Code CLI interface, defaulting to off for backward compatibility but easily enabled via settings.json or command-line flag.

---

Submitted by: User (via prior /feedback command ~2026-01-14, now formalizing via GitHub)
Date: 2026-01-26
Priority: Medium-High (quality-of-life improvement with professional workflow impact)

Proposed Solution

Summary

Add visible timestamps to all messages in the Claude Code CLI interface to help users track conversation chronology, debug issues, measure performance, and create timestamped documentation.

Environment

  • OS: WSL2 Ubuntu 24.04 on Windows 11 (applicable to all platforms)
  • Claude Code Version: Current as of 2026-01-26
  • Use Case: Professional development workflows requiring session tracking, debugging, documentation, and multi-day collaboration

Current Behavior

What Users See Now

Messages appear in the Claude Code CLI with no timestamp information:

User: Run the backup script

[Assistant response appears with no visible time]

User: Check the logs
[Assistant response appears with no visible time]

User: What time did that error occur?
[No way to know without checking external logs or exporting session]

Hidden Timestamp Data

Timestamps already exist in the session .jsonl files but are not displayed in the live CLI interface:

{"type":"userMessage","text":"Run the backup script","timestamp":"2026-01-26T09:15:23.456Z"}
{"type":"assistantMessage","text":"Running backup...","timestamp":"2026-01-26T09:15:24.123Z"}
{"type":"userMessage","text":"Check the logs","timestamp":"2026-01-26T09:18:45.789Z"}

Users can only see these timestamps by:

  1. Exporting session using session export tool
  2. Manually opening .jsonl files at ~/.claude/projects/[project]/[session-id].jsonl
  3. Parsing with external tools

This creates a disconnect between available data and user experience.

Desired Behavior

Display timestamps for each message in the CLI interface, similar to how professional messaging applications (Teams, Slack, Discord) show message times.

Visual Examples

Option A: Inline Timestamps (Compact)
[09:15:23] User: Run the backup script

[09:15:24] Assistant: Running backup script...
[Output appears here]

[09:18:45] User: Check the logs
Option B: Right-Aligned Timestamps
User: Run the backup script                                    09:15:23 AM

Assistant: Running backup script...                            09:15:24 AM
[Output appears here]

User: Check the logs                                           09:18:45 AM
Option C: Hover/Toggle
User: Run the backup script     [timestamp visible on hover or toggle]
Option D: Full Date-Time for Session History
[2026-01-26 09:15:23] User: Run the backup script
[2026-01-26 09:15:24] Assistant: Running backup...

Use Cases: Why Timestamps Are Valuable

1. Session Management

  • Track when conversations happened: Know if a session is from 2 hours ago or 2 days ago
  • Resume work context: "I was working on backups yesterday afternoon around 3pm"
  • Session continuity: Understand breaks between conversation segments
  • Long-running sessions: Track work across multi-day sessions (especially with laptop sleep mode)

2. Debugging & Troubleshooting

  • Error correlation: "The error occurred at 9:15am, let me check system logs from that time"
  • Timeline reconstruction: Map Claude Code actions to external system events
  • Performance tracking: "That command took from 9:15 to 9:18 (3 minutes)"
  • Identify bottlenecks: See which operations take unusually long

3. Productivity & Time Management

  • Response time measurement: How long did Claude take to respond?
  • Session duration tracking: How much time spent on a task?
  • Work session boundaries: Clear markers for when work started/stopped
  • Billing/time tracking: Professional users billing clients for development time

4. Documentation & Knowledge Sharing

  • Timestamped records: Create documentation with temporal context
  • Team collaboration: Share conversations with "This happened at 9:15am on Jan 26"
  • Issue reports: Include timestamps when reporting bugs or problems
  • Learning artifacts: "Here is the conversation where we solved X problem (with timestamps)"

5. Long-Running Sessions

  • Multi-day tracking: Sessions that span laptop sleep/wake cycles
  • Context switching: "I started task A at 9am, switched to task B at 2pm"
  • Parallel workflows: Track multiple threads of work in same session
  • Session hygiene: Know when a session has become too long (see related issue #session-size-monitoring)

6. Audit & Compliance

  • Work verification: Prove when specific tasks were performed
  • Process documentation: Record detailed timeline of troubleshooting steps
  • Quality assurance: Review response times and workflow efficiency

Suggested Implementations

Option 1: Configuration Toggle (Recommended)

Add setting in settings.json:

{
  "showTimestamps": true,
  "timestampFormat": "HH:MM:SS"  // or "YYYY-MM-DD HH:MM:SS", "relative"
}

Benefits:

  • User choice (not forced on everyone)
  • Configurable format preferences
  • Can be changed without restart
  • Per-project configuration possible

Option 2: Command-Line Flag

claude --show-timestamps
claude --timestamp-format=full  # Show YYYY-MM-DD HH:MM:SS
claude --timestamp-format=time  # Show HH:MM:SS only
claude --timestamp-format=relative  # Show "2 minutes ago"

Benefits:

  • Quick enable/disable per session
  • No configuration file changes needed
  • Easy for occasional use

Option 3: Status Line Integration

Display current message timestamp in status line (bottom of terminal):

[Session: abc123] [09:15:23] Ready

Benefits:

  • Non-intrusive (does not clutter chat area)
  • Always visible for reference
  • Shows "current" time context

Option 4: Configurable Format Options

Support multiple timestamp formats:

  1. Time only: 09:15:23 (compact, good for same-day sessions)
  2. Full datetime: 2026-01-26 09:15:23 (best for multi-day sessions)
  3. Relative time: 2 minutes ago, 3 hours ago (human-friendly)
  4. ISO 8601: 2026-01-26T09:15:23.456Z (precise, machine-readable)
  5. Custom format: User-defined strftime-style format

Option 5: Hybrid Approach

  • Default: Show relative times ("2 minutes ago") for recent messages
  • Hover: Show full timestamp on hover
  • Old messages: Auto-switch to full datetime for messages older than 24 hours
  • Export: Always include full ISO 8601 timestamps

Current Workaround

The only current workaround is:

  1. Export session using session export tool:

``bash
bash ~/scripts/export-session.sh [session-id]
``

  1. Manually open .jsonl files:

``bash
cat ~/.claude/projects/[project-name]/[session-id].jsonl | jq
``

  1. Parse timestamps from raw .jsonl data

Problems with workaround:

  • Requires external tools
  • Breaks workflow (must exit Claude Code or use separate terminal)
  • Not real-time (must export to see timestamps)
  • Technical barrier (requires jq, bash scripting knowledge)
  • No visual integration with conversation

Prior Submission

This feature request was initially submitted via the /feedback command within Claude Code on approximately 2026-01-14. Now formally requesting via GitHub issue for:

  • Tracking: Ability to track feature request status
  • Community input: Allow other users to upvote/comment
  • Transparency: Public visibility of feature request
  • Prioritization: Help Anthropic prioritize features

Benefits

User Experience Benefits

  • Contextual awareness: Always know temporal context of conversations
  • Reduced friction: No need to export sessions just to see timestamps
  • Professional appearance: Matches expectations from other messaging tools
  • Better debugging: Immediate correlation with external events

Development Workflow Benefits

  • Faster troubleshooting: Quick timeline reconstruction
  • Better documentation: Timestamped records of solutions
  • Team collaboration: Share contextualized conversations
  • Session management: Know when to start fresh sessions

Technical Benefits

  • Data already exists: Timestamps are already captured in .jsonl files
  • Low implementation cost: Display layer only (no backend changes)
  • Minimal performance impact: Timestamps are lightweight data
  • Configurable: Can be optional feature (disabled by default if needed)

Similar Features in Other Applications

Microsoft Teams, Slack, Discord: All show timestamps next to messages (format varies: "9:15 AM", "Today at 9:15 AM", etc.)

GitHub Copilot Chat: Shows "Today at 9:15 AM" format in VS Code chat history

ChatGPT Web: Shows timestamps on hover, essential for conversation context

IRC clients (WeeChat, irssi): Standard [HH:MM:SS] prefix: [09:15:23] <user> message

Bash history: Supports HISTTIMEFORMAT for timestamped command history

Industry Standard: Timestamps are standard in ALL modern messaging apps, AI assistants, and developer tools. Claude Code is an outlier by not showing them.

Technical Notes

Data already exists: Every message in .jsonl files has timestamp field (ISO 8601 format)

No backend changes needed: This is purely a display/UI enhancement

Example from session file:

{"type":"userMessage","text":"Run backup","timestamp":"2026-01-26T09:15:23.456Z"}
{"type":"assistantMessage","text":"Running...","timestamp":"2026-01-26T09:15:24.123Z"}

Simple architecture:

Current:  .jsonl → Parse → Display (no timestamps)
Proposed: .jsonl → Parse → Format timestamp → Display (with timestamps)

Expected Impact

High value, low cost:

  • Implementation cost: LOW (display layer only)
  • User value: HIGH (fundamental professional feature)
  • Risk: MINIMAL (optional, no breaking changes)
  • Maintenance: LOW (data already captured)

User adoption:

  • Power users: Enable immediately for debugging/docs
  • Enterprise users: Critical for audit/compliance
  • Casual users: Can default to off for cleaner interface

Related Issues

This feature request complements:

  • Session size monitoring (know when sessions become too long)
  • Session export tools (timestamps already shown in exports, should be in live interface too)
  • Multi-day session tracking (essential for understanding conversation context across sleep/wake cycles)

Conclusion

Timestamps are a fundamental feature in professional communication tools. Claude Code has the data, session export tools prove it's accessible, and every comparable tool (Teams, Slack, ChatGPT, Copilot, IRC) shows timestamps by default.

This is a high-value, low-cost enhancement that would significantly improve:

  • Debugging workflows (correlate with external logs)
  • Documentation quality (timestamped records)
  • Team collaboration (share contextualized conversations)
  • Professional usage (audit trails, billing, compliance)

Request: Implement configurable timestamp display in Claude Code CLI interface, defaulting to off for backward compatibility but easily enabled via settings.json or command-line flag.

---

Submitted by: User (via prior /feedback command ~2026-01-14, now formalizing via GitHub)
Date: 2026-01-26
Priority: Medium-High (quality-of-life improvement with professional workflow impact)

Alternative Solutions

_No response_

Priority

Medium - Would be very helpful

Feature Category

Interactive mode (TUI)

Use Case Example

Summary

Add visible timestamps to all messages in the Claude Code CLI interface to help users track conversation chronology, debug issues, measure performance, and create timestamped documentation.

Environment

  • OS: WSL2 Ubuntu 24.04 on Windows 11 (applicable to all platforms)
  • Claude Code Version: Current as of 2026-01-26
  • Use Case: Professional development workflows requiring session tracking, debugging, documentation, and multi-day collaboration

Current Behavior

What Users See Now

Messages appear in the Claude Code CLI with no timestamp information:

User: Run the backup script

[Assistant response appears with no visible time]

User: Check the logs
[Assistant response appears with no visible time]

User: What time did that error occur?
[No way to know without checking external logs or exporting session]

Hidden Timestamp Data

Timestamps already exist in the session .jsonl files but are not displayed in the live CLI interface:

{"type":"userMessage","text":"Run the backup script","timestamp":"2026-01-26T09:15:23.456Z"}
{"type":"assistantMessage","text":"Running backup...","timestamp":"2026-01-26T09:15:24.123Z"}
{"type":"userMessage","text":"Check the logs","timestamp":"2026-01-26T09:18:45.789Z"}

Users can only see these timestamps by:

  1. Exporting session using session export tool
  2. Manually opening .jsonl files at ~/.claude/projects/[project]/[session-id].jsonl
  3. Parsing with external tools

This creates a disconnect between available data and user experience.

Desired Behavior

Display timestamps for each message in the CLI interface, similar to how professional messaging applications (Teams, Slack, Discord) show message times.

Visual Examples

Option A: Inline Timestamps (Compact)
[09:15:23] User: Run the backup script

[09:15:24] Assistant: Running backup script...
[Output appears here]

[09:18:45] User: Check the logs
Option B: Right-Aligned Timestamps
User: Run the backup script                                    09:15:23 AM

Assistant: Running backup script...                            09:15:24 AM
[Output appears here]

User: Check the logs                                           09:18:45 AM
Option C: Hover/Toggle
User: Run the backup script     [timestamp visible on hover or toggle]
Option D: Full Date-Time for Session History
[2026-01-26 09:15:23] User: Run the backup script
[2026-01-26 09:15:24] Assistant: Running backup...

Use Cases: Why Timestamps Are Valuable

1. Session Management

  • Track when conversations happened: Know if a session is from 2 hours ago or 2 days ago
  • Resume work context: "I was working on backups yesterday afternoon around 3pm"
  • Session continuity: Understand breaks between conversation segments
  • Long-running sessions: Track work across multi-day sessions (especially with laptop sleep mode)

2. Debugging & Troubleshooting

  • Error correlation: "The error occurred at 9:15am, let me check system logs from that time"
  • Timeline reconstruction: Map Claude Code actions to external system events
  • Performance tracking: "That command took from 9:15 to 9:18 (3 minutes)"
  • Identify bottlenecks: See which operations take unusually long

3. Productivity & Time Management

  • Response time measurement: How long did Claude take to respond?
  • Session duration tracking: How much time spent on a task?
  • Work session boundaries: Clear markers for when work started/stopped
  • Billing/time tracking: Professional users billing clients for development time

4. Documentation & Knowledge Sharing

  • Timestamped records: Create documentation with temporal context
  • Team collaboration: Share conversations with "This happened at 9:15am on Jan 26"
  • Issue reports: Include timestamps when reporting bugs or problems
  • Learning artifacts: "Here is the conversation where we solved X problem (with timestamps)"

5. Long-Running Sessions

  • Multi-day tracking: Sessions that span laptop sleep/wake cycles
  • Context switching: "I started task A at 9am, switched to task B at 2pm"
  • Parallel workflows: Track multiple threads of work in same session
  • Session hygiene: Know when a session has become too long (see related issue #session-size-monitoring)

6. Audit & Compliance

  • Work verification: Prove when specific tasks were performed
  • Process documentation: Record detailed timeline of troubleshooting steps
  • Quality assurance: Review response times and workflow efficiency

Suggested Implementations

Option 1: Configuration Toggle (Recommended)

Add setting in settings.json:

{
  "showTimestamps": true,
  "timestampFormat": "HH:MM:SS"  // or "YYYY-MM-DD HH:MM:SS", "relative"
}

Benefits:

  • User choice (not forced on everyone)
  • Configurable format preferences
  • Can be changed without restart
  • Per-project configuration possible

Option 2: Command-Line Flag

claude --show-timestamps
claude --timestamp-format=full  # Show YYYY-MM-DD HH:MM:SS
claude --timestamp-format=time  # Show HH:MM:SS only
claude --timestamp-format=relative  # Show "2 minutes ago"

Benefits:

  • Quick enable/disable per session
  • No configuration file changes needed
  • Easy for occasional use

Option 3: Status Line Integration

Display current message timestamp in status line (bottom of terminal):

[Session: abc123] [09:15:23] Ready

Benefits:

  • Non-intrusive (does not clutter chat area)
  • Always visible for reference
  • Shows "current" time context

Option 4: Configurable Format Options

Support multiple timestamp formats:

  1. Time only: 09:15:23 (compact, good for same-day sessions)
  2. Full datetime: 2026-01-26 09:15:23 (best for multi-day sessions)
  3. Relative time: 2 minutes ago, 3 hours ago (human-friendly)
  4. ISO 8601: 2026-01-26T09:15:23.456Z (precise, machine-readable)
  5. Custom format: User-defined strftime-style format

Option 5: Hybrid Approach

  • Default: Show relative times ("2 minutes ago") for recent messages
  • Hover: Show full timestamp on hover
  • Old messages: Auto-switch to full datetime for messages older than 24 hours
  • Export: Always include full ISO 8601 timestamps

Current Workaround

The only current workaround is:

  1. Export session using session export tool:

``bash
bash ~/scripts/export-session.sh [session-id]
``

  1. Manually open .jsonl files:

``bash
cat ~/.claude/projects/[project-name]/[session-id].jsonl | jq
``

  1. Parse timestamps from raw .jsonl data

Problems with workaround:

  • Requires external tools
  • Breaks workflow (must exit Claude Code or use separate terminal)
  • Not real-time (must export to see timestamps)
  • Technical barrier (requires jq, bash scripting knowledge)
  • No visual integration with conversation

Prior Submission

This feature request was initially submitted via the /feedback command within Claude Code on approximately 2026-01-14. Now formally requesting via GitHub issue for:

  • Tracking: Ability to track feature request status
  • Community input: Allow other users to upvote/comment
  • Transparency: Public visibility of feature request
  • Prioritization: Help Anthropic prioritize features

Benefits

User Experience Benefits

  • Contextual awareness: Always know temporal context of conversations
  • Reduced friction: No need to export sessions just to see timestamps
  • Professional appearance: Matches expectations from other messaging tools
  • Better debugging: Immediate correlation with external events

Development Workflow Benefits

  • Faster troubleshooting: Quick timeline reconstruction
  • Better documentation: Timestamped records of solutions
  • Team collaboration: Share contextualized conversations
  • Session management: Know when to start fresh sessions

Technical Benefits

  • Data already exists: Timestamps are already captured in .jsonl files
  • Low implementation cost: Display layer only (no backend changes)
  • Minimal performance impact: Timestamps are lightweight data
  • Configurable: Can be optional feature (disabled by default if needed)

Similar Features in Other Applications

Microsoft Teams, Slack, Discord: All show timestamps next to messages (format varies: "9:15 AM", "Today at 9:15 AM", etc.)

GitHub Copilot Chat: Shows "Today at 9:15 AM" format in VS Code chat history

ChatGPT Web: Shows timestamps on hover, essential for conversation context

IRC clients (WeeChat, irssi): Standard [HH:MM:SS] prefix: [09:15:23] <user> message

Bash history: Supports HISTTIMEFORMAT for timestamped command history

Industry Standard: Timestamps are standard in ALL modern messaging apps, AI assistants, and developer tools. Claude Code is an outlier by not showing them.

Technical Notes

Data already exists: Every message in .jsonl files has timestamp field (ISO 8601 format)

No backend changes needed: This is purely a display/UI enhancement

Example from session file:

{"type":"userMessage","text":"Run backup","timestamp":"2026-01-26T09:15:23.456Z"}
{"type":"assistantMessage","text":"Running...","timestamp":"2026-01-26T09:15:24.123Z"}

Simple architecture:

Current:  .jsonl → Parse → Display (no timestamps)
Proposed: .jsonl → Parse → Format timestamp → Display (with timestamps)

Expected Impact

High value, low cost:

  • Implementation cost: LOW (display layer only)
  • User value: HIGH (fundamental professional feature)
  • Risk: MINIMAL (optional, no breaking changes)
  • Maintenance: LOW (data already captured)

User adoption:

  • Power users: Enable immediately for debugging/docs
  • Enterprise users: Critical for audit/compliance
  • Casual users: Can default to off for cleaner interface

Related Issues

This feature request complements:

  • Session size monitoring (know when sessions become too long)
  • Session export tools (timestamps already shown in exports, should be in live interface too)
  • Multi-day session tracking (essential for understanding conversation context across sleep/wake cycles)

Conclusion

Timestamps are a fundamental feature in professional communication tools. Claude Code has the data, session export tools prove it's accessible, and every comparable tool (Teams, Slack, ChatGPT, Copilot, IRC) shows timestamps by default.

This is a high-value, low-cost enhancement that would significantly improve:

  • Debugging workflows (correlate with external logs)
  • Documentation quality (timestamped records)
  • Team collaboration (share contextualized conversations)
  • Professional usage (audit trails, billing, compliance)

Request: Implement configurable timestamp display in Claude Code CLI interface, defaulting to off for backward compatibility but easily enabled via settings.json or command-line flag.

---

Submitted by: User (via prior /feedback command ~2026-01-14, now formalizing via GitHub)
Date: 2026-01-26
Priority: Medium-High (quality-of-life improvement with professional workflow impact)

Additional Context

_No response_

View original on GitHub ↗

16 Comments

github-actions[bot] · 5 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/2441
  2. https://github.com/anthropics/claude-code/issues/9921
  3. https://github.com/anthropics/claude-code/issues/20739

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

tlelekas-cloud · 5 months ago

What other proposed 'master' tickets are missing, is the use case included here which also requires some obvious DATE differentiation/separator, simply because a user might have a long session open for days and/or their machine open (not rebooted, or in and out of sleep mode) for days as well.

This is not uncommon at all, the DATE + TIME 'timestamp' must be smart and accurate enough to accommodate all such scenarios and present the much needed correct timestamp always of 'smartly' periodically so that is is clear for instance: the timestamp when Claude Code CLI hanged or crashed, the user asking for specific timestamps or ranges of the same to enable better searching in older discussions and less process time etc

acron0 · 4 months ago
What other proposed 'master' tickets are missing, is the use case included here which also requires some obvious DATE differentiation/separator, simply because a user might have a long session open for days and/or their machine open (not rebooted, or in and out of sleep mode) for days as well. This is not uncommon at all, the DATE + TIME 'timestamp' must be smart and accurate enough to accommodate all such scenarios and present the much needed correct timestamp always of 'smartly' periodically so that is is clear for instance: the timestamp when Claude Code CLI hanged or crashed, the user asking for specific timestamps or ranges of the same to enable better searching in older discussions and less process time etc

These feel like additional enhancements, not what this issue is asking for

tlelekas-cloud · 4 months ago
> What other proposed 'master' tickets are missing, is the use case included here which also requires some obvious DATE differentiation/separator, simply because a user might have a long session open for days and/or their machine open (not rebooted, or in and out of sleep mode) for days as well. > This is not uncommon at all, the DATE + TIME 'timestamp' must be smart and accurate enough to accommodate all such scenarios and present the much needed correct timestamp always of 'smartly' periodically so that is is clear for instance: the timestamp when Claude Code CLI hanged or crashed, the user asking for specific timestamps or ranges of the same to enable better searching in older discussions and less process time etc These feel like additional enhancements, not what this issue is asking for

It is a package of the What and the How. I don't see WHY it would be more efficient to action them separately. When a Story/Feature is defined both need to be specified/addressed, if/when possible all in one place (or else, in the least amount of separate/linked tickets). Not my decision to take here obviously.

bhanquier · 4 months ago

Real-world workaround: I ask Claude to run date "+%y/%m/%d %H:%M" at the start of every response and display the result. It costs negligible tokens (~1 bash call) and solves the problem completely for long sessions.

Without this, Claude confidently invents timestamps — e.g. writing "2:00 AM" in a summary when it was actually 8:34 AM. During multi-hour coding sessions, having reliable time references is essential for the user to track progress and know when to stop.

The ideal solution would be for Claude Code to inject the current timestamp into the system context at each turn, so the model has time awareness without needing a tool call. This could be as simple as adding Current time: 2026-03-14 09:30 CET to the system prompt on each user message.

consentculture · 4 months ago

Agree that it should be inherent behavior, but you can also use a hook that injects datetime into the input context instead of part of the response.

"UserPromptSubmit": [
  {
    "matcher": "",
    "hooks": [
      {
        "type": "command",
        "command": "date '+%Y-%m-%d %H:%M:%S %Z'"
      }
    ]
  }
]
Real-world workaround: I ask Claude to run date "+%y/%m/%d %H:%M" at the start of every response and display the result. It costs negligible tokens (~1 bash call) and solves the problem completely for long sessions. Without this, Claude confidently invents timestamps — e.g. writing "2:00 AM" in a summary when it was actually 8:34 AM. During multi-hour coding sessions, having reliable time references is essential for the user to track progress and know when to stop. The ideal solution would be for Claude Code to inject the current timestamp into the system context at each turn, so the model has time awareness without needing a tool call. This could be as simple as adding Current time: 2026-03-14 09:30 CET to the system prompt on each user message.
bhanquier · 3 months ago

Adding my voice to the choir. Time awareness is indispensable now, please implement.

ProducerGuy · 3 months ago

Hey @tlelekas-cloud — I've been meaning to track conversation chronology for a while porting between different sessions and AI. Check out claude-timecodes because I think it would help if you're still looking.

s-a-s-k-i-a · 3 months ago

I built a plugin that addresses this as a workaround until native support lands:

claude-code-timestamps — adds a /timestamps command that displays a timestamped message timeline from your current session's transcript data.

--- Message Timeline ---

14:02  You     Can you refactor the auth module?
14:02  Claude  I'll start by reading the current auth implementation...
14:05  Claude  I've refactored the auth module. Here's what changed...
14:32  You     Looks good. Now add tests for the new token refresh logic.
  • Uses HH:MM for same-day, YYYY-MM-DD HH:MM for older messages
  • Reads existing transcript JSONL — no data collected, everything local
  • Install: clone, add to settings.json, restart

A native UI integration would obviously be better, but this can help in the meantime.

HazelLessiter · 3 months ago

While I appreciate the workarounds people have worked on. Having native support for this would be very beneficial.

AfterBTCreate · 3 months ago

+1 on this. Running Claude Code as an always-on engineering manager agent (--dangerously-skip-permissions) on a dedicated workstation, sessions routinely run for hours. Without per-message timestamps there's no way to correlate events, gauge task duration, or review what happened when.

Our workaround is a custom cc-read script that tails the JSONL session logs with timestamps injected, but that requires a second terminal and only works after the fact. Native timestamps in the conversation view would be a much better experience.

Even a simple dim HH:MM prefix on each turn would be enough — doesn't need to be fancy.

paulpacaud · 2 months ago

It would be really useful. I support the issue raised by the previous users

amandaolsen · 2 months ago

Was about to request this. I see someone already did! Thank you!

zoharbabin · 1 month ago

Here's a working solution for the CLI today — a plugin that adds local-time [HH:MM:SS] to every message using a MessageDisplay hook: https://github.com/zoharbabin/claude-code-message-timestamps

/plugin marketplace add zoharbabin/claude-code-message-timestamps then /plugin install message-timestamps@zoharbabin-claude-tools — cross-OS (macOS/Linux/Windows via Git Bash), MIT. (discussion in #2441)

acron0 · 1 month ago
Here's a working solution for the CLI today — a plugin that adds local-time [HH:MM:SS] to every message using a MessageDisplay hook: https://github.com/zoharbabin/claude-code-message-timestamps /plugin marketplace add zoharbabin/claude-code-message-timestamps then /plugin install message-timestamps@zoharbabin-claude-tools — cross-OS (macOS/Linux/Windows via Git Bash), MIT. _(discussion in #2441)_

This is a great solution, thank you @zoharbabin

s-a-s-k-i-a · 28 days ago

Update — I've shipped v2 of the plugin I linked above (claude-code-timestamps). Beyond the /timestamps timeline (now with day dividers + idle-gap markers), it adds an experimental live inline [HH:MM:SS] on each message via the MessageDisplay hook — display-only, so 0 tokens — toggled with /timestamps inline on|off, plus an optional off-by-default hook to make Claude itself time-aware.

Install: /plugin marketplace add s-a-s-k-i-a/claude-code-timestamps/plugin install chat-timestamps@chat-timestamps.

Showing cached comments. Read the full discussion on GitHub ↗