Plas
mai

A native KDE Plasma 6 panel widget for time tracking with Kimai, Clockify, Toggl Track and SolidTime. Start, switch and edit timers from the panel and see today and the week at a glance. The same in an app for Android, Plasma Mobile and the desktop.

Ein natives KDE-Plasma-6-Panel-Widget zur Zeiterfassung mit Kimai, Clockify, Toggl Track und SolidTime. Timer aus dem Panel starten, wechseln und bearbeiten, dazu Heute und Woche auf einen Blick. Dasselbe als App für Android, Plasma Mobile und den Desktop.

curl -fsSL https://github.com/shrippen/Plasmai/releases/latest/download/install-linux.sh | bash

The command installs or updates the widget to the latest release from GitHub. You can also get the .plasmoid from the KDE Store. The app comes with every release as AppImage and Flatpak for the desktop and as APK for Android.

Der Befehl installiert oder aktualisiert das Widget auf das neueste Release von GitHub. Das .plasmoid gibt es auch im KDE Store. Die App liegt jedem Release als AppImage und Flatpak für den Desktop und als APK für Android bei.

The Plasmai popup with a running timer, sparkline, favorites and recentsThe Plasmai popup with a running timer, sparkline, favorites and recents
Note: Plasmai is completely vibe coded from start to finish. It is something I wanted for myself, but I might as well share it. Only the Kimai backend is tested with a live account.Hinweis: Plasmai ist von Anfang bis Ende komplett vibe-codiert. Ich wollte es für mich selbst, teile es aber gern. Nur das Kimai-Backend ist mit einem echten Konto getestet.
4BackendsBackends
12LanguagesSprachen
3Screens: timer, add, statisticsAnsichten: Timer, Erfassen, Statistik
GPL-3Open sourceOpen Source
Timer

Live Panel Timer

Live-Timer im Panel

Running project, activity, and elapsed time in the Plasma panel. No extra windows.

Laufendes Projekt, laufende Tätigkeit und verstrichene Zeit direkt im Plasma-Panel. Keine zusätzlichen Fenster.

FavoritesFavoriten

Favorites & Recents

Favoriten & Zuletzt genutzt

Pin project/activity pairs. Switch tasks with one click and a confirmation dialog.

Projekt-/Tätigkeitspaare anheften. Aufgaben mit einem Klick und Bestätigungsdialog wechseln.

StatisticsStatistik

Statistics

Statistik

Hourly bar charts, project gantt, activity donut charts. Today and week at a glance.

Stundenbalken, Projekt-Gantt und Tätigkeits-Donut-Diagramme. Heute und Woche auf einen Blick.

Sparkline

Day Sparkline

Tages-Sparkline

Work-hours bar with sun/moon arcs, overtime segments, and hour ticks in the header.

Arbeitszeitleiste mit Sonnen-/Mondbogen, Überstundenabschnitten und Stundenmarken im Kopfbereich.

Tags

Tags & Billable

Tags & Abrechenbar

Tag entries and mark billable. Kimai auto-resolves billable from activity/project/customer.

Einträge taggen und als abrechenbar markieren. Kimai leitet „abrechenbar“ automatisch aus Tätigkeit, Projekt und Kunde ab.

SecretsGeheimnisse

KWallet Secrets

KWallet-Secrets

API tokens stored in KWallet. Multiple profiles per service, shared across instances.

API-Tokens liegen in KWallet. Mehrere Profile pro Dienst, über Instanzen hinweg geteilt.

EditingBearbeiten

Edit Running & Stopped

Laufende & gestoppte bearbeiten

Edit start time, project, activity. Split, delete, or edit stopped recents from the overflow menu.

Startzeit, Projekt und Tätigkeit ändern. Gestoppte Einträge über das Überlaufmenü teilen, löschen oder bearbeiten.

Idle

Idle Auto-Stop

Automatisch stoppen bei Inaktivität

Stop tracking after idle time. X11 and Wayland with automatic detection.

Zeiterfassung nach Inaktivität stoppen. X11 und Wayland mit automatischer Erkennung.

LanguagesSprachen

12 Languages

12 Sprachen

EN, DE, FR, ES, IT, NL, PT (BR), PL, UK, RU, JA, ZH (CN).

EN, DE, FR, ES, IT, NL, PT (BR), PL, UK, RU, JA, ZH (CN).

