4,959 stars · AGPL-3.0 · 2.67.0 (2026-09-13) · Track this in Scout
Self-hosted time tracking against customers and projects, with invoices generated from the same records.
▶Repo detailsthe review · specs · pros & cons · install
What it is
Kimai is a web application for recording time against customers, projects and activities, with reporting and invoice generation on top. It is a PHP application backed by MySQL or MariaDB.
What it is good for. Freelancers and small teams who bill by time and are currently doing it in a spreadsheet. The gain is not the timer — it is that the invoice comes out of the same data, with the same rates, without anybody retyping anything. It also handles several people, several rates and several currencies, which is where spreadsheets usually break.
- Invoices are generated from the recorded time using templates you can edit, in several formats. That removes the retyping step where the errors happen.
- Rates can be set per customer, per project, per activity and per person, including different internal and billable rates.
- It has been maintained for ten years, has a real plugin ecosystem, and there is a mobile app and a browser extension for starting the timer.
- PHP 8.2 or newer, a web server and a MySQL-compatible database. There is a container image, but this is still the heaviest kind of install in today's list.
- The interface is dense. Customers, projects, activities, teams, rates and tags all exist, and the first hour is spent deciding which of them you actually need.
- AGPL-3.0, and some plugins from the project's own shop are paid. Nothing essential is behind that line, but the invoice templates people want are often the paid ones.
solidtime-io/solidtime8,922 stars, a modern-looking alternative with a cleaner interface; younger, and its invoicing is less developed.
Track this in Scout- ActivityWatch/activitywatch
18,885 stars, records what you were doing automatically rather than asking you to start a timer; excellent for understanding where time went, and it does not produce invoices.
Track this in Scout - traggo/server
1,629 stars, a much smaller tag-based tracker in Go; quick to run and deliberately simple, with no customers, rates or invoices.
Track this in Scout
docker run --rm -d --name kimai-mysql \ -e MYSQL_DATABASE=kimai -e MYSQL_USER=kimai \ -e MYSQL_PASSWORD=kimai -e MYSQL_ROOT_PASSWORD=kimai \ mysql:8.4 docker run --rm -d --name kimai -p 8001:8001 \ -e DATABASE_URL=mysql://kimai:kimai@host.docker.internal:3306/kimai \ kimai/kimai2:apache

