{{ template "head.tpl.html" . }} {{ template "header.tpl.html" . }}
← Go back

Settings

         
{{ template "alerts.tpl.html" . }}

Change Password

Reset API Key

⚠️ Caution: 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.

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
Languages & File Extensions
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
Badges
{{ if .User.BadgesEnabled }}

Badges are currently enabled. You can disable the feature by deactivating the respective API endpoint.

GET /api/compat/shields/v1

Examples

Shields.io badge
https://img.shields.io/endpoint?url=%s/api/compat/shields/v1/{{ .User.ID }}/interval:today&style=flat-square&color=blue&label=today
Shields.io badge
https://img.shields.io/endpoint?url=%s/api/compat/shields/v1/{{ .User.ID }}/interval:30_days&style=flat-square&color=blue&label=last 30d

You can also add /project:your-cool-project to the URL to filter by project.

{{ else }}

You have the ability to create badges from your coding statistics using Shields.io. To do so, you need to grant public, unauthorized access to the respective endpoint.

GET /api/compat/shields/v1
{{ end }}

Integrations

WakaTime

WakaTime Logo

You can connect Wakapi with the official WakaTime 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.

{{ $placeholderText := "Paste your WakaTime API key here ..." }} {{ if .User.WakatimeApiKey }} {{ $placeholderText = "********" }} {{ end }}
{{ if not .User.WakatimeApiKey }} {{ else }} {{ end }}

👉 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.

⚠️ Danger Zone

Regenerate summaries

Wakapi improves its efficiency and speed by automatically aggregating individual heartbeats to summaries on a per-day basis. That is, historic summaries, i.e. such from past days, are generated once and only fetched from the database in a static fashion afterwards, unless you pass &recompute=true with your request.

If, for some reason, these aggregated summaries are faulty or preconditions have change (e.g. you modified language mappings retrospectively), you may want to re-generate them from raw heartbeats.

Note: Only run this action if you know what you are doing. Data might be lost is case heartbeats were deleted after the respective summaries had been generated.

{{ template "footer.tpl.html" . }} {{ template "foot.tpl.html" . }}