App

Android & Plasma Mobile

Android & Plasma Mobile

A Kirigami app with the same backends: timer, favorites, recents, manual entries, statistics and settings. As APK for Android and as AppImage or Flatpak for the desktop, with every release.

Eine Kirigami-App mit denselben Backends: Timer, Favoriten, Zuletzt genutzt, manuelle Einträge, Statistik und Einstellungen. Als APK für Android und als AppImage oder Flatpak für den Desktop, bei jedem Release.

Film dayDrehtag

Film Day View

Drehtag-Ansicht

Shooting-day entry for Kimai: begin, end, break, catering, day type, shooting day, extra pay and note. It needs the Drehzettel plugin, which keeps the extras on the server; without it the view stays hidden.

Drehtag-Erfassung für Kimai: Beginn, Ende, Pause, Catering, Tagestyp, Drehtag, Zusatzgage und Anmerkung. Sie braucht das Drehzettel-Plugin, das die Extras auf dem Server speichert; ohne das Plugin bleibt die Ansicht ausgeblendet.

TripsFahrten

Trips

Fahrten

With the Anfahrten plugin: log a trip, link it to a time entry, and accept or dismiss trips detected from Dawarich. Statistics show the km of the week and month.

Mit dem Anfahrten-Plugin: Fahrten erfassen, mit einem Zeiteintrag verknüpfen und aus Dawarich erkannte Fahrten übernehmen oder verwerfen. Die Statistik zeigt die km der Woche und des Monats.

TimerTimer

Tracking without leaving the panel

Zeiterfassung, ohne das Panel zu verlassen

The panel chip shows the running project, activity and elapsed time. Click it to open the popup, on the desktop the widget is the popup. A click on the panel never starts or stops anything by accident.

Der Panel-Chip zeigt laufendes Projekt, Tätigkeit und verstrichene Zeit. Ein Klick öffnet das Popup, auf dem Desktop ist das Widget selbst das Popup. Ein Klick auf das Panel startet oder stoppt nie aus Versehen etwas.

  • Start, stop and switch from the popup or the desktop widget
  • Click a Recent or a favorite while tracking to confirm the switch; the same activity is not stopped
  • Edit the running entry: start time, project, activity, tags and billable
  • Pinned favorites and Recents use customer colors
  • Starten, stoppen und wechseln im Popup oder im Desktop-Widget
  • Klick auf einen Recent-Eintrag oder Favoriten während der Erfassung fragt nach dem Wechsel; dieselbe Tätigkeit wird nicht gestoppt
  • Den laufenden Eintrag bearbeiten: Startzeit, Projekt, Tätigkeit, Tags und Abrechenbar
  • Angeheftete Favoriten und Recents nutzen Kundenfarben
The Plasmai popup with a running timer, sparkline, favorites and recentsThe Plasmai popup with a running timer, sparkline, favorites and recents
Popup with timer, sparkline, favorites and recentsPopup mit Timer, Sparkline, Favoriten und Recents
SparklineSparkline

Your day as one bar

Dein Tag als ein Balken

A zoomed bar in the popup header shows your work hours: tracked time in green, overtime segments, hour ticks and sun and moon arcs for your location. Above it, today and the week are compared with your work contract.

Ein gezoomter Balken im Popup-Kopf zeigt deine Arbeitszeit: erfasste Zeit in Grün, Überstunden-Abschnitte, Stundenmarken und Sonnen- und Mondbögen für deinen Standort. Darüber werden Heute und die Woche mit deinem Arbeitsvertrag verglichen.

  • Arcs for sun, moon and work can be switched on or off in Display
  • The location search waits briefly after typing instead of querying on every keystroke
  • Bögen für Sonne, Mond und Arbeit lassen sich unter Anzeige ein- und ausschalten
  • Die Ortssuche wartet nach dem Tippen kurz, statt bei jedem Tastendruck abzufragen
The day sparkline and the running timer of PlasmaiThe day sparkline and the running timer of Plasmai
Timer and day sparklineTimer und Tages-Sparkline
Add entryEintrag erfassen

Manual entries, done properly

Manuelle Einträge, sauber gemacht

The plus button opens a form for entries you forgot to track. Searchable pickers find projects and activities, and you can create a new customer, project or activity right from the picker.

