Git Timekeeper
See where your coding time goes, one branch at a time.
Git Timekeeper automatically tracks active coding time in VS Code and organizes
it by Git repository and branch. Check today's progress, explore your daily
history, and export clear Markdown reports without keeping a manual timer.
Your activity stays on your machine. No account, telemetry, or cloud sync.
Get started
- Install Git Timekeeper from the VS Code Extensions view (
Ctrl+Shift+X on
Windows/Linux or Cmd+Shift+X on macOS).
- Open a project and start editing or saving files. Tracking begins after
content activity, rather than simply opening VS Code.
- Select Git Timekeeper in the Activity Bar to see your tracked time and branches.
- Open the Command Palette and run Git Timekeeper: Show Main Overview to
explore your daily history.
Requires VS Code 1.90 or newer. Install Git and make it available on your
PATH to associate sessions with repositories and branches. Non-Git folders are
also supported.
From coding sessions to useful reports
- Automatic tracking: records editor activity and associates sessions with
the current repository and branch, including detached HEAD.
- Idle-time limits: caps inactive sessions at your configured timeout
(five minutes by default). Pause or resume tracking from the status bar.
- Time at a glance: see today's time, weekly totals, and branch groups in
the sidebar.
- Daily and branch reports: explore active-time charts, session history,
touched files, and Git commits. Expand file and commit lists when you need detail.
- Markdown exports: export today, this week, or this month for your work log
or progress updates. Reports open as documents you can review and save.
- Optional commit tags: add a tag such as
#time 1h 1m 5s to VS Code's Git
commit message input.
Everyday commands
Open the Command Palette (Ctrl+Shift+P on Windows/Linux or Cmd+Shift+P on
macOS) and type Git Timekeeper.
| What you want to do |
Command |
| Review today's sessions |
Git Timekeeper: Show Today Overview |
| Explore daily history |
Git Timekeeper: Show Main Overview |
| Inspect a branch |
Git Timekeeper: Show Branch Report |
| Pause or resume |
Git Timekeeper: Toggle Tracking |
| Export a report |
Git Timekeeper: Export Today Report, Export Weekly Report, or Export Monthly Report |
| Add time to a commit message |
Git Timekeeper: Insert Time Tag Into Commit Message |
Make it fit your workflow
Search for Git Timekeeper in VS Code Settings to adjust the idle timeout,
exclude folders, or configure commit tags.
{
"gitTimekeeper.trackingEnabled": true,
"gitTimekeeper.idleTimeoutSeconds": 300,
"gitTimekeeper.commitMessageTime.enabled": false,
"gitTimekeeper.commitMessageTime.format": "#time {duration}"
}
Common generated folders such as node_modules, .git, vendor, dist,
build, and coverage are excluded by default. Customize the list with
gitTimekeeper.excludedFolders.
Automatic commit tags are off by default. Enable them with Git Timekeeper:
Toggle Commit Time Tag or in Settings. The format supports {duration},
{seconds}, and {branch}. Tags reflect the branch's total tracked time across
stored sessions, rather than time since the previous commit.
Your data stays local
Git Timekeeper makes no network requests and sends no telemetry. Sessions are
stored in sessions.json in VS Code's extension global storage directory.
Stored records include repository and workspace paths, branch names, session
times, touched file paths, and activity counts. File contents and keystrokes are
not stored. Commit information is read from local Git for reports.
Exported reports can include project paths and commit information, so review
them before sharing. Use Pause Tracking whenever you want to stop recording.
Git Timekeeper: Reset Today Data removes today's sessions after confirmation.
A few things to know
- Time is estimated from editor activity and idle limits; it is not a certified
timesheet or a measurement of operating-system input.
- In multi-root workspaces, tracking follows the active editor's workspace folder.
- Reports use local dates. Sessions that span midnight are not split into
separate daily records.
- Remote and web extension hosts have not been verified.
License
MIT · Nikolas Psyllou