⏱ Timestamps — a clean conversation timeline for Claude Code
See exactly when every message in your Claude Code session was sent.
A zero-dependency, cross-platform Claude Code plugin. It adds a
/timestamps:log command that prints a clean, date-grouped timeline of your
conversation — every message with a full [HH:MM:SS] timestamp — plus an
optional always-on clock for the status bar.
--- Message Timeline ---
Thu 14 May 2026
[14:51:52] Llewellyn:
what is the time?
[14:51:55] Claude:
It's 2:51 PM, Thursday 14 May 2026.
Showing 2 of 48 messages.
Why
Claude Code doesn't show timestamps on messages. In a long session you lose
track of when things happened — when you asked something, when a task
started, how long ago a decision was made. The data exists in Claude Code's
transcript files, but it's buried in JSON. This plugin surfaces it as a clean,
readable timeline whenever you want it.
Why on-demand instead of live?
Honest answer: Claude Code's plugin system cannot put a clean timestamp on a
live message. Hooks can't modify message bubbles, and any visible hook output is
forced through a ⎿ <Event> says: wrapper that clutters the transcript. Rather
than ship something noisy, this plugin does the part Claude Code can do
well — a clean, accurate timeline on demand — plus an optional status-bar clock
for an always-visible current time. See How it works for the
detail.
This plugin was inspired by s-a-s-k-i-a/claude-code-timestamps.
It is a ground-up rewrite: pure Node instead of Python (so it works on Windows
out of the box), with seconds, full dates, date grouping, and the [time] Name:
layout.
What you get
| Feature | Detail |
|---|
/timestamps:log | A clean, date-grouped timeline of recent messages, each with a [HH:MM:SS] Name: header. |
| Full precision | Hours, minutes, and seconds, plus a date header per day. Local timezone. |
| Your name, automatically | Your messages are labelled with your OS username by default (configurable). |
| Optional status-bar clock | An opt-in live clock for the bottom of the terminal: ⏱ 14:51:55 · Thu 14 May 2026. |
| Zero config | Works immediately. An optional config.json customises everything. |
| Self-contained | Pure Node, no dependencies, no install step, no background processes. Doesn't register hooks, doesn't touch your other settings. |
Install
Requirements: Claude Code with plugin support, and Node.js — which ships
with Claude Code, so it's already there. Works on Windows, macOS, and Linux.
Option A — install from GitHub (recommended)
Inside Claude Code:
/plugin marketplace add llewellynvz/claude-code-timestamps
/plugin install timestamps@claude-code-timestamps
Then restart Claude Code (or run /reload-plugins). The /timestamps:log
command is now available in every session.
Option B — install from a local copy
If you have this repository cloned on disk:
/plugin marketplace add "/path/to/claude-code-timestamps"
/plugin install timestamps@claude-code-timestamps
Replace /path/to/claude-code-timestamps with wherever you cloned this folder
(quote it if the path contains spaces). The marketplace name comes from
marketplace.json and is claude-code-timestamps.
Option C — load it for a single session (development / trying it out)
claude --plugin-dir "/path/to/claude-code-timestamps"
This loads the plugin for that session only, without installing anything.
Verify it's working
- Run
/timestamps:log — you should see the timeline.
- Run
claude plugin validate . from this folder — it should report
Validation passed.
Usage
/timestamps:log # last 20 messages, with timestamps, grouped by day
/timestamps:log 50 # last 50 messages
/timestamps:log 5 # just the last 5
Each entry is rendered as:
[14:51:52] Llewellyn:
what is the time?
— a [HH:MM:SS] Name: header, the message text below it, and a blank line
before the next entry. Messages are grouped under a Thu 14 May 2026 date
header. Long messages are trimmed to a readable preview length.
Configuration
The plugin works with no configuration at all. To customise it, create a
file called config.json in the plugin's data directory.
Where the data directory is:
| Install method | config.json location |
|---|
| Installed from a marketplace | ~/.claude/plugins/data/timestamps-claude-code-timestamps/config.json |
Loaded via --plugin-dir | ~/.claude/plugins/data/timestamps-inline/config.json |
| Fallback (if the above is unavailable) | <your OS temp dir>/claude-timestamps/config.json |
On Windows, ~ is C:\Users\<you>. The directory is created automatically the
first time the plugin runs.