Skip to content
 
 

Repository files navigation

Solidtime Browser Extension — with Manual Time Entry

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.

What's different

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 time entry mode Time tracking mode setting

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.

Installation

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-mv2

Then in Chrome: chrome://extensions → enable Developer modeLoad unpacked → select .output/chrome-mv3.

Sign in with your Solidtime account (solidtime.io cloud or self-hosted — configure the instance endpoint in Settings).

Everything from upstream

  • ⏱️ 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

Development

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 check

Implementation notes for the manual entry feature:

  • entrypoints/utils/settings.ts — the persisted tracking_mode setting
  • entrypoints/popup/components/ManualTimeEntryControls.vue — wraps the stock TimeTrackerControls (hiding its play button and live timer via CSS) and adds the start/end/add row
  • entrypoints/utils/timeEntries.tsuseManualTimeEntryCreateMutation, 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.

Credits & License

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.

About

Solidtime browser extension with manual time entry mode - log start/end times instead of running a timer

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages