A fork of the official Solidtime browser extension that adds a manual time entry mode: instead of starting and stopping a live timer, enter a start time and an end time and add the entry directly — perfect for logging work you already did.
Everything else works exactly like the official extension: pick a project/client, add tags, toggle billable, switch organizations.
Open Settings (gear icon) and choose your Time Tracking Mode:
| Timer (default) | Manual |
|---|---|
| The stock Solidtime behavior — a play/stop button tracks time as you work. | The play button is replaced with Start and End time fields, a live duration preview, and an Add time entry button. |
Manual mode details:
- The description, project/task, tags, and billable controls are the official Solidtime components — nothing re-invented.
- Start/end default to "the last hour"; a now shortcut sets the end to the current time.
- Pressing Enter in the description field adds the entry (clicking a recently tracked entry fills the fields and adds it with the current time range).
- After adding, the project/tags/billable stay put and the next entry's start is pre-filled with the previous end, so logging consecutive blocks is fast.
- Your entered times survive the popup closing (they're persisted locally).
- If a timer is already running, the bar shows the normal stop button so you're never stuck.
This fork isn't on the Chrome Web Store; load it as an unpacked extension:
npm install
npm run build # Chrome -> .output/chrome-mv3
npm run build:firefox # Firefox -> .output/firefox-mv2Then in Chrome: chrome://extensions → enable Developer mode → Load unpacked → select .output/chrome-mv3.
Sign in with your Solidtime account (solidtime.io cloud or self-hosted — configure the instance endpoint in Settings).
- ⏱️ Quick Time Tracking - Start and stop timers directly from issue pages
- 🔗 Platform Integration - Works seamlessly with Linear, Jira, and Plane
- 🎯 Issue Context - Automatically captures issue IDs and titles in your time entries
- 🏢 Organization Management - Switch between multiple organizations
- 🔒 Secure OAuth - Safe authentication with PKCE
- 🌐 Self-Hosted Support - Connect to your own Solidtime instance
Prerequisites: Node.js 18+
npm install
npm run dev # Chrome dev mode with hot reload
npm run dev:firefox # Firefox dev mode
npm run compile # type checkImplementation notes for the manual entry feature:
entrypoints/utils/settings.ts— the persistedtracking_modesettingentrypoints/popup/components/ManualTimeEntryControls.vue— wraps the stockTimeTrackerControls(hiding its play button and live timer via CSS) and adds the start/end/add rowentrypoints/utils/timeEntries.ts—useManualTimeEntryCreateMutation, which creates a completed entry without touching the active-timer state
The CSS hooks that hide the timer button target data-testid attributes in the published @solidtime/ui package — re-check them when bumping that dependency.
All the heavy lifting is Solidtime's — this fork only adds the manual entry mode on top of the official extension. Licensed under AGPL-3.0, same as upstream.

