Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>TimeZapNew to Visual Studio Code? Get it now.
TimeZap

TimeZap

Thundr Web Solutions

|
1 install
| (0) | Free
A simple but powerful way of tracking the time you spend coding.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

TimeZap

TimeZap is a small VS Code extension that tracks the time you spend coding per workspace (and per-file optionally). It records active editing time, detects idle periods, stores locally, and provides a dashboard for quick insights.

This repository was initialized by VS Code Extension Generator and then generated by GPT-5-mini in the span of an hour.

Features implemented:

  • Auto-tracking of active editing time with idle detection (default 5 minutes).
  • Aggregation per workspace folder (optionally per-file).
  • Local persistence using VS Code globalState (export/import available).
  • Status bar shows formatted "today" total for the active workspace.
  • Dashboard webview with today's buckets and a selectable time-series (7d, 30d, 1y, all).
  • Tests (basic) added for time-series generation.

How to build and run

  1. Install dependencies: npm install

  2. Build: npm run compile

  3. Run in Extension Development Host:

    • Open this folder in VS Code and press F5, or
    • Use the VS Code CLI: code --extensionDevelopmentPath=/path/to/timezap

Commands

  • TimeZap: Show Dashboard — opens the dashboard with today's breakdown and series charts.
  • TimeZap: Show Summary — simple textual summary (running/stopped + stored buckets count).
  • TimeZap: Export Data — export stored data to JSON.
  • TimeZap: Import Data — import previously exported JSON data.
  • TimeZap: Reset Data for Workspace — clears stored data (confirm).
  • TimeZap: Start Tracking / Stop Tracking — manual control.
  • TimeZap: Toggle Auto Start — toggles automatic start on VS Code launch.

Settings (contributes.configuration)

  • timezap.idleTimeoutSeconds (number, default 300) — inactivity seconds before marking idle.
  • timezap.persistIntervalSeconds (number, default 30) — seconds between periodic persists.
  • timezap.aggregateBy (string: "folder"|"file", default "folder") — whether to aggregate per-folder or per-file.
  • timezap.storage.method (string: "globalState"|"workspaceFile", default "globalState") — storage backend (workspace-file implemented later).
  • timezap.autoStart (boolean, default true) — whether tracking starts automatically on activation.
  • timezap.showStatusBar (boolean, default true) — show status bar item.

Privacy & Security

  • No network access. All tracked data is stored locally by default.
  • Data contains workspace paths and time totals only (no file contents).
  • Exported JSON files contain tracked time data; handle them as you would any local data.

Developer notes & testing

  • Basic unit test added: src/test/timeService.test.ts.
  • Run tests with your normal VS Code test runner (the template uses vscode-test).
  • TimeService persistence uses a simple debounced save to globalState; consider adding a workspace file option for per-workspace data if desired.

Roadmap (next)

  • Live push updates from TimeService to dashboard for real-time charts.
  • Workspace-file storage option (.vscode/timezap.json) for per-workspace visibility.
  • CSV export from dashboard.
  • More unit tests and integration tests.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft