NikSofts Project Time Tracker
Simple, private, and automatic time tracking for your VS Code projects with idle detection and clear visual reports.
What you get
- ⏱️ Automatic tracking: Time is tracked while you work (typing, selections, focus)
- 💤 Idle detection: Pauses the timer after a configurable idle period
- 📅 Per-day breakdown: Time is stored per project per day
- 📊 Graphs and stats: Line/bar charts and a quick stats dashboard
- 📤 Export: CSV and JSON exports
- 🧭 Status bar timer: Live session time for the active project
- 🔐 Private by design: Data stays local in VS Code’s storage
Quick start
- Open a project folder in VS Code
- Start working; tracking is automatic
- See live time in the status bar, e.g. “⏱ 0h 12m 05s (my-project)”
- Open the graph: Command Palette → “Project Time Tracker: Show Time Graph”
Menus and commands
Open the Command Palette (Ctrl/Cmd+Shift+P) and search for:
- Project Time Tracker: Show Time Graph
- Opens the interactive chart view with a project selector and chart type menu
- Project Time Tracker: Export Time to CSV
- Exports the current project’s tracked time to a CSV file in the workspace folder
- Project Time Tracker: Export Time to JSON
- Exports the current project’s tracked time to a JSON file in the workspace folder
- Project Time Tracker: Reset Timer
- Resets today’s tracked time for the current project
Status Bar
- Shows the current session time for the active workspace folder
- Click not required; it’s purely informational
Graph view (user manual)
Open via: Command Palette → “Project Time Tracker: Show Time Graph”
Header controls
- Project selector: choose a single project or “All Projects”
- Chart type: Line or Bar for any selection; Doughnut for single projects only
Charts and values
- Line/Bar: Y‑axis and tooltips display values as hours and minutes (e.g., 2h 15m)
- Doughnut (single project only): Per‑day slices with distinct colors and Hh Mm labels
- “All Projects”: Doughnut is disabled; use Line/Bar to compare projects over time
Stats cards
- Total Time: Sum of all tracked time in the selection
- Average per Day: Mean per tracked day
- Days Tracked: Count of days with entries
- Best Day: Day with the highest time
Actions
- Refresh: Reloads data
- Export CSV / Export JSON: Exports the currently selected project’s data
- Disabled in “All Projects” context (export requires a specific project)
- Reset Timer: Resets today’s time for the selected project
- Disabled/ignored for “All Projects”
Settings
Settings UI: File → Preferences → Settings → search “Project Time Tracker”
- projectTimeTracker.idleLimitMinutes (number)
- Default: 5
- How many minutes of inactivity before tracking pauses
Settings JSON example
{
"projectTimeTracker.idleLimitMinutes": 10
}
Data storage
- Stored locally in VS Code’s global state
- Separate data per workspace folder (project)
- Tracked per day in YYYY‑MM‑DD format
Export formats
Date,Hours,Minutes,Seconds
2024-01-15,2,30,45
2024-01-16,1,45,20
{
"2024-01-15": 9035000,
"2024-01-16": 6320000
}
Troubleshooting
- Command not found
- Ensure the extension compiled correctly and reload VS Code window
- Reopen the project folder and try again
- Graph is empty
- Work for a bit to generate data, then use Refresh
- Doughnut disabled
- This is expected for “All Projects”; select a single project to enable it
Development
Prerequisites
- Node.js, VS Code, TypeScript
Build
npm install
npm run compile
Package (optional)
npm install -g vsce
vsce package
License and privacy
- License: MIT — see
LICENSE.md
- Privacy: Your data never leaves your machine; no network calls are made
Publisher: NikSofts