idle-timing — Claude Code plugin: what it does, how to install
Injects invisible timing metadata into Claude Code prompts and adds an elapsed idle timer to your terminal statusline.
/plugin marketplace add anthropics/claude-plugins-community
/plugin install idle-timing@claude-communityWhat idle-timing does
The plugin hooks into session events to give the assistant temporal context. Each user submission receives a hidden [timing] block recording the local timestamp, idle seconds since the last assistant turn, and prior turn runtime. A brief terminal notice shows up whenever your gap between replies passes 10 seconds.
All per-session timing state and NDJSON logs live inside the directory set by CLAUDE_PLUGIN_DATA. During conversation compaction, the PreCompact hook resets the timer so it counts from the compaction event. You can check diagnostics via /idle-time-status or reconfigure statusline integration with /idle-time-setup.
Two statusline helper scripts come in the box. The POSIX shell version updates in under 10 ms per tick by parsing the cached session file without launching a Node runtime. Without a valid session_id piped via standard input, the statusline fragment produces no text.
What it helps with
- supply local time and turn durations directly into assistant prompts
- display idle pauses between turns in the statusline
- reset session timers accurately when context compaction triggers
- log hook execution errors to NDJSON session files
Example prompts for the agent
- /idle-time-setup
- /idle-time-status
- /idle-time-reset
How to install idle-timing
Plugin marketplace
/plugin marketplace add anthropics/claude-plugins-community/plugin install idle-timing@claude-communityStep by step, with commands for each platform: Claude Code plugins: marketplaces, installing, and building your own
Questions about idle-timing
How do I install idle-timing in Claude Code?
Run /plugin marketplace add anthropics/claude-plugins-community in your session, then install the package with /plugin install idle-timing@claude-community.
What does idle-timing do?
It attaches hidden timestamps and pause durations to prompts so the model knows how long you waited. It also prints terminal hints for gaps longer than 10 seconds.
What is the difference between the two statusline fragments?
The shell script scripts/statusline-fragment.sh runs in under 10 ms without Node overhead. The Node version scripts/statusline-fragment.js tracks model changes with a --- flag but costs roughly 100 ms per cycle.