Implements Clockify time tracker in VSCode.
⚠️ Marketplace releases are currently pausedMicrosoft is retiring global Azure DevOps Personal Access Tokens (PATs) on December 1, 2026. These tokens were previously used to publish this extension. The officially recommended secretless replacement currently requires an Azure subscription and Azure Pipelines, so new versions are distributed as VSIX files through GitHub Releases for now.
Community help wanted: If you have experience with secure, sustainable VS Code Marketplace publishing and can help bring current releases back to the Marketplace, please open an issue and share your approach.
You can manage your workspaces, clients, projects, tasks and time entries. You can start and stop a timer on the status bar or automatically by adjusting the settings for the workspace in which you want to enable the auto tracking.
Workspace, client, project and task selection dialogs include an Add action, so missing items can be created without leaving the current workflow.
Use Clockify: Add Manual Time Entry or the Add button in the Time Entries view to record a completed interval with project, task, tags, description and billing status.
Use Link Project to Workspace Folder from a project's context menu to store the Clockify workspace/project IDs and enable auto-start for that local folder. Single-folder windows apply the link directly; multi-root windows ask which folder to link.
When the optional Atlassian for VS Code extension is installed, Jira issue context menus—including related Jira issues shown for Bitbucket pull requests—include Start Clockify Timer. The timer description is populated as ISSUE-KEY: Summary; an already running timer is left untouched.
Optional Pomodoro support observes the active Clockify entry even when it was started in the browser. VS Code can notify at focus/break boundaries or automatically stop work, track a Pomodoro break, and resume the prior entry. Browser-extension Pomodoro preferences are browser-local and cannot be read through the Clockify API, so VS Code uses the settings below.
- Download the
.vsixfile from the latest GitHub release. - In VS Code, open the Extensions view (
Ctrl+Shift+X). - Select Views and More Actions (
...) and then Install from VSIX.... - Select the downloaded file and reload VS Code when prompted.
Alternatively, install the downloaded file from the command line:
code --install-extension /path/to/clockify-tracker-x.y.z.vsixAutomatic updates are disabled by default for extensions installed from a VSIX. Repeat these steps when a new release becomes available.
The last version published to the Marketplace remains available. Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter:
ext install tobiaswaelde.clockify-tracker
You can also search for "Clockify" in the Extensions view. Until Marketplace publishing resumes, this version may be older than the latest GitHub release.
Releases are managed with Changesets:
- Add a changeset for every user-facing change.
- Merge the change into
main. TheRelease PRworkflow creates or updates theVersion Packagespull request. - Merge the
Version Packagespull request. TheGitHub Releaseworkflow packages the extension, creates av<version>GitHub release and attaches the installable VSIX file.
Use Node.js 22 and Yarn 1. Install dependencies with yarn install --frozen-lockfile, then run:
yarn test
yarn typecheck
yarn lint
yarn package
yarn docs:buildTests and quality checks run in tests.yml, releases run in the release workflows, and documentation is deployed independently by docs.yml.
All keys starting with clockify.
The API key entered through Clockify: Set API key is stored in VS Code SecretStorage and is not written to user or workspace settings.
| Settings key | Type | Default value | Description |
|---|---|---|---|
| defaultWorkspaceId | string | |
The ID of the default workspace in which start tracking (if no workspace ID is set in the workspaces settings.json) |
| fetchLimit | number | 200 |
Limit the number of items that will be fetched for displaying in the tree view. |
| hideSensitiveData | boolean | false |
Hide sensitive data. Can be useful for screenshots. |
| showIds | boolean | false |
Show IDs of the data. |
| workspaces.showNumberOfMembers | boolean | true |
Show the number of members for each workspace. |
| tracking.workspaceId | string | |
The ID of the default workspace. Supports workspace-folder scope. |
| tracking.projectId | string | |
The ID of the default project in the workspace. clockify.tracking.workspaceId must be set. Supports folder scope. |
| tracking.taskId | string | |
The ID of the default task in the workspace. clockify.tracking.workspaceId must be set. Supports folder scope. |
| tracking.billable | boolean | false |
Check if Time Entry is billable. |
| tracking.autostart | boolean | false |
Start tracking when opening the IDE. Supports workspace-folder scope. |
| tracking.autostop | boolean | true |
When this VS Code window closes, stop only a timer that was started by this window. |
| pomodoro.enabled | boolean | false |
Enable Pomodoro handling for the active Clockify timer. |
| pomodoro.focusMinutes | integer | 25 |
Focus interval length in minutes. |
| pomodoro.shortBreakMinutes | integer | 5 |
Short break length in minutes. |
| pomodoro.longBreakMinutes | integer | 15 |
Long break length in minutes. |
| pomodoro.sessionsBeforeLongBreak | integer | 4 |
Completed focus intervals before a long break. |
| pomodoro.automaticBreaks | boolean | false |
Automatically stop work, track the break, and resume the prior entry. |