Der Plus-Knopf öffnet ein Formular für vergessene Einträge. Durchsuchbare Auswahllisten finden Projekte und Tätigkeiten, und einen neuen Kunden, ein neues Projekt oder eine neue Tätigkeit legst du direkt aus der Auswahl an.

  • Begin, end and duration with date and time pickers
  • Description, tags and billable; Kimai resolves billable automatically from activity, project and customer
  • Edit, delete or split stopped Recents from the overflow menu
  • Beginn, Ende und Dauer mit Datums- und Zeitauswahl
  • Beschreibung, Tags und Abrechenbar; Kimai leitet Abrechenbar automatisch aus Tätigkeit, Projekt und Kunde ab
  • Gestoppte Recents bearbeiten, löschen oder teilen über das Überlaufmenü
The Plasmai add entry formThe Plasmai add entry form
Add entry formFormular „Eintrag erfassen“
StatisticsStatistik

Charts for today and the week

Diagramme für Heute und die Woche

The chart icon switches to a statistics view. Filter by All, Billable or Not billable and page through days and weeks.

Das Diagramm-Symbol wechselt in eine Statistikansicht. Filtere nach Alle, Abrechenbar oder Nicht abrechenbar und blättere durch Tage und Wochen.

  • Time by hour for the selected day
  • Projects by day as stacked bars
  • Projects by hour as a Gantt-style chart
  • Activity distribution for today and this week as donuts
  • Zeit nach Stunde für den gewählten Tag
  • Projekte nach Tag als gestapelte Balken
  • Projekte nach Stunde als Gantt-Diagramm
  • Tätigkeitsverteilung für Heute und diese Woche als Donuts
The Plasmai statistics view with chartsThe Plasmai statistics view with charts
Statistics viewStatistikansicht

Idle, reminders and notifications

Inaktivität, Erinnerungen und Benachrichtigungen

Work contract and holidays

Arbeitsvertrag und Feiertage

Today and week totals come from your Kimai work contract. The remaining hours of the week skip vacation and public holidays when the Working Hours & Holidays plugin or the official WorkContractBundle is installed.

Summen für Heute und Woche stammen aus deinem Kimai-Arbeitsvertrag. Die Restzeit der Woche überspringt Urlaub und Feiertage, wenn das Plugin Working Hours & Holidays oder das offizielle WorkContractBundle installiert ist.

Film days and trips

Drehtage und Fahrten

Two more Kimai plugins plug into Plasmai. Both are detected per profile; without them nothing changes.

Zwei weitere Kimai-Plugins docken an Plasmai an. Beide werden pro Profil erkannt; ohne sie ändert sich nichts.

How it works

So funktioniert es

Plasmai is a pure QML applet, so the KDE Store package contains no binaries. Every provider is translated into one Kimai-shaped model, so the interface is the same for all services. What a service cannot do is switched off by a capability flag instead of a different UI.

Plasmai ist ein reines QML-Applet, das Paket im KDE Store enthält also keine Binärdateien. Jeder Anbieter wird in ein Kimai-förmiges Modell übersetzt, sodass die Oberfläche für alle Dienste gleich ist. Was ein Dienst nicht kann, wird per Capability-Flag abgeschaltet statt durch eine andere Oberfläche.

Plasmai widgetPanel chip, popup, desktop widget in QMLPanel-Chip, Popup und Desktop-Widget in QML
timeTracker.jsRoutes each call to the profile’s providerLeitet jeden Aufruf an den Anbieter des Profils weiter
Providerkimai, clockify, toggl or solidtime, normalized to one modelkimai, clockify, toggl oder solidtime, in ein Modell normalisiert
Your serviceThe public API of Kimai, Clockify, Toggl Track or SolidTimeDie öffentliche API von Kimai, Clockify, Toggl Track oder SolidTime

Supported backends

Unterstützte Backends

BackendBackendAuthenticationAuthentifizierungStatusStatus
KimaiBearer token + server URLBearer-Token + Server-URLTested, the reference backendGetestet, das Referenz-Backend
ClockifyAPI key; optional regional URLAPI-Key; optionale regionale URLExperimental, not verified with a live accountExperimentell, nicht mit einem echten Konto geprüft
Toggl TrackAPI token (Basic auth)API-Token (Basic Auth)Experimental, not verified with a live accountExperimentell, nicht mit einem echten Konto geprüft
SolidTimeBearer JWT + instance URLBearer-JWT + Instanz-URLExperimental, not verified with a live accountExperimentell, nicht mit einem echten Konto geprüft

Tags work with Kimai and, where the API takes names, Toggl; Clockify and SolidTime hide the field. Billable works with all four.

Tags funktionieren mit Kimai und, wo die API Namen annimmt, mit Toggl; Clockify und SolidTime blenden das Feld aus. Abrechenbar funktioniert mit allen vier.

Setup

Einrichtung

  1. Install the widget with the command above, or add it from the KDE Store, then right-click the panel → Add Widgets → search for Plasmai
  2. Right-click the widget → Configure Plasmai
  3. Connection: choose the service, set the URL if needed, save the API token and test the connection
  4. Favorites: pin frequently used project and activity pairs
  5. Display and Behavior: number of Recents, panel labels, sparkline arcs, idle stop, notifications
  1. Installiere das Widget mit dem Befehl oben oder aus dem KDE Store, dann Rechtsklick auf das Panel → Widgets hinzufügen → nach Plasmai suchen
  2. Rechtsklick auf das Widget → Plasmai einrichten
  3. Verbindung: Dienst wählen, falls nötig die URL setzen, API-Token speichern und die Verbindung testen
  4. Favoriten: häufig genutzte Projekt-/Tätigkeitspaare anheften
  5. Anzeige und Verhalten: Anzahl der Recents, Panel-Beschriftung, Sparkline-Bögen, Inaktivitäts-Stopp, Benachrichtigungen

Update with kpackagetool6 -u . -t Plasma/Applet from a checkout, install or update a release with the command in the box at the top and remove it with kpackagetool6 -r com.github.shrippen.plasmai -t Plasma/Applet.

Aktualisieren mit kpackagetool6 -u . -t Plasma/Applet aus einem Checkout, ein Release installieren oder aktualisieren mit dem Befehl in der Box oben und entfernen mit kpackagetool6 -r com.github.shrippen.plasmai -t Plasma/Applet.

# from source git clone https://github.com/shrippen/Plasmai.git cd Plasmai chmod +x contents/code/*.sh kpackagetool6 -i . -t Plasma/Applet

Requirements

Voraussetzungen

Languages

Sprachen

The interface and the KDE Store description are translated into 12 languages: English, German, French, Spanish, Italian, Dutch, Portuguese (Brazil), Polish, Ukrainian, Russian, Japanese and Simplified Chinese.

Die Oberfläche und die KDE-Store-Beschreibung sind in 12 Sprachen übersetzt: Englisch, Deutsch, Französisch, Spanisch, Italienisch, Niederländisch, Portugiesisch (Brasilien), Polnisch, Ukrainisch, Russisch, Japanisch und vereinfachtes Chinesisch.

Questions

Fragen

Can I start or stop by clicking the panel icon?Kann ich per Klick auf das Panel-Symbol starten oder stoppen?

No. A click on the panel chip only opens the popup, so nothing starts or stops by accident. Starting and stopping happen inside the popup or the desktop widget.

Nein. Ein Klick auf den Panel-Chip öffnet nur das Popup, damit nichts versehentlich startet oder stoppt. Starten und Stoppen passieren im Popup oder im Desktop-Widget.

Which backends are production-tested?Welche Backends sind produktiv getestet?

Only Kimai. Clockify, Toggl Track and SolidTime are implemented against their public APIs, but stay experimental until they are verified with live accounts.

Nur Kimai. Clockify, Toggl Track und SolidTime sind gegen ihre öffentlichen APIs umgesetzt, bleiben aber experimentell, bis sie mit echten Konten geprüft sind.

Does it track apps or windows automatically?Erfasst es Apps oder Fenster automatisch?

No. Automatic app tracking, screenshots, invoicing, expenses and team dashboards are on the “won’t do” list. Plasmai stays a small API client in the panel.

Nein. Automatische App-Erfassung, Screenshots, Rechnungen, Spesen und Team-Dashboards stehen auf der „Wird nicht gemacht“-Liste. Plasmai bleibt ein kleiner API-Client im Panel.

Where are my tokens stored?Wo liegen meine Tokens?

