Kimai Time Tracker Firefox

Kimai Time Tracker

Track time with Kimai directly from any web page

Features & Capabilities

Kimai Browser Plugin (kimai-bp)

Cross-browser extension for Kimai time-tracking. Injects widgets into web pages so you can start and stop timesheets without leaving your browser tab.

Features

  • Start/stop timers from any web page via a floating widget or the extension popup
  • Platform profiles — automatic detection of tasks and issues on supported platforms:
  • GitLab (18.0+)
  • GitHub (2024.1+)
  • Jira (9.0+)
  • Drupal.org (7.0–11.x)
  • Inline track buttons injected next to detected issues/tasks on supported platforms
  • Cascading task picker — Customer > Project > Activity dropdowns with data fetched from your Kimai instance
  • Tag autocomplete — search and add tags from your Kimai instance
  • URL pattern memory — remembers which customer/project/activity you used for a given URL scope and pre-fills settings on future visits
  • Profile auto-updates — installed platform profiles are checked for updates every 6 hours
  • Debug mode — YAML profile editor with live validation and color-coded DOM overlays for profile development
  • Cross-browser — Chrome (Manifest V3) and Firefox (Manifest V3, 145.0+)
How It Works

The extension has two modes depending on the page you visit:

  1. Profile matched — When the current page matches an installed platform profile (e.g. a GitLab issue page), compact "Track" buttons are injected next to each detected issue. Clicking a button opens a dialog to select or confirm customer/project/activity settings and starts a Kimai timer with the issue ID and title as the description.
  2. No profile matched — A floating widget overlay appears in the corner of the page with a full timer interface: task picker, description field, tag input, and start/stop controls.
The extension popup provides the same timer controls accessible from the toolbar icon on any page.

All Kimai API communication is handled by the background service worker. Content scripts and the popup never call the API directly — they send typed messages to the background, which centralizes authentication and state management.

Installation

From Source

pnpm install pnpm build:chrome # Production build for Chrome pnpm build:firefox # Production build for Firefox

Chrome: Open chrome://extensions, enable Developer mode, click "Load unpacked", select .output/chrome-mv3.

Firefox: Open about:debugging#/runtime/this-firefox, click "Load Temporary Add-on", select .output/firefox-mv3/manifest.json.

Configuration

  1. Click the extension icon and go to Settings (or right-click the icon > Options)
  2. Enter your Kimai URL (e.g. https://kimai.example.com)
  3. Enter your API token (generated in Kimai under Settings > API)
  4. Click Save, then Test Connection to verify
Installing Platform Profiles
  1. Open the extension settings page
  2. Scroll to Platform Profiles
  3. Click Browse Available to see profiles from the registry
  4. Click Install next to the profiles for platforms you use
  5. Add custom domains if your instance uses a self-hosted URL (e.g. gitlab.mycompany.com)
Development

pnpm install # Install dependencies pnpm dev # Dev mode with HMR (Chrome) pnpm dev:firefox # Dev mode (Firefox) pnpm build # Production build (all browsers)

Testing

pnpm test # Run all tests pnpm test:unit # Unit tests only (Vitest) pnpm test:e2e # E2E tests (Playwright)

Linting & Type Checking

pnpm lint # ESLint check pnpm lint:fix # ESLint auto-fix pnpm format # Prettier format pnpm format:check # Prettier check pnpm typecheck # TypeScript type checking

Architecture

src/ ├── entrypoints/ │ ├── background.ts # Service worker — API calls, timer state, profile management │ ├── content.ts # Content script — profile detection, track buttons, floating widget │ ├── popup/ # Extension popup — timer controls, task picker │ └── options/ # Settings page — connection config, profile & pattern management ├── components/ # Vanilla web components (Shadow DOM) │ ├── kimai-widget.ts # Floating overlay (timer + task picker + tags) │ ├── kimai-popup.ts # Popup UI │ ├── kimai-timer.ts # Live elapsed-time display with start/stop │ ├── kimai-task-picker.ts # Customer > Project > Activity dropdowns │ ├── kimai-tag-input.ts # Tag autocomplete input │ ├── kimai-options.ts # Settings form │ ├── kimai-profile-manager.ts # Profile browse/install/update UI │ ├── kimai-pattern-manager.ts # URL pattern management UI │ └── kimai-debug-profile-editor.ts # YAML profile editor with live validation ├── lib/ │ ├── api/ # Typed Kimai REST API client │ ├── storage/ # Cross-context state (WXT storage) │ ├── messages.ts # Typed message protocol (background <-> content/popup) │ ├── profiles/ # Profile parsing, matching, and management │ ├── patterns/ # URL pattern matching and storage │ └── context/ # Page context analysis (stub) └── assets/ # Icons

Key Design Principles

  • Background owns all API calls — content scripts and popup communicate via typed messages; no direct API calls from page context.
  • Shadow DOM isolation — all web components use attachShadow({ mode: 'open' }) with inline <style> elements; the floating widget and track dialog are fully isolated from host page styles.
  • Zero innerHTML — all DOM is built with document.createElement(), textContent, and appendChild(). No innerHTML assignments anywhere in the build output, ensuring AMO validation compliance.
  • Profile-driven detection — platform support is defined in downloadable YAML profiles, not hard-coded. New platforms can be supported without a new extension release.
  • URL pattern memory — customer/project/activity settings are stored per URL prefix and looked up by walking up the URL path hierarchy.
Tech Stack
Layer Technology
Extension framework WXT (Vite-based, Manifest V3)
UI components Vanilla web components (HTMLElement + Shadow DOM)
Language TypeScript (strict mode)
Package manager pnpm
Testing Vitest + Playwright
Linting ESLint + Prettier
State @wxt-dev/storage
Note: The extension was originally built with Lit but migrated to vanilla HTMLElement-based web components to eliminate all innerHTML usage from the build output, which is required for Mozilla Add-ons (AMO) validation compliance.
Platform Profiles

Profiles are YAML files that define CSS selectors for detecting trackable items on task/issue management platforms. Each profile specifies:

  • Domains — hostnames where the platform is deployed (supports subdomains)
  • Selector sets — one or more contexts (e.g. "detail view", "list view"), each with:
  • isSupported — gate selector that determines if the page has trackable items
  • issueId — extracts the issue/task identifier
  • issueTitle — extracts the issue/task title
  • itemContainer — (optional) wraps individual trackable items for multi-item pages
  • widgetAnchor — (optional) where to inject the track button
Profiles support multi-version platforms via multiple selector sets with different gate selectors. The matcher tries each context in order and uses the first one whose gate matches.

Writing a Profile

Enable Debug Mode in the extension settings to access the profile editor. Write YAML, set a target domain, and navigate to a page on that domain. Matched elements are highlighted with color-coded overlays:

Color Selector
Green isSupported (gate)
Blue issueId
Purple issueTitle
Amber itemContainer
Red widgetAnchor

Release Process

# 1. Bump version in package.json

2. Commit and tag

git add package.json git commit -m "chore: bump version to X.Y.Z" git tag vX.Y.Z git push && git push --tags

3. CI pipeline runs: lint → test → build → package → release

4. Manually trigger publish jobs in GitLab CI for Chrome Web Store / Firefox AMO

License

This project is licensed under the GNU General Public License v3.0 or later.

User Growth & Download Statistics

Manifest V3 Add-on
By:
Jürgen Haas
Daily users:
7 2
Version:
0.1.22 Last updated: 2026-05-21
Version code:
6155489
Creation date:
2026-02-16
Risk:
Moderate risk impact High risk likelihood
Permissions:
Host permissions:
  • https://*/*
  • http://*/*
Content scripts matches:
  • <all_urls>
Size:
88.42KB
Email:
ki*****@lakedrops.com
URLs:
Website
Full description:
See detailed description
Source:
Firefox Add-ons Store
Data ingested on:
2026-06-16
Compare stats and ranking:

Contact the developer

Chrome-Stats does not own this Firefox add-on. Please use these information below to contact the Firefox add-on developer.
Developed by:
Jürgen Haas
Firefox Add-ons Store
https://addons.mozilla.org/firefox/addon/kimai-time-tracker/
Email:
ki*****@lakedrops.com
Website:
https://gitlab.lakedrops.com/jurgenhaas/kimai-bp

Is Kimai Time Tracker Safe?

Risk impact
Risk impact measures the level of extra permissions an extension has access to. A low risk impact extension cannot do much harms, whereas a high risk impact extension can do a lot of damage like stealing your password, bypassing your security settings, and accessing your personal data. High risk impact extensions are not necessarily malicious. However, if they do turn malicious, they can be very harmful.

Kimai Time Tracker requires a few sensitive permissions. Exercise caution before installing.

Risk impact analysis details
  • Critical Allows access to all websites, posing a significant security risk as it can monitor and modify data from any visited site.
  • High ******* ******* **** *** ****** ***** *** ***** ** ******* **** ********* ********* ** * *********** *****
Risk likelihood
Risk likelihood measures the probability that a Firefox add-on may turn malicious. This is determined by the publisher and the Firefox add-on reputation on Firefox Add-ons Store, the amount of time the Firefox add-on has been around, and other signals about the Firefox add-on. Our algorithms are not perfect, and are subject to change as we discover new ways to detect malicious extensions. We recommend that you always exercise caution when installing a Firefox add-on.

Kimai Time Tracker may not be trust-worthy. Avoid installing if possible unless you really trust this publisher.

Risk likelihood analysis details
  • High This extension was recently updated in the past month. New updates may not be stable or safe.
  • High **** ********* *** *** **** ****** ********* ********** *** *** ** ****** ** *****
  • Medium **** ********* *** ***** ** *** **** * ******* *** ********** *** *** ** ****** ** *****
Extension Guard
Extension Guard

Discover every extension in use, analyze risks, and enforce blocking policies with Extension Guard

Secure Your Browser
Upgrade to see full risk analysis details

Best Kimai Time Tracker Alternatives

Here are some Firefox add-ons that are similar to Kimai Time Tracker: