Claude Timings Wrapper — Productivity skill for Claude Code
Tracks idle, typing, and agent work time across Claude Code sessions using PTY wrapping and native hooks.
How to install Claude Timings Wrapper
This entry records only its repository, not the path inside it, so there is no
exact command to give. Open martinambrus/claude_timings_wrapper and copy the folder into
~/.claude/skills/, or the file into ~/.claude/agents/.
What Claude Timings Wrapper does
Tracks idle, typing, and agent work time across Claude Code sessions using PTY wrapping and native hooks. Provides per-session and aggregate stats with project-level breakdowns.
Alternatives in Productivity
- C-level Advisor — Executive advisory skills for C-level decisions 5.3k ★
- Ccplugins — Claude Code Plugins that actually save time 2.7k ★
- Repurpose — Workflow recipe — turn one blog post, video, or idea into a full platform-native content pack (thread, LinkedI 1.3k ★
README
claude-timed
Track how time is spent during Claude Code sessions: how long you're idle after the agent finishes, how long you spend typing, and how long the agent works.
How it works
`claude-timed` is a Node.js PTY wrapper that sits between your terminal and the `claude` process. It uses two mechanisms to track timing:
- Keystroke interception — The wrapper intercepts stdin in raw mode to detect when you start typing (only real text input — arrow keys, Ctrl combos, Tab, etc. are ignored).
- Claude Code hooks — Four hooks drive transitions:
- UserPromptSubmit — Fires when the user actually submits a prompt. Writes a timestamp to a temp file so the wrapper knows when the agent started working.
- Stop — Fires when the agent finishes responding. Writes a timestamp so the wrapper knows when the agent completed.
- Notification (
elicitation_dialogmatcher) — Fires when the agent enters plan mode and asks the user to confirm/adjust. The Stop hook doesn't fire in this case, so this ensures the wrapper correctly transitions to IDLE. - PreToolUse (
AskUserQuestionmatcher) — Fires when the agent asks the user a question, treating it as a stop point similar to Stop.
These signals drive a state machine:
INITIAL --(first keystroke)---------> typing started
--(UserPromptSubmit hook)---> AGENT_WORKING
AGENT_WORKING --(Stop/Notification/PreToolUse hook)--> IDLE
--(Ctrl+C)-----------------------------> IDLE (agent_interrupt)
IDLE --(first keystroke)--------------> USER_TYPING
--(Stop hook, no prior submit)---> IDLE (background_agent_stop, time counted as agent work)
USER_TYPING --(UserPromptSubmit hook)-> AGENT_WORKING
--(Ctrl+C)----------------> IDLE (typing discarded)
AGENT_WORKING + typing --(UserPromptSubmit)-> steering_submit logged, stays in AGENT_WORKING
IDLE --(120 min no activity)----------> PAUSED (session_paused; stop
Related Skills
Claude Code Agent Monitor
Monitor and visualize Claude Code agent sessions, tool use, and orchestration in real-time with a Node.js and
Heddlework
A native, harness-neutral workspace for agent sessions, task graphs, diffs, and durable work — Pi first, Codex
Spin Up
The user is telling you that the current task should be handled by a dedicated sub-agent, NOT in the main sess
Q Handoff
Generate a session handoff note for continuity across Claude Code sessions.
Context Manager
Session persistence agent that saves and restores task context across sessions, enabling pause-and-resume for
Claude Code Dashboard
A lightweight localhost dashboard that monitors multiple Claude Code sessions in real-time. See token usage, c
Related Agents
Terminal
Terminal/PTY domain - multiplexed terminal sessions with xterm.js frontend and Rust PTY backend. Use proactive
Video Analyst
Video analysis specialist that extracts comprehensive insights from YouTube videos. Use for detailed breakdown
Ugc Script Architect
Use this agent when the user asks for UGC ad scripts, trending ad format breakdowns, scroll-stopping hooks, or