In KWallet, via secret-tool. The shared settings file holds your profiles, favorites and options.

In KWallet, über secret-tool. Die geteilte Einstellungsdatei enthält deine Profile, Favoriten und Optionen.

Do I need the holiday plugin for Kimai?Brauche ich das Feiertags-Plugin für Kimai?

No. It only improves the remaining hours of the week. Plasmai works without it and detects it automatically when it is there.

Nein. Es verbessert nur die Restzeit der Woche. Plasmai funktioniert auch ohne und erkennt es automatisch, wenn es vorhanden ist.

Changes

Änderungen

  1. 2.6.1

    The Plasma widget for 2.6.0: its package was missing from the 2.6.0 release.

    Das Plasma-Widget zu 2.6.0: Sein Paket fehlte im Release 2.6.0.

    FixedBehoben

    • 2.6.0 came without the widget package (.plasmoid) and the install script, so the one-line install command failed with "not found" while 2.6.0 was the latest release. The package build stopped at a comment that named the internal screenshot code it removes. The checks now build the widget package on every pull request, so this shows before a release.
    • 2.6.0 kam ohne das Widget-Paket (.plasmoid) und das Installationsskript, deshalb schlug der Einzeiler zur Installation mit „nicht gefunden“ fehl, solange 2.6.0 das neueste Release war. Der Paketbau brach an einem Kommentar ab, der den internen Screenshot-Code nannte, den er entfernt. Die Prüfungen bauen das Widget-Paket jetzt bei jedem Pull Request, so fällt das vor einem Release auf.

    NoteHinweis

    • No changes in the app or the widget beyond 2.6.0: everything new in 2.6.0 below applies.
    • App und Widget sind gegenüber 2.6.0 unverändert: Alles Neue aus 2.6.0 unten gilt.
    Release files of 2.6.0 and 2.6.1: 2.6.0 lacks the plasmoid and the install script, 2.6.1 has all sixRelease-Dateien von 2.6.0 und 2.6.1: 2.6.0 fehlen Plasmoid und Installationsskript, 2.6.1 hat alle sechs
    Release files per versionRelease-Dateien je Version
    All changes since 2.6.0 →Alle Änderungen seit 2.6.0 →
  2. 2.6.0

    A terminal client for the desktop app, a day of its own for the activity chart, and editing that keeps the dates and times you enter.

    Ein Terminal-Client für die Desktop-App, ein eigener Tag für das Tätigkeitsdiagramm und Bearbeiten, das Datum und Uhrzeit so behält, wie du sie eingibst.

    NewNeu

    • Terminal client in the desktop app (Linux, macOS): plasmai-app --tui shows the timer, recents, today as hour rows with gaps and the week as a table. 1–9 start or switch, s stops. For tracking from a terminal or over SSH; it uses the app's profile and keeps its own offline outbox. The widget has none.
    • Terminal-Client in der Desktop-App (Linux, macOS): plasmai-app --tui zeigt Timer, Zuletzt, Heute als Stundenzeilen mit Lücken und die Woche als Tabelle. 1–9 startet oder wechselt, s stoppt. Zum Erfassen aus dem Terminal oder per SSH; er nutzt das Profil der App und hat einen eigenen Offline-Ausgang. Das Widget hat keinen.

    ImprovedVerbessert

    • Statistics: the activity distribution has its own day switcher, so you can look at another day without moving the other charts. Day and week take half the width each; an empty day keeps the chart's height.
    • Statistics (Kante styles): hovering a block in "Projects by hour" shows its project, time span and duration; on touch a tap does.
    • Statistik: Die Tätigkeitsverteilung hat einen eigenen Tagesumschalter, so siehst du einen anderen Tag, ohne die übrigen Diagramme zu verschieben. Tag und Woche teilen sich die Breite; ein leerer Tag behält die Höhe des Diagramms.
    • Statistik (Kante-Stile): Fährst du über einen Block in „Projekte nach Stunde“, zeigt er Projekt, Zeitraum und Dauer; auf Touch reicht ein Tippen.

    FixedBehoben

    • Editing an entry could move its start 100 years back. In a short date format with a two-digit year ("13.10.26", "10/13/26") the date field read its own text as 1926. A running entry then started in 1926, and Kimai refused a stopped one as too long. Two-digit years now mean this century.
    • App time picker in 12-hour languages (US English and others): it showed a 24-hour dial without AM/PM and put 12:xx in the morning. It now shows 1–12 with AM/PM. In every language, Select without turning a dial gave the current time instead of the time it opened with.
    • 12-hour time fields: typing an hour no longer moves a PM time to the morning (3 on 2:30 PM stays 3:30 PM).
    • Statistics (Kante styles): the chart read-outs wrote project names in the project colour, which some colours made unreadable. They now use the text colour with a coloured square in front.
    • Beim Bearbeiten konnte der Start eines Eintrags 100 Jahre zurückspringen. In einem kurzen Datumsformat mit zweistelliger Jahreszahl („13.10.26“, „10/13/26“) las das Datumsfeld seinen eigenen Text als 1926. Ein laufender Eintrag begann dann 1926, einen beendeten lehnte Kimai als zu lang ab. Zweistellige Jahre bedeuten jetzt dieses Jahrhundert.
    • Zeitwähler der App in 12-Stunden-Sprachen (US-Englisch und andere): Er zeigte ein 24-Stunden-Rad ohne AM/PM und legte 12:xx auf den Vormittag. Jetzt zeigt er 1–12 mit AM/PM. In jeder Sprache gab „Auswählen“ ohne Drehen die aktuelle Uhrzeit zurück statt der, mit der er geöffnet wurde.
    • 12-Stunden-Zeitfelder: Eine getippte Stunde verschiebt eine PM-Zeit nicht mehr auf den Vormittag (3 auf 2:30 PM bleibt 3:30 PM).
    • Statistik (Kante-Stile): Die Read-outs der Diagramme schrieben Projektnamen in der Projektfarbe, die manche Farben unlesbar machten. Jetzt stehen sie in der Textfarbe mit einem farbigen Quadrat davor.
    The terminal client with the running timer, today and the week, and recentsDer Terminal-Client mit laufendem Timer, Heute und Woche sowie Zuletzt
    Terminal client, plasmai-app --tui (demo data)Terminal-Client, plasmai-app --tui (Demodaten)
    Activity distribution with a day switcher for today and one for the weekTätigkeitsverteilung mit Tagesumschalter für Heute und einem für die Woche
    Activity distribution with its own day (demo data)Tätigkeitsverteilung mit eigenem Tag (Demodaten)
    A date field showing 13.10.26 and 10/13/26; 2.5.3 read them as 1926, 2.6.0 as 2026Ein Datumsfeld mit 13.10.26 und 10/13/26; 2.5.3 las sie als 1926, 2.6.0 als 2026
    What the date field reads back from its own textWas das Datumsfeld aus seinem eigenen Text zurückliest
    The app's time picker in US English: 02:30 PM with an AM/PM wheelDer Zeitwähler der App auf Deutsch: 14:30
    Time picker at 2:30 PM in US English (demo data)Zeitwähler um 14:30 auf Deutsch (Demodaten)
    All changes since 2.5.3 →Alle Änderungen seit 2.5.3 →

