Skip to content
| Marketplace
Sign in
Visual Studio Code>Themes>vTimeNew to Visual Studio Code? Get it now.
vTime

vTime

Unsafezero

|
2 installs
| (0) | Free
Track time spent actively coding per file — fully offline, no accounts, no telemetry.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

vTime

Track how long you actively spend coding in each file — stored entirely on your machine.

No accounts. No API keys. No telemetry. No network requests.


Features

  • Per-file time tracking — active coding time tracked per absolute file path, including remote IBM i files
  • Idle detection — 30-second heartbeat prevents idle time from inflating counts
  • Language detection — determined from VS Code languageId with file extension fallback; supports 40+ languages including RPG, RPGLE, SQLRPGLE, and CLLE
  • Hover tooltip — hover anywhere in a file to see total time, today's time, and last active timestamp
  • Dashboard — a full breakdown with stat cards, ASCII language chart, sortable files table, and search/filter
  • Streak counter — tracks consecutive days of coding activity
  • Daily goal — set a daily coding goal in settings and track your progress with a goal bar
  • Workspace grouping — group tracked files by VS Code workspace folder
  • Export — export all tracked data as CSV or JSON
  • Daily reset — the "today" counter resets automatically each new day
  • IBM i support — tracks files opened via the IBM i VS Code extension (member, streamfile)
  • Fully offline — no outbound connections of any kind, ever

Getting Started

  1. Install the extension.
  2. Open any file. Tracking starts automatically.
  3. Hover over the file to see elapsed time inline.
  4. Press Ctrl+Shift+T (Cmd+Shift+T on macOS) to open the dashboard, or run vTime: Open Dashboard from the command palette.
  5. Check the status bar (bottom-right) for a live today total.

Dashboard

The dashboard opens as a VS Code webview tab and shows:

  • Summary cards — total all-time, today's total, current streak, and languages detected
  • Today's goal bar — visual progress toward your daily coding goal (if configured)
  • Language chart — ASCII bar chart per language showing total and today's time
  • Files table — all tracked files with per-file totals, today's time, and relative last-active time

Table controls

Control Description
Click any column header Sort the table by that column
Search box Filter rows by filename, language, or workspace
Group button Toggle workspace folder grouping
Export button Save all data as CSV or JSON

Commands

Command Shortcut Description
vTime: Open Dashboard Ctrl+Shift+T / Cmd+Shift+T Opens the time tracking dashboard
vTime: Show File Time Right-click a file in Explorer Shows a quick summary for a single file
vTime: Export Data Command palette Exports all tracked data to CSV or JSON

Settings

Setting Default Description
vtime.dailyGoalHours 0 Daily coding goal in hours. Set to 0 to hide the goal bar.

How Tracking Works

The tracker listens to two VS Code events:

Event Purpose
onDidChangeActiveTextEditor Switches the active tracking session to the new file
onDidChangeTextDocument Records a heartbeat to confirm active coding

Time is only committed when the gap between the last heartbeat and the current moment is within 30 seconds. Switching away from a file or sitting idle longer than 30 seconds stops the clock.

Supported URI schemes: file, member, streamfile, vscode-remote, ssh, sftp, ftp.


Data Storage

All data lives in a single JSON file on your machine:

$XDG_CONFIG_HOME/Code/User/globalStorage/vtime/vtime-data.json

Each file entry has the following shape:

{
  "__v": 2,
  "activeDates": ["2026-07-15", "2026-07-16"],
  "files": {
    "/absolute/path/to/file.ts": {
      "language": "typescript",
      "totalSeconds": 3720,
      "secondsToday": 540,
      "lastActive": 1720000000000,
      "lastActiveDate": "2026-07-16"
    }
  }
}

You can inspect, back up, or delete this file at any time.


Project Structure

src/
  extension.ts       entry point — registers all providers and commands
  tracker.ts         heartbeat-based time tracking engine
  storage.ts         local JSON file storage with streak tracking
  hoverProvider.ts   hover tooltip showing per-file time stats
  dashboardPanel.ts  webview dashboard with charts, table, and export
  utils.ts           shared helpers (formatDuration, formatRelativeTime, etc.)

Privacy

  • No network requests of any kind.
  • No telemetry. VS Code built-in telemetry is not used.
  • No accounts, no sign-in, no sync.
  • Data stays in your VS Code global storage folder and nowhere else.

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft