{{ template "head.tpl.html" . }} {{ template "menu-main.tpl.html" . }} {{ template "alerts.tpl.html" . }}

Settings

Time Zone, which you are located in. Relevant for displaying daily statistics.
Optional in general, but required for weekly reports and for resetting your password. {{ if .User.HasActiveSubscription }} You cannot unset or change your e-mail address while you have an active subscription. {{ end }}
{{ if .User.Email }}
Opt in to receive a summary of your coding activity once a week.
{{ end }}

Enter your old password for verification.
Choose a new password. Preferably, it is at least 8 characters long and contains letters, digits and special chars.
Once again ...
Aliases

You can specify aliases for any type of entity. For instance, you can define a rule, that both "myapp-frontend" and "myapp-backend" are combined under a project called "myapp".

{{ if .Aliases }}

Rules

{{ range $i, $alias := .Aliases }}
▸  All {{ $alias.Type | typeName }}s named {{ range $j, $value := $alias.Values }} {{- $value -}} {{ if lt $j (add (len $alias.Values) -2) }} {{- ", " | capitalize -}} {{ else if lt $j (add (len $alias.Values) -1) }} {{- "or" -}} {{ end }} {{ end }} are mapped to {{ $alias.Type | typeName }} {{ $alias.Key }}
{{end}}
{{end}}

Add Rule

Map named to

Project Labels

You can assign labels (aka. tags) to projects to group them together, e.g. by "private" and "work".

{{ if .Labels }}

Labels

{{ range $i, $label := .Labels }}
▸  {{ $label.Key }}: {{ range $j, $value := $label.Values }}
{{- $value -}}
{{ if lt $j (add (len $label.Values) -1) }} {{- ", " | capitalize -}} {{ end }} {{ end }}
{{end}}
{{end}} {{ if .Projects }}

Add Label

{{ else }}
You don't have any projects, yet. Start out by sending a few heartbeats before you can then assign labels.
{{ end }}

Language Mappings

You can specify custom mapping from file extensions to programming languages, for instance a ".jsx" file could be mapped to the "React" language.

{{ if .LanguageMappings }}

Rules

{{ range $i, $mapping := .LanguageMappings }}
▸  When filename ends in {{ $mapping.Extension }} then change the language to {{ $mapping.Language }}
{{end}}
{{end}}

Add Rule

When filename ends in change language to

Vibrant Colors

You can view the entire summary in vibrant colors similar to the "Languages" chart. Note that this setting is saved in your web browser only.

Public Leaderboard

Opt in to get listed in the public leaderboard. It shows aggregated statistics from the past 7 days of your coding.


Public Data

Some features require public access to your data without authentication. This mainly includes badges ("shields" endpoint) and the integration with GitHub Readme Stats ("stats" endpoint). You can choose which data to share publicly through these endpoints.

(in days; 0 = not public, -1 = unlimited)
{{ $placeholderText := "WakaTime API key" }} {{ if .User.WakatimeApiKey }} {{ $placeholderText = "********" }} {{ end }}
You can connect Wakapi with the official WakaTime (or another Wakapi instance, when optionally specifying a custom API URL) in a way that all heartbeats sent to Wakapi are relayed. This way, you can use both services at the same time. To get started, get your API key and paste it here.

To forward data to another Wakapi instance, use https://<your-server>/api/compat/wakatime/v1 as a URL.

Please note: When enabling this feature, the operators of this server will, in theory, have unlimited access to your data stored in WakaTime. If you are concerned about your privacy, please do not enable this integration or wait for OAuth 2 authentication (#94) to be implemented.
{{ if not .User.WakatimeApiKey }} {{ else }} {{ end }}

This integration with allows to generate badges for README pages or forums. To enable this feature, you need to grant public, unauthorized access to the respective endpoints. See Permissions. Adapt the URL's label and color parameters for customized badges.

In addition, there is an endpoint compatible with Shields.IO to allow for even more customization (e.g. different styles). Only available on public instances, not on localhost.
{{ if ne .User.ShareDataMaxDays 0 }}
Badge
Badge
Shields.io badge
{{ end }}

Wakapi intregrates with GitHub Readme Stats to generate fancy cards for you. To enable this feature, you need to grant public, unauthorized access to the respective endpoints. See Permissions.

Only available on public instances, not on localhost.
{{ if ne .User.ShareDataMaxDays 0 }}
Readme Stats Card
{{ end }}
{{ if .SubscriptionsEnabled }}
Subscription By default, this Wakapi instance will only store historical coding activity for {{ .DataRetentionMonths }} months. However, if you want to support the project, you can opt for a paid subscription for {{ .SubscriptionPrice }} / month to get unlimited history with no restrictions. You can cancel your subscription at any times!
Read more about the idea of adding paid subscriptions to Wakapi here.

{{ if not .User.HasActiveSubscription }} How it works Without a subscription, your coding activity older than {{ .DataRetentionMonths }} months will get deleted by a routine that is run every day. If you do have an active subscription at the time of checking, your data is kept.
In other words, for every point in time X, where you do not currently have an active subscription, all data older than X - {{ .DataRetentionMonths }} months gets dropped.

Please note If you just purchased a subscription, it might take a moment until it's active. Try refresh this page in a minute. Otherwise, please contact {{ .SupportContact }}.
{{ end }} {{ if not .UserFirstData.IsZero }} Your currently oldest data point is from {{ .UserFirstData | datetime }}.
{{ end }} Subscription status: {{ if .User.HasActiveSubscription }} Active (until {{ .User.SubscribedUntil.T | date }}) {{ else }} Inactive {{ end }} {{ if not .User.HasActiveSubscription }}
{{ if ne .User.Email "" }} {{ else }}
You have to provide an e-mail address to purchase a subscription. {{ end }}
{{ else }}
{{ end }}
{{ end }}
Regenerate Summaries Regenerate all pre-computed summaries from raw heartbeat data. This may be useful if, for some reason, summaries are faulty or preconditions have change (e.g. you modified language mappings retrospectively). This may take some time. Be careful and only run this action if you know, what your are doing, as data loss might occur.
Reset API Key Please note that resetting your API key requires you to update your .wakatime.cfg files on all of your computers to make the WakaTime client send heartbeats again.
Clear Data Clear all your time tracking data from Wakapi. This cannot be undone. Be careful!
Delete Account Deleting your account will cause all data, including all your heartbeats, to be erased from the server immediately. This action is irreversible. Be careful!
{{ template "footer.tpl.html" . }} {{ template "foot.tpl.html" . }}