NiceTiming

The time of your AI agents

NiceTiming shows the time coding agents such as Claude Code or Codex spend in your projects apart from your own, and, when you turn it on, the tokens they use and what they would cost. It reads numbers on your computer, never the text of your conversations.

The AI tab of the NiceTiming dashboard in VS Code: tokens per day for Claude Code, Codex and Aider, their estimated cost, and the share read from cache.
The AI tab in VS Code: tokens and their cost by agent, model and project.

Agent time, apart from yours

Tracking starts on install. When a file changes while you are not editing it, because an agent writes it from a terminal or edits a file you are not looking at, NiceTiming records that time as an agent’s, in the project the file belongs to. The dashboard shows it by agent and by project, beside your own time.

It names the agent from the terminals open in the window: Claude Code, Codex, Aider, Gemini CLI, OpenCode, Cursor’s agent or Copilot CLI. Without such a terminal, the time goes to the editor itself in Cursor, Windsurf, Antigravity, Trae and Kiro, and to an unnamed agent elsewhere.

The setting clockingTimer.tracking.aiAgents, on by default, turns it off.

Tokens and their cost

Turn it on with the command “NiceTiming: Choose where to read AI token usage”. Every ten minutes, NiceTiming then reads the files these tools keep on your computer: ~/.claude/projects for Claude Code, ~/.codex/sessions for Codex, .aider.chat.history.md in your folders for Aider, and the task folders of Cline, Roo Code and Kilo Code.

The AI tab of the dashboard shows the tokens by project, model and agent, per day or per hour, with what they would cost at the public API prices. The date of those prices is shown, and you can price other models yourself (clockingTimer.ai.usage.prices). NiceTiming’s own requests to a language model can be counted too.

NiceTiming keeps one line per hour, tool, model and project, with the token counts. The conversations themselves are never stored.

Agents at work

While Claude Code, Codex, Cline, Roo Code or Kilo Code work, a status bar item shows the sessions going on, a notification says when one finishes or waits for an approval or an answer (by default only when its terminal is not in sight), and the Today view lists the agents at work. One click brings you back to the session’s terminal.

For this, NiceTiming reads the end of the logs these tools changed in the last six hours, and of each line only its structure: its time and kind, whether a turn ended, the ids of tool calls and of their results. What you and the agents write is not kept. The setting clockingTimer.agents.enabled turns it off.

Optional hooks make approvals and ends of turns exact. “NiceTiming: Get exact alerts from Claude Code” adds them to ~/.claude/settings.json, next to your own, after showing the change, and keeps a backup; “NiceTiming: Get exact alerts from Codex” sets notify in ~/.codex/config.toml when it is free. Both run a small script that writes the event, the session id, the folder and the time, never the prompts or answers.

A coach for your AI setup

For Claude Code and Codex, the AI tab looks at each prompt you sent: the model and effort it ran with, and the tool calls, files edited, subagents, time and tokens it took. From these numbers it estimates whether a lighter model or a lower effort would likely have done the same work, and what that would have cost. These are estimates, and shown as such.

The coach reads the text of your prompts only if you allow it (clockingTimer.ai.coach.readPrompts, off by default), in memory, to tell a quick question from a large change, and never stores it. Its numbers stay on your computer: they are not synced, exported or put in backups.

What is read, and what is never kept

Read and kept, as numbers

  • The tokens, model, time and folder of each request
  • For the coach: the effort, requests, tool calls, subagents and interruptions of each prompt, and how many files were edited, never which ones

Never kept

  • The text of your conversations with an agent
  • The agents’ answers
  • The contents of your files
  • The agents’ logs: only their structure is read, to show the agents at work, and nothing of them is stored
  • The text of your prompts, unless you choose to keep a history of them on your computer, secrets removed (NiceTiming Pro, clockingTimer.ai.requests.keepHistory, off by default)

With sync on, the hourly token counts go to NiceTiming Cloud with the rest of your time, never any text. The coach’s numbers stay on your computer.

With NiceTiming Pro

Requests to your AI agents: each request’s cost, time and result, the time you save with agents, your sessions on one timeline, the model and effort that work best for you, loops spotted, your agents’ context, a prompt history kept on your computer, and the cost of the sessions at work.

See the plans

Try it on your own agents

Install the extension, let an agent work, and open the AI tab.