Roadmap

Roadmap

Version 2.0 brought the Android and Plasma Mobile app, the film day view with the Drehzettel plugin and trips with the Anfahrten plugin. Next is 3.0: at least one non-Kimai backend tested with a live account and no longer experimental. Also open: provider gaps such as Clockify tags, and idle detection in the Android app. KRunner may come as a separate package, since the Store applet cannot ship binaries. Global shortcuts, D-Bus control and a shutdown hold were tried and removed.

Version 2.0 brachte die App für Android und Plasma Mobile, die Drehtag-Ansicht mit dem Drehzettel-Plugin und Fahrten mit dem Anfahrten-Plugin. Als Nächstes kommt 3.0: mindestens ein Nicht-Kimai-Backend, das mit einem echten Konto geprüft und nicht mehr experimentell ist. Ebenfalls offen: Lücken bei Anbietern wie Clockify-Tags und die Leerlauferkennung in der Android-App. KRunner käme gegebenenfalls als eigenes Paket, weil das Store-Applet keine Binärdateien ausliefern kann. Globale Tastenkürzel, D-Bus-Steuerung und eine Herunterfahr-Sperre wurden ausprobiert und wieder entfernt.

Details in ROADMAP.md and the changelog.

Details in der ROADMAP.md und im Changelog.