TimeFeat — Feature Time Tracker
Track exactly how long you spend on each feature, bug, or task — without ever leaving VS Code.
TimeFeat runs quietly in the background. Start a timer when you pick up a task, pause it when you context-switch, stop it when you ship. Every session is stored locally so your history builds up over time and starts answering the question every developer faces: "how long does this actually take me?"
Highlights
- Zero-friction start — annotate any line with
// @timefeat: Feature Name and click the inline button. No commands, no menus.
- Always-on status bar — live clock in the footer so you never lose track of how long you've been on something.
- Analytics dashboard — see your total time, session averages, and personal bests, in a clean theme-aware panel.
- Estimation hints — after a few sessions, TimeFeat tells you "this usually takes you ~2h 15m" the moment you start.
- Everything is local — all data lives in a SQLite database on your own machine. Nothing is sent anywhere.
Quick Start
- Install the extension
- Open the TimeFeat panel in the activity bar (clock icon)
- Click + to create your first feature
- Run TimeFeat: Start Timer from the Command Palette — or use any of the shortcuts below
Ways to Start a Timer
Add a single comment to any file in any language:
// @timefeat: Auth API Integration
# @timefeat: Payment Refactor
# @timefeat: CI Pipeline Fix
A clickable lens appears above the line. The button updates live as the timer state changes:
| Timer state |
What you see |
| Idle |
▶ Start — Feature Name |
| Running (this feature) |
⏸ Pause ■ Stop |
| Running (different feature) |
▶ Switch to Feature Name |
| Paused (this feature) |
▶ Resume ■ Stop |
The feature is created for you automatically — no separate create step needed.
2. Right-click any selection
Highlight a method name, file path, ticket number, or any text → right-click → TimeFeat: Start Timer for Selection.
3. Status bar
Click the ⏱ TimeFeat button in the bottom-left of the editor. A menu appears with all available actions for the current state.
Click the clock icon in the activity bar to open the Features panel. Click any feature to get a context menu with start, pause, resume, stop, history, edit, and delete.
5. Command Palette
Press Cmd+Shift+P / Ctrl+Shift+P and type TimeFeat.
Status Bar
The status bar button is always visible — it never disappears.
| State |
Display |
| Idle |
⏱ TimeFeat |
| Running |
⏱ Auth API Integration 04:32 |
| Paused |
⏸ Auth API Integration 04:32 |
Time is shown as MM:SS under an hour, HH:MM:SS for longer sessions.
The Features panel (activity bar → clock icon) gives you a live overview of all your work:
- Each feature shows session count and total time tracked
- The active feature is highlighted:
● running or ⏸ paused
- Click any feature to open an action menu
- Right-click for the full context menu: Start Timer, Show History, Edit, Delete
- Toolbar icons: Refresh · Show Dashboard · Create Feature
Dashboard
Open the dashboard with TimeFeat: Show Dashboard or via the sidebar toolbar.
The dashboard shows:
- Header — today's date and a "This week" summary pill
- Stat cards — All time tracked · Total sessions · Features · Avg session length
- Feature chart — every feature as a bar, sorted by total time, with sessions, average, personal best, and last-session date per row
The panel is fully theme-aware — it respects your VS Code colour theme, light or dark.
Estimation Hints
Once you've completed at least two sessions for a feature, TimeFeat shows a hint the next time you start it:
"Timer started for 'Auth API Integration' — usually takes you ~2h 15m"
This is calculated from the average of your historical sessions for that feature.
Commands
| Command |
Description |
| TimeFeat: Create Feature |
Create a feature with a name and optional description |
| TimeFeat: Start Timer |
Pick from your feature list and begin timing |
| TimeFeat: Pause Timer |
Pause the running timer |
| TimeFeat: Resume Timer |
Resume a paused timer |
| TimeFeat: Stop Timer |
Stop and save the session |
| TimeFeat: List Features |
Browse all features in a quick-pick |
| TimeFeat: Start Timer for Selection |
Use the selected text as a feature name |
| TimeFeat: Show Dashboard |
Open the analytics webview |
| TimeFeat: Show Summary |
Text table of all features in the output channel |
| TimeFeat: Show History |
Browse past sessions for a feature |
| TimeFeat: Edit Feature |
Rename or update a feature's description |
| TimeFeat: Delete Feature |
Permanently delete a feature and all its sessions |
Data & Privacy
All data is stored in a SQLite database on your local machine. Nothing is transmitted over the network.
Database location:
| OS |
Path |
| macOS |
~/Library/Application Support/Code/User/globalStorage/coldtechltd.timefeat/timefeat.db |
| Windows |
%APPDATA%\Code\User\globalStorage\coldtechltd.timefeat\timefeat.db |
| Linux |
~/.config/Code/User/globalStorage/coldtechltd.timefeat/timefeat.db |
You can open this file with any SQLite browser to inspect, export, or back up your data.
Requirements
- VS Code 1.85 or later
- No internet connection required
- No account, sign-in, or telemetry
What's Next (Post-MVP)
- Git integration — link sessions to branches or commits automatically
- Idle detection — auto-pause after a configurable period of inactivity
- Tags — group features for category-level reporting
- Export — CSV and JSON export for spreadsheets and external tools
- Multi-workspace — separate feature lists per workspace
Contributing & Development
Interested in contributing or running from source?
Prerequisites: Node.js 18+, npm 9+
git clone <repo-url>
cd timefeat
npm install
npm run build
Press F5 in VS Code to launch the Extension Development Host with TimeFeat loaded.
| Script |
Purpose |
npm run build |
Production bundle (esbuild → dist/) |
npm run watch |
TypeScript type-check in watch mode |
npm run compile |
Full tsc compile |
npm run lint |
ESLint over src/ |
Packaging a VSIX:
npm install -g @vscode/vsce
vsce package
License
MIT © 2026 ColdTech Ltd