performa

Version 2.6.5

performa — Benutzerhandbuch

English · Deutsch

performa ist eine kleine Desktop-App (macOS + Windows) zum Erfassen deiner Arbeitszeiten auf Jira-Cloud-Vorgängen — mit Timer, Wochen-Timesheet, Erinnerungen an vergessene Worklogs und einem Dashboard.

Inhalt

Was ist performa?

performa spricht direkt mit deiner Jira-Cloud-Site und schreibt native Jira-Worklogs. Weil die Einträge in Jira selbst landen, erscheinen sie automatisch in jedem Tool, das Jira-Worklogs abbildet — auch in ActivityTimeline.

Zwei Grundprinzipien, die du kennen solltest:

  • Dein API-Token erreicht nie die Web-Ebene. Die gesamte Jira-Kommunikation läuft im nativen (Rust-)Kern der App; das Token liegt im Anmeldespeicher des Betriebssystems (macOS-Schlüsselbund / Windows-Anmeldeinformationsverwaltung), nicht in einer Konfigurationsdatei.
  • Abrechenbar als Standard. Ein als non-billable markiertes Worklog wird mit einem führenden ~ im Jira-Kommentar gespeichert — die ActivityTimeline-Konvention —, sodass die Einordnung den Weg durch Jira übersteht.

Erste Schritte

Installation

Lade das aktuelle Release von der GitHub-Releases-Seite des Projekts herunter: Releases · GuyLatuep/performa

  • macOS: .dmg (Apple Silicon)
  • Windows: .exe-Installer

Mit Jira verbinden

Beim ersten Start zeigt performa den Verbindungsbildschirm. Du brauchst drei Dinge:

Feld Was du einträgst
Jira site Dein Jira-Cloud-Host, z. B. dein-team.atlassian.net (mit oder ohne https://)
Email Die E-Mail-Adresse deines Atlassian-Kontos
API token Ein persönliches Atlassian-API-Token

Klicke auf Create an API token ↗ im Verbindungsbildschirm (oder öffne id.atlassian.com/manage-profile/security/api-tokens), erstelle ein Token und füge es in das Feld ein.

Mit Connect prüft performa die Zugangsdaten gegen Jira, bevor sie gespeichert werden — ein Tippfehler in Site oder Token führt zu einer Fehlermeldung statt zu einer kaputten Einrichtung. Bei Erfolg wandert das Token in den Schlüsselbund des Betriebssystems und das Hauptfenster öffnet sich.

Falls die App den Schlüsselbund beim Start einmal nicht lesen kann, zeigt sie den Fehler mit einem Retry-Button an, statt bei „Loading…“ hängen zu bleiben.

Die Oberfläche im Überblick

Das Hauptfenster besteht aus:

  • Kopfzeile — das performa-Zeichen, deine Konto-E-Mail, ein Settings-Link und Sign out (fragt nach Bestätigung; beim Abmelden wird das Token aus dem Schlüsselbund entfernt).
  • Update-Banner — erscheint nur, wenn ein neueres Release existiert (Updates).
  • Timer-Leiste — erscheint nur, während ein Timer läuft (Der Timer).
  • Sechs Tabs: Start, Todo, Log work, Timesheet, Missing worklog, Mentions. Die App öffnet sich auf Start.

Tastatur

Fast alles in performa hat eine Taste. Du musst sie nicht lernen: halte ⌘ (unter Windows Strg) und jede erreichbare Aktion nennt ihre eigene — als kleines Abzeichen an der Ecke ihrer Schaltfläche. Lässt du los, sind sie wieder weg.

Ein abgeblendetes Abzeichen ist eine Taste, die es gibt, die aber in diesem Moment nicht auslöst — siehe Wenn eine Taste nichts tut.

Die Tastenkürzel stehen hier mit ⌘. Unter Windows gilt überall Strg; die Tasten selbst sind dieselben.

Zwischen den Ansichten wechseln

⌘1 … ⌘6 die sechs Tabs, in der Reihenfolge der Seitenleiste
⌘, Einstellungen
⌘P die Befehlspalette
⌘R die Liste aktualisieren, auf der du gerade bist

Zurück navigieren

Jede Ansicht mit einem Back-Element lässt sich auch verlassen, ohne es zu treffen:

  • Escape, oder ⌘[ / ⌘← (Alt+← unter Windows).
  • Die Zurück-Taste der Maus, falls sie eine hat.
  • Eine Zwei-Finger-Wischgeste nach rechts auf dem Trackpad.

Alle tun genau das, was auch das Back-Element tut: einen Schritt aus der Stelle heraus, an der du gerade bist. Ein offenes Übergangsformular wird geschlossen, bevor der Vorgang darunter verlassen wird, und eine Spur verknüpfter Vorgänge wird Schritt für Schritt zurückgegangen.

Vorwärts geht den umgekehrten Weg — die Vorwärts-Taste der Maus, ⌘] / ⌘→ (Alt+→) oder eine Wischgeste nach links. Sie führt wieder in das hinein, was du gerade verlassen hast, und nur in das: navigierst du woandershin, ist der Weg vorwärts aufgegeben.

Wenn die Zurück-Taste der Maus scheinbar nichts tut, schau in die Treiber-Software. Logitech Options+ und Vergleichbare übernehmen die Daumentasten und senden statt eines Tastendrucks eine Wischgeste; performa versteht beides — solange die Taste noch auf Zurück steht.

Durch eine Liste gehen

In den Ansichten Todo, Start, Mentions, Missing Worklogs und Timesheet-Woche:

↑ ↓ durch die Zeilen gehen
Enter die Zeile öffnen, auf der du stehst

Die Zeile, auf der du stehst, ist hinterlegt und trägt links einen farbigen Balken. Sie folgt dem Vorgang, nicht der Position: sortierst du eine Spalte neu, bleibst du auf demselben Vorgang, auch wenn er woanders steht. Das sind die einzigen Kürzel ohne Modifikatortaste — weil Listen überall so funktionieren.

Der Start-Tab hat zwei Listen — die fälligen Vorgänge und die Erinnerungen darunter — und ↓ wechselt vom Ende der einen an den Anfang der nächsten.

Im Suchfeld von Log work bewegen die Pfeile die Ergebnisse, während du weitertippst; so findest und wählst du einen Vorgang ohne die Maus.

Die ausgewählte Zeile wird einem Screenreader vorgelesen, sobald sie sich bewegt.

Die Pfeile sind eine Abkürzung, nicht der einzige Weg. Jede Aktion, die eine ausgewählte Zeile anbietet — anpinnen, in Jira öffnen, Timer starten, bearbeiten, erneut erfassen — ist auch eine Schaltfläche in dieser Zeile, mit Tab erreichbar und mit Enter oder Leertaste auszulösen. Die Zeilenkürzel hängen genau an diesen Schaltflächen: das Abzeichen, das du beim Halten von ⌘ siehst, sitzt auf der Schaltfläche, die die Taste drückt.

Auf das wirken, was vor dir liegt

Dasselbe Verb behält überall dieselbe Taste; worauf es wirkt, ist die Zeile, auf der du stehst, oder das, was gerade offen vor dir liegt.

⌘J im Browser in Jira öffnen
⌘T den Timer dafür starten — oder den laufenden stoppen
⌘⇧T den laufenden Timer pausieren oder einen pausierten fortsetzen
⌘B oben an die Log-work-Liste anpinnen oder wieder lösen
⌘L Arbeit darauf erfassen
⌘E bearbeiten — einen Worklog-Eintrag, oder das Feldlayout der Vorgangsansicht
⌘D heute noch einmal erfassen
⌘K kommentieren (⌘⇧K für eine Kundenantwort im Service Desk)
⌘U Dateien anhängen
⌘I einen Vorgang verknüpfen
⌘S das Formular vor dir abschicken
⌘Y das Timesheet zwischen Woche und Monat umschalten
⌘⇧← ⌘⇧→ die vorige oder nächste Woche bzw. den vorigen oder nächsten Monat

⌘S meint immer das Formular, das du vor dir hast. Ist ein Dialog offen, schickt es diesen ab; schließt er, bekommt das Formular dahinter die Taste zurück.

Die Befehlspalette

⌘P öffnet eine Liste von allem, was die App gerade kann, durchsuchbar nach Namen. Ein paar Buchstaben tippen, Enter drücken, und es läuft.

Jeder Eintrag zeigt sein eigenes Kürzel daneben — die Palette ist also auch der Weg, sie zu lernen; was du oft brauchst, findest du bald ohne sie. Einträge ohne Kürzel sind nur hier erreichbar, und das ist der Sinn: die fünf Sort by …-Spalten des Todo-Tabs sind keine fünf eigenen Tasten wert, und Erscheinungsbild, Textgröße und Handbuch liegen hier statt im Fenster.

Escape schließt sie, ohne die Ansicht dahinter zu verlassen.

Einen Vorgang über seinen Schlüssel öffnen

Tippe einen Vorgangsschlüssel — ABC-1234 — und die Palette bietet an, ihn zu öffnen, ganz oben in der Liste. Er ist das, was die Eingabe ist, und nicht etwas, dem sie ähnelt — deshalb führt er. Groß- und Kleinschreibung spielt keine Rolle: abc-1234 findet denselben Vorgang.

Der Vorgang öffnet sich in der App, über dem Tab, auf dem du warst; zurück führt dich wieder dorthin.

Suchen

Search by text wird immer angeboten: auswählen, Wörter eintippen, Enter — und alle Vorgänge, die diese Wörter in irgendeinem von Jira durchsuchten Feld tragen, kommen als gewöhnliche Liste zurück. Es sind dieselben Zeilen wie im Todo-Tab, also laufen die Pfeiltasten durch sie und Enter öffnet eine.

Eigene Suchen stehen daneben als Search by …, unter dem Namen, den du ihnen gegeben hast. Wie du eine anlegst, steht unter Einstellungen → Searches.

Beide fragen den Suchbegriff in einem zweiten Schritt ab. Beim Auswählen leert sich das Feld, damit das, was du zum Finden der Suche getippt hast, nicht mit dem verwechselt wird, wonach du suchen willst; der Hinweis darunter sagt, worauf sie wartet. Escape führt dort zurück zur Befehlsliste statt aus der Palette heraus — hast du die falsche von zwei Suchen erwischt, ist die andere einen Tastendruck entfernt.

Views

Eine eigene Abfrage ohne Suchbegriff ist keine Suche, sondern ein View: sie beschreibt die gemeinten Vorgänge bereits, so wie ein Filter auf der Jira-Seite. Solche Abfragen erscheinen in der Palette als View: … und brauchen keinen zweiten Schritt — beim Auswählen sind die Ergebnisse sofort da.

Alles danach ist derselbe Bildschirm, auf dem auch eine Suche landet: dieselben Zeilen, dieselben Tasten, derselbe Weg zurück. Welches von beiden eine Abfrage wird, entscheidet die Abfrage selbst — steht %SEARCHTERM% darin, fragt sie einen Begriff ab; fehlt es, läuft sie so, wie sie geschrieben ist. Aus dem einen das andere zu machen, heißt also, die JQL zu ändern. Siehe Einstellungen → Searches.

Einen View, den du jeden Tag öffnest, kannst du auch in die Seitenleiste legen. Markiere ihn in Einstellungen → Searches mit dem Stern, dann erscheint er unter den Tabs in einer Gruppe Views. Ein Klick zeigt seine Ergebnisse, und seine Zeile bleibt hervorgehoben, solange sie zu sehen sind. Nur Views lassen sich markieren. Eine Suche braucht einen Begriff, und in der Seitenleiste gibt es keinen Platz, ihn einzutippen.

Die Ergebnisse nennen ihre Anzahl. Hatte Jira mehr, als die App angefragt hat, steht dort first 100 mit dem Hinweis, den Begriff einzugrenzen: eine volle Seite ist kein Beweis, dass nichts dahinter kommt, und diese Suchen schließen abgeschlossene Vorgänge bewusst ein — eine lange Historie erreicht die Grenze also ganz regulär.

Wenn eine Taste nichts tut

  • Du hast etwas eingegeben. Eine Taste, die ungespeicherte Wörter wegwerfen würde — Tab-Wechsel, Aktualisieren, Zurückgehen — hält sich zurück, solange in dem Feld, in dem du bist, etwas steht; ihr Abzeichen blendet ab und sagt das. Ein leeres Feld steht nicht im Weg: ein gerade geöffnetes Formular setzt den Cursor in sein erstes Feld, und verlassen kannst du es trotzdem.
  • Die Taste gehört dem Feld. ⌘← heißt im Textfeld „Zeilenanfang“, und Escape schließt erst eine offene Erwähnungsliste.
  • Ein Dialog ist offen. Dann wirken nur seine eigenen Tasten; die Ansicht dahinter ist bis zum Schließen nicht erreichbar.
  • Das Element ist nicht auf dem Bildschirm. Eine Taste existiert nur, solange ihre Schaltfläche existiert: ⌘T stoppt einen Timer nur, wenn einer läuft, und ⌘I bietet eine Verknüpfung nur an, solange das Formular zu ist.

Manche Kombinationen erreichen performa gar nicht, weil macOS sie zuerst für sich nimmt: ⌘Q ⌘W ⌘H ⌘M ⌘Z ⌘X ⌘C ⌘V ⌘A. Das ist Absicht — nur so funktionieren Kopieren und Einfügen in jedem Feld der App.

Start-Tab (Dashboard)

Der Start-Tab ist die Startseite und zeigt vier Bereiche. Bereiche ohne Inhalt werden ausgeblendet.

Due dates (Fälligkeiten)

Vorgänge, die dir zugewiesen sind und deren Fälligkeitsdatum zwischen vor 7 Tagen und in 14 Tagen liegt, das nächstliegende zuerst. Vorgänge in einer Done-Statuskategorie sind ausgenommen — ein überfälliger Vorgang erscheint hier also nur, solange er noch offen ist.

Jeder Vorgang trägt ein Fälligkeits-Badge:

  • overdue (rote Umrandung) — das Fälligkeitsdatum ist überschritten
  • today (hervorgehoben) — heute fällig
  • due … (neutral) — bevorstehend, mit Wochentag und Datum

Die Zeilen sind voll ausgestattete Vorgangszeilen:

  • ☆ / ★ pinnt den Vorgang an den Anfang der Log-work-Liste (Arbeit erfassen)
  • Das Vorgangstyp-Symbol — Jiras eigenes Icon für Bug, Task, Story und den Rest — steht vor dem Schlüssel; beim Überfahren nennt der Tooltip den Typ. Abschaltbar unter Einstellungen → Appearance
  • Ein Klick auf den Vorgangsschlüssel öffnet den Vorgang im Browser
  • Ein Klick auf die Zusammenfassung springt zum Log-work-Tab mit bereits geöffnetem Erfassungsformular für diesen Vorgang
  • ▶ start startet einen Timer für den Vorgang

This week (Diese Woche)

Dieselben Diagramme wie die aktuelle Woche im Timesheet: Tagesbalken gegen dein Tagesziel und ein Fortschrittsring gegen das Wochenziel, dazu die bisher erfasste Gesamtzeit. Der Bereich aktualisiert sich automatisch, sobald du Arbeit erfasst.

Templates (Vorlagen)

Deine gespeicherten Worklog-Vorlagen als Ein-Klick-Chips — siehe Vorlagen. Ausgeblendet, solange du keine hast.

Missing worklogs

Eine Vorschau der aktuellen Funde des Worklog-Wächters. Ein Klick auf einen Eintrag (oder Open tab) springt zum Missing-worklog-Tab. Ausgeblendet, wenn nichts fehlt.

Todo-Tab

Alles, was gerade bei dir liegt — nach Priorität sortiert, bei gleicher Priorität die zuletzt geänderten zuerst. Zwei Regeln werden kombiniert:

  • DEV-Vorgänge, die du selbst erstellt hast und die wieder bei dir liegen — also jeder Status außer Fertig, Backlog, Rückfrage beantwortet, In Arbeit und Nicht umgesetzt.
  • Vorgänge, die dir zugewiesen sind (in jedem Projekt) und noch keinen Status erreicht haben, in dem jemand anderes am Zug ist — geschlossen, abgebrochen, gelöst, eskaliert, in der kaufmännischen Prüfung oder wartend auf Kunde bzw. DESIGNA Development.

Die Zeilen funktionieren wie im Start-Tab (Anpinnen, im Browser öffnen, ▶ start startet einen Timer), sind hier aber tabellarisch angeordnet — das Typ-Symbol (Spalte T), Vorgangsschlüssel, Zusammenfassung, Priorität und Status jeweils in einer eigenen Spalte, sodass man die Liste von oben nach unten überfliegen kann. Fälligkeiten zeigt dieser Tab bewusst nicht; die sind Thema des Start-Tabs.

Sortieren. Ein Klick auf eine Spaltenüberschrift ordnet die Liste danach. Jede Überschrift durchläuft drei Zustände:

  1. ▲ aufsteigend
  2. ▼ absteigend
  3. kein Pfeil — zurück zur Reihenfolge aus Jira, also der oben beschriebenen

Zwei Spalten sortieren nach dem, was du siehst, statt alphabetisch: Prio geht nach Dringlichkeit (aufsteigend heißt: dringendste zuerst), und Status gruppiert nach der Beschriftung auf dem Badge — alles, was als Warten angezeigt wird, steht also beieinander, egal wie der Status im Workflow dahinter heißt. Vorgänge ohne Wert in der sortierten Spalte bleiben in beiden Richtungen unten, und bei Gleichstand bleibt die Dringlichkeits-Reihenfolge erhalten. Sortiert wird die Liste, die bereits auf dem Bildschirm steht — Refresh behält die Sortierung —, und beim Verlassen des Tabs wird sie zurückgesetzt.

Ein Klick auf die Zusammenfassung öffnet den Vorgang in der App — siehe Die Vorgangsansicht. Ein Klick auf den Vorgangsschlüssel öffnet ihn stattdessen im Browser.

Das Ergebnis wird eine Minute lang zwischengespeichert; Refresh holt es erneut aus Jira — praktisch direkt nachdem du einen Status im Browser geändert hast.

Welche Status nie auf deiner Liste auftauchen sollen — eine Review-Warteschlange, „wartet auf Kunde" — legst du pro Projekt unter Settings → Todo fest. Was Jira selbst als erledigt zählt, fällt ohnehin aus der Abfrage, egal wie dein Workflow es nennt.

Die Vorgangsansicht

Wird ein Vorgang aus dem Todo- oder Mentions-Tab geöffnet, zeigt performa ihn in der App statt im Browser.

Lesen. Vorgangsschlüssel und Zusammenfassung stehen oben, die Statusauswahl in der Ecke. Darunter ein Raster mit Feldern, die Beschreibung (gekürzt, mit Show more, wenn es mehr gibt), die Anhänge, die verknüpften Vorgänge und eine Chronik von allem, was passiert ist — Kommentare, Statuswechsel und Worklogs ineinander, neueste zuerst. Bei langen Verläufen werden nur die neuesten Kommentare gezeigt; die Ansicht sagt das dazu.

Einen Wert ändern. Ein Doppelklick auf einen Wert mit gepunkteter Unterstreichung öffnet einen kleinen Editor darüber. Was änderbar ist, entscheidet Jira pro Vorgang — ein Feld, das deine Rechte oder der Vorgangstyp nicht zulassen, wird gar nicht erst angeboten.

Einen Wert entfernen. Die Schaltfläche Clear im Editor löscht den Wert ganz. Sie ist der einzige Weg, ein Feld zu leeren, das kein Textfeld zum Löschen hat — Bearbeiter, Fälligkeitsdatum, Auswahlliste — und funktioniert genauso bei den Textfeldern. Das Feld im Editor leer zu lassen und Save zu drücken leert den Wert nicht: ein leeres Feld heißt „unverändert", die Änderung wird stattdessen abgelehnt. Clear erscheint nur, wenn es einen Wert zu entfernen gibt und Jira das Feld nicht verlangt.

Durch den Workflow bewegen. Die Statusauswahl listet die Status, die vom aktuellen aus erreichbar sind. Manche Übergänge fragen vorher etwas ab (eine Lösung, einen Bearbeiter); dafür öffnet sich ein Formular. Ein Übergang, für den performa kein Eingabefeld hat, wird angezeigt, aber deaktiviert — mit einem Link nach Jira.

Kommentare. Eine Reihe Schaltflächen: Internal note und Reply to customer bei einem Service-Desk-Vorgang, sonst ein einzelnes Comment, dazu Log work. Ein Klick öffnet die zugehörigen Felder darunter, ein zweiter schließt sie wieder. Mit @ im Kommentar erwähnst du jemanden — nimm den Namen aus der Liste, denn nur ein ausgewählter Name benachrichtigt auch jemanden.

Anhänge. Ein Klick lädt eine Datei herunter und öffnet sie, Dateien auf das Fenster ziehen oder Attach files… fügt welche hinzu, ✕ entfernt eine (mit Rückfrage — sie ist danach für alle weg).

Verknüpfte Vorgänge. Unter den Anhängen stehen die Vorgänge, mit denen dieser verknüpft ist, nach Beziehung gruppiert — blocks, is blocked by, relates to, je nachdem, was die Jira-Site kennt. Jede Zeile zeigt Schlüssel, Zusammenfassung und aktuellen Status; der Schlüssel öffnet den Vorgang im Browser. Link work item… legt eine Verknüpfung an: erst die Beziehung wählen, dann den anderen Vorgang über seinen Schlüssel oder Wörter aus der Zusammenfassung suchen. ✕ entfernt eine Verknüpfung — nur die Verknüpfung, beide Vorgänge bleiben.

Sie verlassen. Der Back-Link in der Ecke führt zurück zur Liste — genauso wie Escape, die Zurück-Taste der Maus und eine Zwei-Finger-Wischgeste nach rechts (Zurück navigieren). Bist du einem verknüpften Vorgang gefolgt, geht es zunächst zu dem Vorgang zurück, aus dem du kamst, und nicht hinaus zur Liste — einen Vorgang pro Schritt.

Felder anordnen. Arrange fields über dem Raster übergibt dir das Layout: ein Feld am ⠿-Griff ziehen, mit der Größen-Schaltfläche umstellen (eine Zelle, zwei Zellen oder eine ganze Zeile für Fließtext), mit ✕ entfernen und jedes andere Feld deines Jira hinzufügen. Done kehrt zum Lesen zurück. Das Layout gilt für alle Vorgänge.

Arbeit erfassen

Der Tab Log work ist ein zweistufiger Ablauf: Vorgang finden, dann das Worklog ausfüllen.

Einen Vorgang finden

Das Suchfeld interpretiert deine Eingabe auf drei Arten:

Eingabe Verhalten
(leer) Deine offenen Vorgänge (dir zugewiesen, nicht Done), zuletzt aktualisierte zuerst
Ein Vorgangsschlüssel wie ABC-123 Exakte Suche nach genau diesem Vorgang
Beliebiger anderer Text Volltextsuche über Zusammenfassungen und Inhalte

Die Ergebnisse aktualisieren sich beim Tippen (mit kurzer Verzögerung). Die Anfrage wird im nativen Kern der App in JQL übersetzt — du musst nie selbst JQL schreiben.

Die Ergebnisse sind dieselben Vorgangszeilen wie im Start-Tab, samt Typ-Symbol.

Gepinnte Vorgänge (★) stehen immer oben in der Standardliste, abgetrennt durch eine kräftigere Linie. Pinne oder entpinne jeden Vorgang über den Stern in seiner Zeile; Pins werden lokal auf deinem Rechner gespeichert — inklusive Vorgangstyp, damit eine gepinnte Zeile ihr Symbol behält. Ein Pin aus einer älteren Version zeigt kein Symbol, bis du ihn einmal ent- und wieder anpinnst. Während einer aktiven Textsuche werden stattdessen die reinen Suchergebnisse angezeigt.

Jede Ergebniszeile bietet dieselben Aktionen wie auf dem Dashboard: im Browser öffnen (Schlüssel), auswählen (Zusammenfassung), pinnen (Stern) und Timer starten (▶).

Das Worklog-Formular

Nach Auswahl eines Vorgangs füllst du aus:

  • Time spent — Dauer in Jira-Syntax:

    Eingabe Bedeutung
    1h 30m 1 Stunde 30 Minuten
    45m 45 Minuten
    2h 2 Stunden
    1d 1 Arbeitstag = 8 Stunden
    1w 1 Arbeitswoche = 5 Tage
    1.5h oder 0,25h Dezimalzahlen mit Punkt oder Komma
    2 Eine nackte Zahl zählt als Stunden

    Ein Live-Hinweis unter dem Feld zeigt, wie die Eingabe verstanden wurde (z. B. = 1h 30m).

  • Date — vorbelegt mit heute; Daten in der Zukunft sind nicht erlaubt.

  • Start time — vorbelegt mit der aktuellen Uhrzeit.

  • Comment (optional) — wird als Jira-Worklog-Kommentar gespeichert.

  • Non-billable — markiert den Eintrag als nicht abrechenbar (gespeichert als führendes ~ im Jira-Kommentar; siehe Was ist performa?). Die Checkbox wird bei jedem neu ausgewählten Vorgang zurückgesetzt, damit die Abrechenbarkeit nie vom vorherigen Eintrag „durchsickert“.

Mit Log work speicherst du. Eine Erfolgsmeldung bestätigt den Eintrag, und das Formular leert sich für den nächsten.

My logged time (Meine erfasste Zeit)

Unter dem Formular zeigt die Historie deine bisherigen Worklogs auf diesem Vorgang (die 10 neuesten plus deine Gesamtsumme). Sie aktualisiert sich sofort nach dem Erfassen.

Dieselbe Liste erscheint unter jedem Formular, das Zeit erfasst — du siehst also immer, was schon gebucht ist, bevor du etwas hinzufügst: der Log-work-Tab, das Stop-Fenster des Timers, das Formular der fehlenden Worklogs und das „Log again"-Fenster im Timesheet. In den Fenstern ist die Liste in der Höhe begrenzt und scrollt. Bei einem fehlenden Worklog zeigt sie den Vorgang, auf den die Zeit gebucht wird — bei einer DEV-Eskalation also den Quellvorgang, nicht den gemeldeten.

Der Timer

Starte einen Timer mit dem ▶ start-Button in jeder Vorgangszeile (Start-Tab oder Log-work-Tab). Es läuft immer nur ein Timer, aber ihn umzuziehen ist ein Klick: Solange ein Timer läuft (oder pausiert ist), heißt der Button in jeder anderen Zeile ▶ switch. Das startet den neuen Timer sofort und öffnet das Erfassungsfenster für den alten — genauso vorbelegt, als hättest du Stop gedrückt —, das Ausfüllen kostet den neuen Timer also nichts. Wechselst du erneut, bevor du fertig bist, wartet das nächste Fenster einfach, bis es dran ist; erfasste Zeit geht dabei nicht verloren — auch nicht durch Beenden, denn wartende Fenster sind nach einem Neustart wieder da. ⌘T auf einer ausgewählten Zeile startet nur dann einen Timer, wenn es keinen gibt; läuft einer, bedeutet es Stop — Wechseln ist also Sache des Buttons.

Beim Start eines Timers versucht performa außerdem, den Vorgang in Jira in den Status „In Arbeit" zu versetzen — über den Übergang, der im Workflow dieses Vorgangs gerade dorthin führt (Groß-/Kleinschreibung spielt keine Rolle, „IN ARBEIT" zählt also auch). Das geschieht nur bestmöglich: Ist der Vorgang bereits in diesem Status, oder bietet sein Workflow keinen direkten Übergang dorthin, passiert einfach nichts — der Timer startet in beiden Fällen normal.

Während er läuft:

  • Die Timer-Leiste über den Tabs zeigt den Vorgang und eine laufende Uhr.
  • Das System-Tray spiegelt den Timer.

Pause (in der Timer-Leiste, im Tray oder mit ⌘⇧T) hält die Uhr an, ohne den Timer zu beenden — für die Mittagspause oder einen Anruf zu etwas anderem. Der Punkt in der Leiste hört auf zu pulsieren, die Uhr wird grau und steht still, und der Button heißt jetzt Resume. Fortsetzen macht beim selben Stand weiter: pausierte Zeit zählt nie mit. Auch ein pausierter Timer ist der eine Timer und noch zu buchende Zeit — er überlebt also einen Neustart, und der Schutz beim Beenden fragt genauso nach wie bei einem laufenden.

Mit Stop (in der Timer-Leiste oder im Tray) beendest du ihn. Das Erfassungsfenster öffnet sich mit:

  • Time spent, vorbelegt mit der verstrichenen Zeit, aufgerundet auf die nächsten 15 Minuten (mindestens 15 Minuten) — vor dem Speichern frei änderbar. Pausen zählen nicht mit, und aufgerundet wird einmal auf die Summe, damit ein Tag mit vielen kurzen Pausen keine zusätzlichen Viertelstunden ergibt.
  • Datum und Startzeit, vorbelegt mit dem ersten Start des Timers — nicht mit dem letzten Fortsetzen.

Du kannst das Worklog vervollständigen (Kommentar, Abrechenbarkeit) und speichern, die erfasste Zeit mit Discard verwerfen — das Verwerfen fragt nach Bestätigung, weil die Zeit sonst verloren wäre — oder mit Later als Draft parken und buchen, wenn du dazu kommst.

Inaktivität am Rechner

Ein Timer zählt die Uhr, nicht die Arbeit — einer, der über die Mittagspause weiterläuft, bucht die Mittagspause. Solange ein Timer läuft, achtet performa darauf, wie lange der Rechner keine Eingabe bekommen hat — Tastatur, Maus, Trackpad —, und ein zugeklappter Deckel oder Ruhezustand zählt genauso. Ist länger als in der Einstellung angegeben nichts passiert (10 Minuten, sofern du es nicht änderst), wartet es, bis du zurück bist, holt dann sein Fenster nach vorn und fragt You were away: wie lange, von wann bis wann, auf welchem Vorgang. Solange du weg bist, wird nichts gefragt — und gar nichts, solange der Timer pausiert ist.

  • Keep — die Zeit war Arbeit (ein Meeting am Whiteboard); nichts ändert sich. Das ist die Vorgabe: Enter beantwortet es.
  • Discard — die Zeit dazwischen aus dem Timer nehmen; er läuft ab jetzt weiter.
  • Draft — herausnehmen und auf demselben Vorgang parken, um später zu entscheiden.
  • Discard & stop — du warst fertig für heute: Der Timer endet dort, wo du gegangen bist, und das Erfassungsfenster öffnet sich nur mit der Zeit davor.

Der Timer basiert auf der Uhrzeit (Wanduhr) und überlebt App-Neustarts: Beendest du die App mit laufendem Timer (siehe Schutz beim Beenden) und öffnest sie später wieder, läuft der Timer mit der korrekten Gesamtzeit weiter.

System-Tray / Menüleiste

performa legt ein Symbol in die macOS-Menüleiste bzw. das Windows-System-Tray:

  • macOS: Während ein Timer läuft, erscheint eine Live-Anzeige neben dem Symbol — ▶ ABC-123 12:34 (Stunden:Minuten:Sekunden ab einer Stunde). Ist er pausiert, steht die Anzeige still, mit Pausenzeichen davor: ⏸ ABC-123 12:34.
  • Windows: Tray-Symbole können keinen Text anzeigen; dieselbe Anzeige erscheint deshalb als Tooltip beim Überfahren des Symbols. Alles andere funktioniert identisch.

Das Tray-Menü bietet:

  • Pause timer / Resume timer (nur aktiv, solange es einen Timer gibt) — pausiert ihn oder setzt ihn fort, ohne das Fenster nach vorn zu holen
  • Stop timer… (nur aktiv, solange es einen Timer gibt — laufend oder pausiert) — holt das Fenster in den Vordergrund und öffnet das reguläre Erfassungsfenster
  • Open performa — zeigt und fokussiert das Fenster
  • Quit performa — beendet die App; das läuft über den normalen Schließen-Pfad, der Schutz beim Beenden greift also weiterhin

Timesheet

Der Tab Timesheet hat zwei Ansichten, umschaltbar über Week / Month ganz oben. Die Wahl bleibt erhalten, bis du sie änderst.

Woche

Zeigt jeweils eine Woche.

  • Navigiere mit ← / →; die aktuelle Woche ist die rechteste erreichbare (keine zukünftigen Wochen). Die Beschriftung zeigt „This week“, „Last week“ oder den Datumsbereich.
  • Diagramme: Tagesbalken, jeder gemessen am eigenen Tagesziel (eine kurze gestrichelte Linie markiert es), und ein Ring mit dem Wochenfortschritt gegen das Wochenziel — die Summe der Tagesziele der Woche. Ein kurzer Freitag, ein Feiertag oder ein freier Tag zählen jeweils in ihrer eigenen Größe: Ein Feiertag hat gar keine Ziellinie, ein halber freier Tag eine halbe, und das Ziel des Rings schrumpft entsprechend. Fährst du über einen Balken, siehst du Zeit, Ziel und Grund. Samstag/Sonntag sind standardmäßig ausgeblendet, erscheinen aber automatisch, sobald dort Zeit erfasst ist oder sie ein eigenes Ziel haben — oder dauerhaft, wenn du die Einstellung auf die volle Woche stellst.
  • Darunter sind die Worklogs nach Tagen gruppiert (neuester Tag zuerst) mit Tagessummen. Jede Zeile zeigt Vorgangsschlüssel (Klick → Browser), Zusammenfassung, Kommentar, Startzeit, Dauer und ggf. ein non-billable-Kennzeichen.

Aktionen pro Zeile:

  • ↻ Log again today — öffnet ein vorbefülltes Formular (gleicher Vorgang, Dauer, Kommentar, Abrechenbarkeit) mit heutigem Datum und aktueller Uhrzeit: ideal für wiederkehrende Einträge. Das Fenster bietet zusätzlich Save as template (Vorlagen).
  • ✎ Edit — jedes Feld des bestehenden Worklogs ändern (Dauer, Datum, Uhrzeit, Kommentar, Abrechenbarkeit).
  • 🗑 Delete — löscht das Worklog nach einer zweiten Inline-Bestätigung (✓ / ✕).

Monat

Eine Matrix: Vorgänge untereinander, Tage nebeneinander, Stunden in den Zellen. Gedacht zum Auffüllen von Lücken, nicht zum Nachlesen.

  • Spalten sind alle Werktage des Monats, dazu jeder Samstag oder Sonntag, an dem du tatsächlich Zeit erfasst hast — ein gearbeiteter Wochenendtag wird nie versteckt.
  • Die Kopfzeile trägt die Tagessumme, die rechte Spalte die Monatssumme je Vorgang, die linke obere Ecke den ganzen Monat.
  • Stunden stehen als Dezimalzahl (1.5, 0.25), weil eine Spalte für 1h 30m zu schmal ist; die volle Dauer steht im Tooltip der Zelle.
  • Die Tagessumme ist nach Auslastung eingefärbt, gemessen am eigenen Tagesziel: rot unter drei Achteln davon, gelb bis drei Viertel, grün darüber — bei einem 8-Stunden-Tag also unter 3 Stunden, 3 bis 6 und über 6. Bewertet werden nur Tage, an denen Arbeit erwartet wird — Wochenendspalten und noch nicht vergangene Tage bleiben ungefärbt —, und ein Feiertag oder ganzer freier Tag erscheint grau, als frei statt als Rückstand. Der Tooltip des Tageskopfs nennt den Feiertag oder die Art des freien Tags.

Ein Klick auf eine Zelle öffnet alles, was an diesem Tag auf diesen Vorgang gebucht ist: jedes Worklog mit den gewohnten Schaltflächen ↻ / ✎ / 🗑, dazu + Add time, um weitere Zeit auf denselben Vorgang und Tag zu buchen. Eine leere Zelle öffnet dasselbe Fenster, bereit für den ersten Eintrag. Zukünftige Tage sind ausgegraut — dieselbe Regel wie im Erfassungsformular.

Die +-Zeile unter der Kopfzeile erfasst Zeit auf einem Vorgang, der noch keine Zeile hat: Tag anklicken, Vorgang wählen, Formular ausfüllen. Der Tag ist bereits gesetzt.

Breite: Der Monat ist die einzige Ansicht, die das ganze Fenster nutzt. Alle anderen Ansichten hören bei einer angenehmen Lesebreite auf, hier bedeutet mehr Breite aber mehr Tage auf dem Schirm und mehr von jeder Zusammenfassung vor den Auslassungspunkten — ein breites oder maximiertes Fenster wird also ausgenutzt: Die Tagesspalten behalten ihre Größe, die Vorgangsspalte nimmt den Rest. Die Vorgangsspalte hat außerdem eine eigene Spalte für den Schlüssel, damit alle Zusammenfassungen an derselben Stelle beginnen.

Einen Tag rekonstruieren

Manche Tage enden mit weniger gebuchter als gearbeiteter Zeit, und eine Woche später weiß niemand mehr, womit sie gefüllt waren. Rebuild a day stellt das, was du an dem Tag in Jira getan hast, neben das, was du gebucht hast — so werden die Lücken sichtbar.

Du öffnest es über die Zeile Rebuild a day unter der Wochensumme — ein Button pro bisherigem Tag der Woche, leere Tage eingeschlossen — oder per Klick auf einen Tageskopf in der Ansicht Monat. Rekonstruieren lassen sich Tage aus dem aktuellen und dem vorigen Monat.

Der Tag liest sich in zeitlicher Reihenfolge:

  • deine Kommentare, deine Statusänderungen, Vorgänge, die du angelegt hast, und Vorgänge, die dir zugewiesen wurden — aus Jira gelesen, wenn du den Tag öffnest (einmal pro Tag und Sitzung; im Hintergrund läuft nichts)
  • was schon gebucht ist, ausgegraut
  • der laufende Timer und geparkte Zeit dieses Tages

Alles, was du auf einem Vorgang getan hast, auf dem an dem Tag keine Zeit gebucht ist, ist markiert und bietet Log… an: das normale Erfassungsformular, vorbelegt mit diesem Vorgang, diesem Tag und diesem Zeitpunkt. Gebucht wird nichts für dich — die Ansicht füllt keine Lücke von selbst, denn sie weiß, was du getan hast, nicht wie lange es gedauert hat.

Kommentare lassen sich in Jira nicht nach Verfasser durchsuchen; die Ansicht findet sie daher auf Vorgängen, die du zuletzt angesehen hast, beobachtest, dir zugewiesen sind oder die du gemeldet hast. An einem sehr vollen Tag oder einem, der ein paar Wochen zurückliegt, kann Jira mehr enthalten, als die Ansicht liest; dann sagt sie, dass einiges fehlen kann, statt den Tag für vollständig zu erklären.

Missing Worklogs

Der Tab Missing worklog ist ein Sicherheitsnetz gegen vergessene Zeiteinträge.

Was er meldet: Vorgänge, auf denen du in den letzten 24 Stunden kommentiert oder den Status geändert hast, ohne dass in etwa ±3 Stunden um diese Aktivität ein Worklog existiert. Aktivität der letzten 10 Minuten wird noch nicht gemeldet (Karenzzeit — vielleicht hast du sie einfach noch nicht erfasst). Die Prüfung läuft automatisch alle 15 Minuten, solange du angemeldet bist; Check now stößt sie manuell an, und der Tab zeigt den Zeitpunkt der letzten Prüfung.

Jeder Fund zeigt:

  • den Vorgang und was du getan hast — ein zitierter Kommentarauszug oder die Statusänderung (Alt → Neu), mit Zeitangabe
  • eine Zähler-Markierung am Tab; der Tab blinkt, bis du ihn ansiehst (das Ansehen bestätigt die aktuellen Funde)
  • eine Desktop-Benachrichtigung, einmal pro Fund (siehe FAQ, falls du keine Benachrichtigungen siehst)

Ein Klick auf einen Fund öffnet ein Inline-Erfassungsformular, vorbelegt mit Datum und Uhrzeit der gemeldeten Aktivität — das entstehende Worklog deckt sie ab, und die Erinnerung verschwindet bei der nächsten Prüfung.

Eskalationsvorgänge: Bei Vorgängen im Projekt DEV wird die Zeit stattdessen auf dem verknüpften Ursprungsvorgang erfasst (dem Vorgang mit der Verknüpfung „is an escalation for“) — allerdings nur, wenn dieser Ursprungsvorgang dir selbst zugewiesen ist. Auf dem Ticket einer Kollegin oder eines Kollegen landet deine Zeit nie: Gehört der Ursprungsvorgang jemand anderem oder niemandem, bleibt die Zeit auf dem DEV-Vorgang, an dem du tatsächlich gearbeitet hast. Das Formular zeigt beide Vorgänge, damit immer klar ist, wohin die Zeit geht. Steht der Ursprungsvorgang selbst schon auf der Liste, entfällt die DEV-Zeile — ein Worklog räumt ohnehin beide ab, und zwei Zeilen für dieselbe Arbeit sind nur Rauschen.

Geparkte Zeit (Drafts)

Manchmal kommt die Arbeit vor dem Ticket — jemand steht mit einem Problem in der Tür, und das Ticket kommt einen Tag später, wenn überhaupt. Geparkte Zeit hält diese Zeit fest, bis es einen Ort gibt, sie zu buchen: eine Dauer, wann es war, eine Notiz, worum es ging, und — sobald bekannt — der Vorgang, auf den sie gehört.

Ein Draft ist kein Missing Worklog. Die werden beim Scannen von Jira gefunden; einen Draft legst du an, deshalb verschwindet er nie von selbst. Er geht, wenn du ihn vollständig gebucht hast oder ihn verwirfst (mit Rückfrage).

Zeit parken:

  • Park time… in der Befehlspalette öffnet das Park-Formular: Dauer, Datum, Startzeit, eine Notiz und optional der Vorgang.
  • Findet eine Suche in der Vorgangsauswahl nichts, bietet die Liste No ticket yet — park it an, mit dem Suchbegriff als Notiz.
  • Start a timer without a ticket in der Palette startet einen Timer, der zu keinem Vorgang gehört — er fragt, woran du arbeitest, und das Tray zeigt ihn als ▶ No ticket 12:34. Beim Stoppen wird seine Zeit sofort geparkt, ohne Formular.
  • Das Erfassungsfenster, das sich bei Stop oder beim Wechseln öffnet, hat einen Button Later: Die Zeit wird geparkt statt erfasst.

Wo sie wartet: in einem eigenen Abschnitt Parked time oben im Tab Missing worklog, mit der noch zu buchenden Summe. Drafts zählen zur Markierung am Tab, und bei jeder Anmeldung — normalerweise bei jedem App-Start — meldet eine Desktop-Benachrichtigung, wie viel noch geparkt ist. Ein Draft, der eine Woche oder länger wartet, wird bernsteinfarben und sagt, wie lange schon.

Buchen: Book öffnet das normale Erfassungsformular, vorbelegt aus dem Draft — seine Notiz wird zum Worklog-Kommentar. Ein Draft ohne Vorgang fragt zuerst nach einem. Buchst du weniger als alles, bleibt der Rest geparkt und beginnt dort, wo der gebuchte Teil endete: So verteilst du eine Zeitspanne auf mehrere Vorgänge. Edit öffnet das Park-Formular für den Draft; Discard entfernt ihn nach einer Bestätigung.

Drafts liegen nur auf diesem Rechner, wie deine übrigen Einstellungen, und nichts davon erreicht Jira, bevor du sie buchst.

Erwähnungen

Der Tab Mentions ist dein Jira-Posteingang für Erwähnungen: alle Kommentare der letzten 14 Tage, in denen dich jemand mit @ markiert hat.

Wie sie gefunden werden: Eine Erwähnung wird über deine Account-ID im Kommentar selbst erkannt, nicht darüber, dass dein Name im Text vorkommt — jemand, der deinen Namen bloß tippt, ist also kein Treffer, eine Erwähnung in einem Vorgang, mit dem du sonst nichts zu tun hast, dagegen schon. Die Prüfung läuft alle 3 Minuten, solange du angemeldet bist; Check now stößt sie manuell an, und der Tab zeigt den Zeitpunkt der letzten Prüfung.

Was ihr entgehen kann: Jira bietet keine Suche nach „meinen Erwähnungen“, deshalb wählt performa zuerst eine begrenzte Menge kürzlich geänderter Vorgänge aus und liest dann deren Kommentare. Daraus folgt zweierlei: Pro Durchlauf wird nur eine begrenzte Zahl von Vorgängen geöffnet, und einer der beiden Auswahlwege sucht im Kommentartext nach deinem Anzeigenamen — ändert sich dieser, oder ist die Liste der zuletzt geänderten Vorgänge länger als der Durchlauf öffnen kann, kann eine Erwähnung unbemerkt bleiben. Wird ein Durchlauf auf diese Weise abgeschnitten, weist der Tab oberhalb der Liste darauf hin. Eine leere Liste bedeutet also „dort, wo gesucht wurde, war nichts“ und nicht „es gibt nichts“.

Jede Zeile zeigt den Vorgang, wer kommentiert hat, einen Auszug und wie lange es her ist. Ein Klick auf die Zeile öffnet den Vorgang in der App — siehe Die Vorgangsansicht. Ein Klick auf den Vorgangsschlüssel öffnet ihn stattdessen im Browser.

Gelesen / ungelesen: Neue Erwähnungen erzeugen eine Zähler-Markierung und lassen den Tab blinken. Beim Öffnen des Tabs gilt alles aktuell Gelistete als gelesen — für diesen einen Besuch bleiben die Zeilen markiert (Akzentbalken und Punkt), damit du noch siehst, was neu war. Eigene Kommentare tauchen nie auf, und eine gelesene Erwähnung bleibt auch nach einem Neustart gelesen.

Pro neuer Erwähnung wird einmal eine Desktop-Benachrichtigung ausgelöst.

Vorlagen

Vorlagen machen wiederkehrende Einträge (Daily Standup, Support-Dienst, …) zur Ein-Klick-Sache.

  • Erstellen: Drücke im Timesheet ↻ an einem Worklog und hake Save as template on the start tab an, bevor du erfasst. Die Vorlage speichert Vorgang, Dauer, Kommentar und Abrechenbarkeit.
  • Verwenden: Klicke auf dem Start-Tab auf einen Vorlagen-Chip. Das Erfassungsformular öffnet sich vorbefüllt — mit heutigem Datum und aktueller Uhrzeit —, und eine Bestätigung erfasst den Eintrag.
  • Entfernen: Das ✕ an jedem Chip löscht die Vorlage.

Vorlagen werden lokal auf deinem Rechner gespeichert, nicht in Jira.

Einstellungen

Der Settings-Link in der Kopfzeile öffnet denselben Bildschirm wie bei der ersten Verbindung:

  • General — die Verbindung zu Jira (siehe unten) sowie app-weite Schalter und Check for updates (siehe Updates).
  • Appearance — heller / dunkler Modus, die Akzentfarbe und Show issue type icons in lists (standardmäßig an; ausgeschaltet verschwindet das Symbol aus jeder Vorgangszeile und mit ihm die Spalte T im Todo-Tab).
  • Work hours per day — ein Feld pro Wochentag, Montag zuerst (0–24 h; 8 für Mo–Fr, sofern du es nicht änderst). Jeder Tag im Timesheet wird an seinem eigenen Wochentag gemessen — ein Teilzeit-Freitag ist ein kürzerer Freitag, kein niedrigerer Schnitt —, der Wochenring an der Summe der Woche.
  • Public holidays — dein Bundesland. Seine landesweiten gesetzlichen Feiertage sind dann freie Tage: kein Ziel, grau in der Monatsansicht. Feiertage, die nur manche Gemeinden haben (etwa Mariä Himmelfahrt in Teilen Bayerns), und Tage wie der 24. oder 31. Dezember, die viele Verträge als halbe Tage behandeln, sind nicht eingebaut — trag sie selbst als freie Tage ein.
  • Days off — Urlaub, Krankheit und Ähnliches, als ganzer oder halber Tag: Datum wählen (oder einen Zeitraum mit until, der Wochenenden und Feiertage überspringt), wie viel vom Tag und welche Art, dann Add. Ein freier Tag zieht seinen Anteil vom Tagesziel ab. Die Liste zeigt die letzten zwei Monate und alles, was kommt; ✕ entfernt einen Eintrag. Wie Suchen gehören freie Tage dir und sind keine Vorschau — Cancel macht sie also nicht rückgängig.
  • Timesheet days — Mon–Fri (Wochenenden ausgeblendet, außer sie enthalten erfasste Zeit) oder Full week.
  • Idle time — nach wie vielen Minuten ohne Eingabe ein laufender Timer nach der Zeit dazwischen fragt (Standard 10; 0 schaltet es ab). Siehe Inaktivität am Rechner.
  • Todo — welche Status der Todo-Tab ausblendet, pro Projekt. Die meisten Sites verwenden überall dieselben Status, deshalb gibt es ein Copy to, um die übrigen Projekte in einem Rutsch zu füllen.
  • Searches — eigene Suchen, von denen jede in der Befehlspalette (⌘P) als Search by … erscheint. Eine Zeile je Suche: ein Name und die JQL, die sie ausführt — genau so geschrieben wie ein Filter in Jira, mit %SEARCHTERM% an der Stelle, an der das in der Palette Eingetippte eingesetzt wird, zum Beispiel project in (CTS, DEV, SD) AND "Plant Number[Short text]" ~ %SEARCHTERM% ORDER BY created ASC. Steht %SEARCHTERM% für sich allein, wird es für dich in Anführungszeichen gesetzt; steht es innerhalb von Anführungszeichen, bleibt der Rest dieser Zeichenkette, wie du ihn geschrieben hast — "%SEARCHTERM%*" passt also auf alles, was mit dem Eingetippten beginnt (DE_1979 findet dann auch DE_1979_03). Das Eingetippte wird beim Einsetzen maskiert, ein Anführungszeichen oder eine Klammer im Suchbegriff wird also gesucht und nicht als JQL gelesen. Eine Abfrage ohne %SEARCHTERM% ist statt einer Suche ein View: sie findet unabhängig vom Eingetippten immer dieselben Vorgänge, und genau das ist der Zweck — sie wird in der Palette als View: … angeboten und läuft, sobald du sie auswählst. Ein View hat außerdem einen Stern neben seinem ✕: markiert, liegt er in der Seitenleiste unter den Tabs, ein weiterer Klick auf den Stern nimmt ihn wieder heraus. Das JQL-Feld sagt, welches von beiden eine Abfrage geworden ist, und speichert beim Verlassen oder mit Enter. Suchen aus der Zeit vor der JQL-Form (ein Feld, Whole value und ausgeschlossene Projekte) werden beim ersten Start in die entsprechende JQL umgewandelt, es muss also nichts neu eingegeben werden. Die reine Textsuche muss nicht eingerichtet werden und wird immer angeboten.
  • Logging — die Ausführlichkeit des Debug-Logs (Error, Warn, Info oder Debug; siehe Debug-Log) sowie ein Open log folder-Button.
  • Zugangsdaten — Site, E-Mail oder Token ändern. Bleibt das Token-Feld leer, wird das gespeicherte Token beibehalten — du musst es also nicht neu eingeben, um z. B. einen Tippfehler in der E-Mail zu korrigieren. Beim Speichern wird erneut gegen Jira geprüft.

Appearance (Theme, Akzentfarbe, Typ-Symbole), Stunden, die Wochenend-Einstellung und der Log-Level wirken sofort als Live-Vorschau — Cancel stellt die Werte vom Öffnen des Bildschirms wieder her. Die Suchen gehören nicht zu dieser Rücknahme: sie sind deine, keine Vorschau, und das ✕ in der Zeile entfernt eine.

Gespeicherte Suchen gehören zu dem Konto, für das sie geschrieben wurden — die Felder und Projekte, die ihre JQL nennt, bedeuten auf einem anderen Jira nichts —, deshalb startet eine Anmeldung als jemand anderes mit einer leeren Liste.

Welche Felder ein Vorgang zeigt, steht nicht hier — das liegt am Vorgang selbst, unter Arrange fields.

About (in der Kopfzeile) zeigt die Version und wie du mich erreichst.

Sign out (in der Kopfzeile, mit Bestätigung) löscht das Token aus dem Schlüsselbund des Betriebssystems und kehrt zum Verbindungsbildschirm zurück.

Umzug auf einen anderen Computer

Settings → General → Transfer settings überträgt deine Einstellungen von einem Computer auf einen anderen — auch zwischen Windows und macOS.

  1. Auf dem alten Computer Export… drücken und die Datei (performa-settings-JJJJ-MM-TT.json) dort speichern, wo du sie vom neuen aus erreichst.
  2. Auf dem neuen Computer performa installieren und zuerst anmelden — die Datei enthält deine Jira-Zugangsdaten nicht.
  3. Import… drücken, die Datei wählen und mit Replace bestätigen. performa startet mit den importierten Einstellungen neu.

Was mitkommt: Theme, Akzentfarbe, Textgröße und die übrigen Anzeige-Schalter, Arbeitsstunden je Wochentag, Bundesland für Feiertage, freie Tage, Leerlaufzeit, Sortierung und ausgeblendete Status im Todo-Tab, Vorlagen, Pins, gespeicherte Suchen, die Feldanordnung von Issues, geparkte Zeit (Entwürfe) und die Erfolge des Spaßmodus. Jede Einstellung aus der Datei ersetzt deine; Einstellungen, die nicht in der Datei stehen, bleiben, wie sie sind.

Was zurückbleibt: deine Jira-Anmeldung, ein laufender Timer, die Log-Stufe und welche Erwähnungen und fehlenden Worklogs du schon gesehen hast.

  • Geparkte Zeit wird kopiert, nicht verschoben: Der alte Computer behält seine Entwürfe ebenfalls — buche jeden nur an einer Stelle.
  • Anderes Jira-Konto — stammt die Datei von einem anderen Konto (oder sagt sie nicht, von welchem), warnt die Bestätigung: Gespeicherte Suchen, Feldanordnung und ausgeblendete Todo-Status nennen Felder, Projekte und Status jener Seite und passen womöglich nicht. Importieren kannst du trotzdem.
  • Eine Datei, die keine performa-Einstellungsdatei ist oder von einer neueren performa-Version stammt, wird abgelehnt, und nichts ändert sich.

