Everhour

everhour.comcontributed by Samuele Ongaro

YES

Replaceable in one session with an AI coding agent.

Time tracking that lives inside other tools: a timer appears on your issues and tasks in the project tracker you already use, and the hours roll up into reports.

Promptfree, for everyone, and the only version there is
Build me time tracking that lives inside the tools I already use, replacing Everhour: a timer on my issues, budgets per project, and reports from the same data.

STACK
- Node 20+ with Fastify
- SQLite through better-sqlite3, WAL mode
- A browser extension, Manifest V3, that injects a timer into other web applications
- Caddy in front

THE DATA MODEL
- integrations: id, kind, base_url, credentials_encrypted, is_active, last_sync_at
- external_items: id, integration_id, external_id, kind, key, title, url, project_external_id, status, assignee_external_id, closed_at, synced_at — issues, tasks and cards, mirrored
- projects: id, name, client_id, external_ref, budget_kind, budget_amount, budget_hours, is_billable
- entries: id, user_id, project_id, external_item_id, description, started_at, ended_at, duration_seconds, is_billable, source, created_at
- rates: id, scope, scope_id, user_id, hourly_cents, currency, effective_from
- estimates: id, external_item_id, hours, set_by, set_at
- Time is attached to an external item by its identifier, never by its title. A renamed issue must not orphan a week of tracked hours

THE EXTENSION, WHICH IS THE WHOLE PRODUCT
- Content scripts per host, each one small and independent: find the issue on the page, read its identifier, inject a start button and a running total
- The identifier comes from the URL or from a stable data attribute, and never from scraped text. Write a per-host adapter with a single function: given the document, return the item's identifier, key and title
- When an adapter cannot find the item, the button says so plainly and offers a manual attach. A silent failure means hours land on nothing
- Every adapter has a fixture — a saved copy of the page — and a test against it, so a change to the host application is a failing test rather than a mystery
- The extension talks only to my own server, with a token from a sign-in flow. No third-party requests, and the permissions are per host rather than all sites
- Say this in the README: these adapters break, and maintaining them is the ongoing cost of the tool. Pick three hosts and keep them working rather than twelve that half work

SYNCING
- Pull projects, issues and their status from each integration on a schedule and on demand
- Store the external item so reports work when the source is unreachable, and so a deleted issue still has its hours
- Push nothing by default. Optionally write the tracked total back to the item as a field or a comment, off unless asked
- Respect rate limits with backoff and honour the API's own headers

TIMERS AND ENTRIES
- One running timer per user, enforced with a partial unique index
- An entry is two instants and the duration is derived
- Start from the extension, from the web interface or from the API
- Timer left running overnight is flagged and offered for trimming, never trimmed silently
- Manual entries against any item or against a project directly

BUDGETS
- Per project or per item: hours or money, one-off or recurring monthly
- Progress against estimates per issue, and against the budget per project
- Alerts at thresholds to the project owner, once per threshold, never repeatedly
- Over-budget is visible in the extension too, on the item itself — the warning is useful where the work is happening, not in a dashboard nobody opens

REPORTS AND INVOICING
- Group by client, project, item, person, day or tag, and filter by all of them
- Billable amount from the rate in force when the work happened
- Margin from the cost rate against the billable rate
- Export CSV and a client-facing PDF, and mark entries invoiced with a reference so nothing bills twice
- Everything computed from entries at query time; no stored totals

OPERATIONS
- .env: DATABASE_PATH, BASE_URL, SESSION_SECRET, ENCRYPTION_KEY, SMTP_URL
- Integration credentials encrypted at rest with a key from the environment
- Migrations on boot, each once
- Nightly backup off the machine, restore script
- Health endpoint that reports the age of the last sync per integration

WHAT MATTERS MOST
The adapters. Build one host end to end — find the item, inject the timer, attach the hours, survive a page navigation in a single-page application — and use it for a week before adding a second. The rest of this is a time tracker; the extension is the reason to build it at all.

Give me the repository, the extension, one host adapter with its fixture and test, migrations, .env.example, and a README with deploy steps behind Caddy and instructions for loading the extension unpacked.

What you lose

  • Browser extensions that inject a timer into a dozen project tools and keep working as each changes
  • Budgets and alerts per project against tracked hours
  • Reports and invoices generated from the same data

If you would rather not build

  • Toggl Track with its browser extension
  • A CSV of task ids and minutes

What it costs

as published on their pricing page

PlanBilled monthlyBilled yearlyLast read
—$10/mo——

Their pricing page is where these came from. Seeing a different price? Tell us.

The escape hatch

open source · no votes, no paid placement

Kimai

$0

Self-hosted time tracking with projects, budgets and exports.

kimai/kimaifree · open source

Traggo

$0

A tag-based self-hosted time tracker with a small footprint.

traggo/serverfree · open source

Why this verdict

our own opinion · changed only by a person

78/100

Verdict yes at 78. Syncing the task list instead of writing a browser extension per tool is what makes this a weekend.

History

tracked since 10 Aug 2026 · nothing is ever overwritten

Interest · last 30 dayspeak 2/day
views01230 Aug4 Sept9 Sept14 Sept19 Sept24 Sept28 Sept
— views— prompt copies none yet— votes none yet

Questions about Everhour

answered from the record above

Is Everhour free?

No — the plan we track is $10 a month. Team at $10 per user per month billed monthly, cheaper annually, with a five-seat minimum.

Can you replace Everhour by building your own?

YES. Replaceable in one session with an AI coding agent. Replacement score 78 out of 100, build time one session. Read what you lose before you decide.

How much does Everhour cost?

$10 a month on Team — $120 a year. Recorded 10 Aug 2026.

What do you lose by replacing Everhour?

Browser extensions that inject a timer into a dozen project tools and keep working as each changes; Budgets and alerts per project against tracked hours; Reports and invoices generated from the same data. If any of those carry weight for you, keep paying.

Is there an open-source alternative to Everhour?

Yes: Kimai, Traggo. The prompt on this page is for when you want it your way instead.

Related entries

same category first, most replaced first

All 18 in Time tracking & invoicing

Not sending yet

Every week, something stops being worth paying for.

New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.

free forever · no tracking pixel · stored here, never passed to anyone

Esc