Repolode
muety

muety/wakapi

A minimalist, self-hosted backend compatible with WakaTime clients, for tracking and viewing your own coding statistics.

Open-source alternative to:WakaTime

Stars
4,457
Forks
309
Open issues
42
Last commit
8 hours ago

What is it?

Wakapi is a self-hosted server that receives coding activity heartbeats from WakaTime editor plugins and turns them into statistics on projects, languages, editors, hosts and operating systems. It works as a drop-in replacement for the WakaTime backend by pointing the client's api_url at your own instance, so you keep your data on infrastructure you control.

Beyond the web dashboard, it offers a REST API, badges, weekly e-mail reports, and Prometheus metrics export. It can run with SQLite by default or with MySQL and Postgres, and supports OpenID Connect login, invite-only registration, and a public leaderboard that can be turned off.

Wakapi is written in Go and can be deployed as a single binary, via Docker or Docker Compose, or on Kubernetes using a community Helm chart.

Key features

  • 01Statistics by project, language, editor, host and operating system
  • 02Partial compatibility with the WakaTime client and API
  • 03REST API, badges and weekly e-mail reports
  • 04Prometheus metrics export
  • 05SQLite, MySQL and Postgres database support
  • 06OpenID Connect login and optional invite-only registration

Use cases

  • Keeping your coding time data on a server you control instead of a SaaS service
  • Running a private coding-stats dashboard for a team or home lab
  • Displaying coding statistics badges on a personal README or site
  • Feeding coding activity metrics into an existing Prometheus and Grafana setup

Quick start

  1. 1

    Install Wakapi with Go

    go install github.com/muety/wakapi@latest
  2. 2

    Download the default config file

    curl -o wakapi.yml https://raw.githubusercontent.com/muety/wakapi/master/config.default.yml
  3. 3

    Edit the config file to customize settings

  4. 4

    Run Wakapi with the config file

    ./wakapi -config wakapi.yml

Things to know

  • Only partially compatible with WakaTime, so some clients or features may not work.
  • You must self-host the server and set up a WakaTime client on each machine to send data.

Topics

FAQ

What is wakapi?
A minimalist, self-hosted backend compatible with WakaTime clients, for tracking and viewing your own coding statistics. Wakapi is a self-hosted server that receives coding activity heartbeats from WakaTime editor plugins and turns them into statistics on projects, languages, editors, hosts and operating systems. It works as a drop-in replacement for the WakaTime backend by pointing the client's api_url at your own instance, so you keep your data on infrastructure you control.
Is wakapi free to use? What license does it have?
wakapi is open source under the MIT license. Check the license terms before using it in commercial products.
Is wakapi still maintained?
Actively maintained. The last commit to wakapi was on Oct 21, 2026.
What can I use wakapi for?
Keeping your coding time data on a server you control instead of a SaaS service Running a private coding-stats dashboard for a team or home lab Displaying coding statistics badges on a personal README or site Feeding coding activity metrics into an existing Prometheus and Grafana setup
How do I install wakapi?
Install Wakapi with Go: go install github.com/muety/wakapi@latest Download the default config file: curl -o wakapi.yml https://raw.githubusercontent.com/muety/wakapi/master/config.default.yml Edit the config file to customize settings Run Wakapi with the config file: ./wakapi -config wakapi.yml
Where can I get wakapi?
The source code and installation instructions are on GitHub: https://github.com/muety/wakapi

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects