Zum Inhalt springen

CLI

NowDoing bringt einen kleinen Terminal-Befehl mit: nowdoing. Damit startest und stoppst du Tracking, trägst Zeit nach, fragst den heutigen Stand ab — alles ohne die App in den Vordergrund zu holen.

Der Befehl spricht intern mit der laufenden Mac-App über die AppleScript-Schnittstelle. Die App muss also laufen (Menüleisten-Icon sichtbar).

In der Mac-App: Einstellungen → Integrationen → CLI → Install in PATH. NowDoing legt den Befehl nach ~/.local/bin/nowdoing und zeigt dir im Status-Bereich, ob ~/.local/bin schon im PATH ist. Falls nicht, hängt die App dir den passenden export-Schnipsel für deine Shell aus, den du in ~/.zshrc (oder ~/.bashrc) übernimmst.

Deinstallieren geht im selben Bereich über Deinstallieren.

Nach einem App-Update genügt ein erneutes Install in PATH, um die CLI auf den Stand der App zu bringen.

nowdoing start <activity> [--create-if-missing]
nowdoing stop
nowdoing log <activity> --duration <minutes|Xm|Xh|XhYm> [--note <text>] [--create-if-missing]
nowdoing today
nowdoing status
nowdoing help

Startet das Tracking für eine vorhandene Aktivität:

Terminal-Fenster
nowdoing start "Refactor"

Mit --create-if-missing legt NowDoing die Aktivität an, falls sie nicht existiert:

Terminal-Fenster
nowdoing start "PROJ-123 Review" --create-if-missing

Der Name muss exakt mit einer aktiven Aktivität übereinstimmen — archivierte werden ignoriert.

Beendet die laufende Sitzung:

Terminal-Fenster
nowdoing stop

Wenn nichts läuft, ist der Aufruf trotzdem erfolgreich (no-op).

Trägt einen Zeitblock rückwirkend nach. Die Dauer kann als Minuten oder in Kurzform geschrieben werden:

Terminal-Fenster
nowdoing log "Standup" --duration 15
nowdoing log "Deep Work" --duration 1h30m --note "API-Refactor"
nowdoing log "Pairing" --duration 2h --create-if-missing

Akzeptierte Dauer-Formate: 30 (Minuten), 45m, 2h, 1h30m. Der Eintrag endet jetzt und beginnt entsprechend früher.

Gibt die heute insgesamt erfasste Zeit in Stunden aus:

Terminal-Fenster
$ nowdoing today
3.75

Die Ausgabe ist eine Dezimalzahl — praktisch für Shell-Pipelines.

Gibt einen kompakten Statusblock aus:

Terminal-Fenster
$ nowdoing status
isTracking=true
currentActivity=Refactor
todayHours=3.75

Drei Zeilen im key=value-Format — direkt mit grep / awk weiterverarbeitbar.

Mittagspause als Eintrag nachtragen:

Terminal-Fenster
nowdoing log "Mittag" --duration 45m --create-if-missing

Aktive Aktivität in der Shell-Prompt anzeigen:

Terminal-Fenster
nowdoing status | awk -F= '/currentActivity/ {print $2}'

Tracking per Hotkey aus dem Terminal-Multiplexer starten:

Terminal-Fenster
nowdoing start "Tickets" --create-if-missing && tmux display-message "tracking gestartet"

nowdoing beendet sich mit Exit-Code 0 bei Erfolg und 1 bei Fehlern. Typische Ursachen:

  • Activity '…' not found — Aktivität fehlt oder ist archiviert. Mit --create-if-missing lösen.
  • TrackingManager not available — Mac-App läuft nicht. Starte sie und versuche es erneut.
  • NowDoing is locked: no valid license installed — Lizenz fehlt oder ist abgelaufen. Sichtbar in Einstellungen → Lizenz.
  • AppleScript-Berechtigung — beim ersten Aufruf fragt macOS, ob das Terminal NowDoing steuern darf. Mit OK bestätigen. Falls versehentlich abgelehnt, in Systemeinstellungen → Datenschutz & Sicherheit → Automation wieder erlauben.
  • Aktivitäten umbenennen, archivieren oder löschen — das geht nur in der App.
  • Einträge bearbeiten oder löschenlog legt nur neue Einträge an.
  • Den Erfassungsdialog programmatisch öffnen — dafür gibt es die HTTP-API (POST /branch-changed).

Wenn du mehr Kontrolle brauchst (z. B. Suche nach Aktivitäten, Branch-Wechsel-Hook), nimm die HTTP-API oder eines der SDKs.