Terminal-basierte Anwendung für Stundenzettel aus Jira-Worklogs — inklusive manueller Nacherfassung für Zeiten, die nicht in Jira gebucht sind. Sechs Ansichten, Export nach Excel, PDF, JSON und Markdown, Feiertagskalender und Jahres-Forecast.




































Stundenzettel aus Jira — automatisch generiert, um eigene Zeiten ergänzt, visuell aufbereitet, exportbereit.
Worklogs per REST API — standardmäßig Jira Cloud (v3, Basic-Auth mit API-Token), per Schalter auch altes Server/Data Center (v2, Bearer-Token). Automatische Pagination und Filterung nach Zeitraum.
Bei Jira Cloud findet ein Klick das Budget-Custom-Field automatisch — kein manuelles Nachschlagen der Field-ID nötig.
Der MwSt-Satz ist eine Einstellung für die Netto/Brutto-Berechnung in TUI und Jahresansicht (Standard 19 %).
Listenansicht mit KW und Wochentag, Monatsansicht mit Tageskacheln, Jahresansicht mit Forecast und die drei Ticket-Ansichten. Tab-Navigation mit Klick oder TAB-Taste.
Alle offenen Tickets, gruppiert danach, wer gerade am Zug ist: was du selbst bearbeitest, was auf Freigabe wartet, was im Backlog liegt, was zurückzugeben ist - und was Jira für fertig hält, obwohl noch Arbeit bleibt. Genau diese letzte Gruppe fällt aus jeder üblichen Abfrage heraus: bei einer vermessenen Instanz waren das 24 von 93 Tickets, die lautlos fehlten.
Tickets, die dir nicht zugewiesen sind, an denen du aber drangewesen bist: selbst angelegt, beobachtet, Zeit gebucht, bearbeitet oder namentlich erwähnt. Mit Zeitfenster, damit die Liste ein Arbeitsvorrat bleibt und kein Archiv.
Derselbe Blick auf den Ticketstand von Kolleginnen und Kollegen, ohne dass diese etwas installieren müssen. Gesucht wird über den Namen, nicht über die Mailadresse: die gibt ein Jira-Konto nur heraus, wenn das Profil es zulässt, und wer mehrere Konten führt, trägt die Arbeit mal auf dem einen und mal auf dem anderen. Die Trefferliste sortiert deshalb nach der jüngsten Änderung - das aktuelle Konto ist nicht zwingend das größte. Ohne Zeitbuchungen und ohne Auswertung: gezeigt wird, was das Jira-Board ohnehin jedem im Team zeigt. Aus jeder Ticketliste führt "Tickets von X anzeigen" im Kontextmenü direkt dorthin. Wer noch nicht auf der Merkliste steht, erscheint vorübergehend und lässt sich per Knopf aufnehmen.
Zulauf gegen Abgang je Monat und die Altersverteilung der offenen Tickets, als echte Diagramme mit Achsen und Legende - gezeichnet mit plotext. Dazu eine Zeile mit Bestand, Durchsatz und Saldo. Zugeklappt als Vorgabe: die Zahlen kosten eine eigene Abfrage über die gesamte Historie, und ein Abruf, den niemand sehen will, muss auch nicht laufen.
Gerechnet wird Montag bis Freitag zwischen 8 und 18 Uhr. Ein Ticket, das Freitagnachmittag liegen bleibt und Montagvormittag wieder angefasst wird, hat einen Arbeitstag gelegen und nicht drei. Merkmale wie "verwaist", "blockiert" oder "Pile of Shame" zeigen, warum ein Ticket auffällt.
Formatierter Stundenzettel mit Logo und Unterschriftszeile. PDF ist Adobe-signierbar.
Deutsche Feiertage pro Bundesland. Lücken-Erkennung für fehlende Arbeitstage.
Arbeitszeitvergleich mit Differenz. Jahres-Forecast mit Urlaubstagen und Umsatzprognose.
31 Themes von vintage 8-bit über Terminal-Phosphor und Unix-Workstation bis zu 80s-Pastel — wechselbar mit Ctrl+P.
Enter oder D zeigt Status, Typ, Bearbeiter, Komponenten und Jira-Link im Log.
Mit B wird aus einem Ticket ein interaktiver Bericht: maßstabsgetreue Zeitachse des Lebenszyklus, Liegezeit je Status - Kalenderzeit gegen echte Arbeitszeit -, die Beteiligten, Kennzahlen wie Flow-Effizienz und erste Reaktion, dazu Befunde mit Beleg. Ergebnis ist eine einzelne HTML-Datei, die offline läuft und sich weitergeben lässt. Auffällig lange Liegezeiten werden rot markiert, verwandte Tickets zeigen ihren Titel, und der fertige Bericht öffnet sich gleich im Browser.
Daten per Tastendruck anonymisieren für sichere Screenshots und Demos.
Nicht jede Stunde landet als Worklog in Jira. Mit M lassen sich Zeiten direkt im Tool erfassen — Aufwand wahlweise als 3h 30m, 3:30 oder 3,5. Sie liegen in einer eigenen SQLite-Datei, zählen überall mit und sind farblich markiert - inklusive ausgewiesenem Anteil in der Kennzahlen-Zeile und in der Jahresansicht.
Jede der acht Spalten lässt sich getrennt für Anzeige und Export schalten und im Export frei benennen — inklusive Kunden-Spalte. In der Liste lassen sich die Breiten mit der Maus ziehen; die Beschreibung füllt automatisch den Rest.
Abgeschlossene Monate werden gecached — Jahresansicht lädt beim zweiten Mal sofort.
| Taste | Aktion |
|---|---|
F5 | Aktualisiert, was gerade zu sehen ist - Stundenzettel oder Ticket-Ansicht |
E | Export - Format (Excel, PDF, JSON, Markdown) wird im Speichern-Dialog gewählt |
D | Ticket-Details anzeigen |
M | Manuelle Zeit erfassen bzw. markierten Eintrag bearbeiten |
ENTF | Markierten manuellen Eintrag löschen (mit Rückfrage) |
TAB | Tab wechseln (Stundenzettel / Monat / Jahresansicht / Meine Tickets / Meine Aktivitäten / Mein Team) |
R | Cache zurücksetzen |
J | Jahresansicht mit Forecast |
A | Daten anonymisieren |
< / > | Monat wechseln |
S | Settings öffnen |
I | Info-Dialog |
C | Log in Zwischenablage kopieren |
L | Log ein-/ausblenden |
Ctrl+P | Theme wechseln |
Q | Beenden |
irm https://raw.githubusercontent.com/michaelblaess/jira-timesheet/main/install.ps1 | iex
curl -fsSL https://raw.githubusercontent.com/michaelblaess/jira-timesheet/main/install.sh | bash
Voraussetzung: Python 3.10+ · Danach einfach jira-timesheet im Terminal eingeben.
Das Programm meldet sich mit deinem eigenen Konto an - kein Server, keine Registrierung. Drei Angaben: Adresse, Token, Kennung.
Token unter id.atlassian.com anlegen: Create API token, Name, Ablaufdatum (1 bis 365 Tage). Er wird nur einmal angezeigt. Als Kennung die Mailadresse des Atlassian-Kontos.
Avatar → Profile → Personal access tokens (ab Jira 8.14). Kennung ist der Jira-Benutzername, und der Schalter Jira-Modus muss an sein. Hier ist ScriptRunner Pflicht - die Worklog-Suche läuft über dessen JQL-Funktion.
Das Budget-Feld findet auf Cloud ein Klick selbst. Die Statuslisten der Ticket-Ansichten dürfen leer bleiben - dann sortiert das Programm nach der Statuskategorie, die Jira ohnehin vergibt.
Schritt für Schritt steht das in der README.
Disclaimer: Dieses Projekt ist nicht von Atlassian entwickelt, unterstützt oder autorisiert. "Jira" und "Atlassian" sind eingetragene Markenzeichen von Atlassian Corporation. Dieses Tool nutzt die öffentliche Jira REST API und steht in keiner Verbindung zu Atlassian.