Install the optional plugin
BurrowTime works without Clockify. Install the separate connector only if you need it. Nothing syncs in the background, and your local records stay unchanged.
Clockify support is currently on main, not in the latest tagged release. Update both executables:
go install github.com/fabean/BurrowTime/cmd/burrowtime@main
go install github.com/fabean/BurrowTime/cmd/burrowtime-clockify@mainKeep both executables on your PATH.
Configure and preview
Provide CLOCKIFY_API_KEY, CLOCKIFY_WORKSPACE_ID, andCLOCKIFY_USER_ID through your shell environment or secret manager. The user must own the API key. BurrowTime stores the environment variable name, never the key, in its configuration.
burrowtime clockify configure --rounding up --increment 15m
burrowtime clockify sync --today --dry-run
burrowtime clockify sync --todayDry-run opens the same mapping and review screens, but does not upload entries or save mappings or receipts. Only completed entries are eligible.
Choose projects with their clients visible
When a local project has no mapping, sync opens a project picker. Similar names appear first as suggestions. Every option includes its Clockify client so you can tell two projects named "Development - US" apart.
- Move with arrow keys or
j/k, then Enter to select. - Press
/to search project names, clients, or IDs. - Use Page Up and Page Down for longer lists.
- Press
sto skip a project orqto cancel.
Mappings save when you confirm a nonempty upload batch. Named connections support different Clockify workspaces. Jira and Tempo are not supported yet.
Review before uploading
The review shows destinations, descriptions, timestamps, recorded and exported durations, billable settings, and totals. Select an entry and press Enter ore to edit it. In the editor, p changes the project,d the description, t the duration, and btoggles billable. Edits apply only to that export.
From the review, press s to skip an entry or p to open upload confirmation, then y to approve. Cancel with q. Dry-run finishes the preview without offering an upload.
Only the tag goes in the description
burrowtime start sema +SEMA-123
# Work on the ticket, then stop the timer.
burrowtime stopThe Clockify description is SEMA-123. It contains no local project name, leading plus sign, or BurrowTime tracking ID. Multiple tags are sorted and joined with spaces. No tags means an empty description unless you edit it.
These are descriptions, not native Clockify tags or task assignments. Previously uploaded descriptions are not rewritten automatically.
Round each completed entry
Rounding is off by default. Choose up to round up ornearest for the closest increment. With up and15m, a 16-minute entry exports as 30 minutes. Three separate 2-minute entries export as 45 minutes total.
Rounding adjusts the exported end time and can create overlaps or cross midnight. Your local timestamps stay exact. An edited duration overrides rounding for that upload.
Rerun without uploading the same entry twice
BurrowTime keeps configuration in integrations.json and upload receipts in integration-sync.json in its data directory. A successful upload is recorded before moving to the next entry. Later runs skip it.
If a request may have reached Clockify but no response arrived, that entry stays pending. Sync will not blindly retry it. Check Clockify, then useresolve with the remote entry ID or retry --confirmed-not-createdonly after confirming no entry was created. Keep the ledger when moving or backing up your data; duplicate protection depends on it.
burrowtime clockify statusChanged local entries are flagged, not automatically updated or deleted in Clockify. For explicit date ranges, named connections, unattended--yes uploads, and recovery commands, read thefull connector reference.