Schutz beim Beenden

Beim Beenden mit unerledigten Dingen erscheint eine Warnung, statt still Daten zu verlieren:

  • Timer läuft noch — zeigt Vorgang und verstrichene Zeit; stoppe den Timer, um sie zu erfassen, oder wähle Quit anyway, um die Zeit zu verwerfen.
  • Unerfasste Arbeit offen — im Missing-worklog-Tab warten Funde; geh zurück und erfasse sie, oder wähle Quit anyway.

Vor dem Schließen fragt performa Jira noch einmal nach unerfasster Arbeit — still im Hintergrund, ein Schließen ohne offene Punkte dauert also nur einen Moment länger; ein Dialog erscheint nur, wenn etwas gefunden wird.

Das gilt gleichermaßen für den Schließen-Button des Fensters und für Quit performa im Tray-Menü.

Updates

performa prüft stündlich auf ein neueres Release auf GitHub. Gibt es eins, erscheint ein Banner mit:

  • Update & restart — lädt das Update mit Fortschrittsanzeige herunter, installiert es und startet die App neu
  • Release notes — öffnet die Release-Seite im Browser
  • ✕ — blendet das Banner für diese Version aus; das nächste Release bringt es zurück

Die stündliche Prüfung läuft auch weiter, während die Einstellungen offen sind.

Um sofort zu prüfen, öffne Einstellungen → General → Updates und klicke auf Check for updates. Die Zeile unter dem Button sagt, was dabei herauskam: dass du die neueste Version hast (und wann geprüft wurde), dass eine neuere Version verfügbar ist, oder warum die Prüfung fehlgeschlagen ist. Gibt es eine neuere Version, erscheint neben dem Button Update & restart, sodass du sie installieren kannst, ohne die Einstellungen zu verlassen. Eine so ausgelöste Prüfung bringt auch ein Banner zurück, das du für diese Version ausgeblendet hattest.

Debug-Log

performa führt ein rollierendes Debug-Log auf der Festplatte — nützlich, wenn sich etwas nicht wie erwartet verhält (z. B. ein fehlgeschlagener Jira-Aufruf oder der Status-Anstoß des Timers, der keinen passenden Übergang findet).

  • Ort — ein eigener Ordner performa-logs im temporären Verzeichnis deines Systems. Öffne ihn direkt über den Open log folder-Button in den Einstellungen.

  • Rotation — eine Datei pro App-Start, benannt performa_YYYYMMDD_HHMMSS.log; es werden nur die 3 neuesten Dateien behalten, ältere werden beim nächsten Start automatisch gelöscht.

  • Level — in den Einstellungen wählbar, von am wenigsten bis am ausführlichsten: Error (Standard) → Warn → Info → Debug. Eine höhere Stufe wirkt sofort, ohne Neustart, und bestimmt auch, was das Frontend zusätzlich in dieselbe Datei schreibt.

    • Error — nur Fehlschläge (ein abgelehnter Jira-Aufruf, ein gescheiterter Statusübergang, …).
    • Info — ergänzt eine Spur dessen, was du getan hast und was performa daraufhin gemacht hat: in welchen Tab du gewechselt hast, jeden Backend-Aufruf von performa (was angefragt wurde, z. B. search_issues(query="bug"), wie viele Ergebnisse zurückkamen und wie lange es dauerte), Abmelden, Timer starten/stoppen sowie Missing-Worklog-Prüfungen (und warum sie liefen — ein Poll, Check now, oder direkt nach dem Erfassen von Arbeit).
    • Debug — ergänzt interne Details unterhalb eines einzelnen Backend-Aufrufs, z. B. wie viele Kandidaten-Vorgänge der Missing-Worklog-Scan geprüft hat, bevor er welche markiert hat, oder ein kosmetischer Aussetzer beim Tray-Abgleich.
  • Format — eine Zeile pro Ereignis, im Format des Python-Standardmoduls logging:

    2026-07-22 15:10:26,618 - performa - INFO - performa 0.4.0 started
    2026-07-22 15:10:27,203 - performa - INFO - view: timesheet
    2026-07-22 15:10:28,410 - performa - INFO - list_worklogs(start=2026-07-20, end=2026-07-26) → 14 entr(y/ies) (312ms)
    2026-07-22 15:10:41,006 - performa - ERROR - Jira returned 401: Unauthorized
    

Das Log ist rein lokal — siehe Daten & Datenschutz — und wird von performa selbst nirgendwohin hochgeladen. Dein API-Token wird nie hineingeschrieben; Logzeilen können aber Vorgangsschlüssel und Jira-Fehlertexte enthalten — behandle den Ordner also wie jede andere lokale Diagnosedatei, falls du ihn teilst (z. B. in einem Bugreport).

Daten & Datenschutz

Daten Wo sie liegen
API-Token Schlüsselbund des Betriebssystems (macOS-Schlüsselbund / Windows-Anmeldeinformationsverwaltung)
Site & E-Mail Zusammen mit dem Token im Schlüsselbund-Eintrag
Worklogs In Jira — performa speichert keine Kopie
Pins, Vorlagen, Einstellungen (Theme, Akzentfarbe, Typ-Symbole, Stunden, Wochenenden, Log-Level) Lokal im Speicher der App
Einstellungs-Export (siehe Umzug auf einen anderen Computer) Nur dort, wo du ihn speicherst — enthält deine Einstellungen sowie Seite und E-Mail, nie das Token
Vorgangstyp-Symbole Lokal im Speicher der App — einmal von deiner Jira-Site geholt und behalten, damit die Listen nicht bei jedem Start flackern
Timer-Zustand, Gesehen-/Benachrichtigt-Markierungen, ausgeblendete Update-Version Lokal im Speicher der App
Debug-Log (siehe Debug-Log) Ordner performa-logs im temporären Verzeichnis deines Systems

performa kommuniziert ausschließlich mit deiner Jira-Cloud-Site (alle Worklog-Operationen) und GitHub (Update-Prüfung). Es gibt keine Telemetrie.

Problemlösung & FAQ

„Jira returned 401/403“ beim Verbinden oder Erfassen. Token, E-Mail oder Site sind falsch, oder das Token wurde widerrufen. Erstelle ein neues API-Token und trage es in den Einstellungen ein (für Korrekturen an Site/E-Mail musst du kein gültiges Token neu eingeben).

Ich bekomme keine Desktop-Benachrichtigungen. Die erste Benachrichtigung löst die Berechtigungsabfrage des Betriebssystems aus — wurde sie abgelehnt, erlaube Benachrichtigungen für performa in den Systemeinstellungen (macOS: Systemeinstellungen → Mitteilungen). Beachte, dass unsignierte Entwicklungs-Builds unter einer anderen App-Identität erscheinen können als die paketierte App.

Wo ist die Tray-Uhr unter Windows? Windows-Tray-Symbole können keinen Text neben dem Symbol anzeigen (eine Plattform-Beschränkung). Fahre mit der Maus über das performa-Symbol, um den laufenden Timer im Tooltip zu sehen; alle Menü-Aktionen funktionieren normal.

Erscheinen meine Worklogs in ActivityTimeline? Ja. performa schreibt native Jira-Worklogs, die ActivityTimeline automatisch übernimmt. Die Nicht-abrechenbar-Markierung (~-Präfix im Kommentar) folgt ActivityTimelines eigener Konvention.

Die App zeigt „Could not read stored credentials“. Der Schlüsselbund des Betriebssystems konnte nicht gelesen werden (z. B. weil er gesperrt war). Entsperre den Schlüsselbund bzw. melde dich am System an und drücke Retry.

Kann ich Zeit in der Zukunft erfassen? Nein — das Datumsfeld ist auf heute begrenzt.

Können zwei Timer gleichzeitig laufen? Nein. Stoppe zuerst den laufenden Timer; alle anderen Start-Buttons sind währenddessen deaktiviert.