← Zurück zum Journal
TaskAlarmToolsmacOSSwiftUI

TaskAlarm, die To-do-Liste, die dich anfeuert

Ich habe eine kleine Menüleisten-App für den Mac gebaut, die mich an Dinge erinnert wie ein Freund. Ein Smiley, der die Farbe wechselt, Erinnerungen in ganz normalem Deutsch, warme synthetische Sounds und null Netzwerk.

TaskAlarm, die To-do-Liste, die dich anfeuert

Auf meinem Bildschirm hängt gerade eine Benachrichtigung, die ich elfmal weggeklickt habe. Dass es elf sind, weiß ich, weil die App es mir stolz mitteilt. Damit ist das Problem mit Erinnerungen eigentlich schon erklärt: Entweder sind sie so leise, dass du sie ungelesen wegwischst, oder so laut und vorwurfsvoll, dass du irgendwann das Ding hasst, das dir eigentlich helfen soll.

Also habe ich TaskAlarm gebaut. Eine kleine To-do-Liste in der Menüleiste vom Mac, deren ganzer Charakter in einen Satz passt: die To-do-Liste, die dich anfeuert.

Vier TaskAlarm-Ansichten auf schwarzem Hintergrund: Einstellungen, die Aufgabenliste mit „Good evening“, eine Aufgabe mit Wiederholungsoptionen und eine „It's time!“-Karte.

Ein Gesicht statt einer roten Zahl

Das Icon in der Menüleiste ist ein Gesicht. Die Farbe zeigt den Status: grün heißt alles erledigt, gelb heißt da steht was an, rot heißt du hast was verpasst. Den Rest macht der Gesichtsausdruck. Entspannt, wenn nichts los ist. Motiviert, wenn heute noch was ansteht. Aufgeregt, wenn gerade etwas fällig ist. Und ein breites Grinsen, wenn du das Letzte abhakst.

Besorgt schaut es nur, wenn wirklich etwas verpasst wurde. Das ist Absicht, und genau deswegen funktioniert die App bei mir. Ein rotes Badge mit einer Zahl sagt dir: Du hängst hinterher. Ein Gesicht, das fast immer lächelt, sagt: Das schaffst du. Und an dem einen Tag, an dem es nicht lächelt, fällt dir das auch auf.

Das TaskAlarm-App-Icon: eine lila Kachel mit einem lächelnden Wecker-Gesicht, zwei gelben Glocken, einem kleinen Hammer und winzigen Füßen.
Im App-Icon ist der Smiley ein Wecker. In der Menüleiste bleibt nur das Gesicht übrig.

Im App-Icon ist der Smiley als Wecker verkleidet, mit zwei gelben Glocken, einem kleinen Hammer und winzigen Füßen. In der Menüleiste bleibt nur das Gesicht, weil du bei 16 Pixeln eben Augen, Mund und ein bisschen Rouge unterbringst und dann ist Schluss.

Schreib es, wie du es sagen würdest

Das Eingabefeld versteht normale Sprache. Aus Zahnarzt morgen um 10 Uhr wird „Zahnarzt", morgen um 10. Sport jeden Montag 18 Uhr wiederholt sich jede Woche. Englisch geht genauso: Call Anna tomorrow 3pm, Gym every Mon and Thu 6pm, Pay rent every month.

Für Wiederholungen hat der Parser eigene Muster, also „jeden Werktag", „alle 3 Wochen", „täglich" und Verwandte. Die eigentlichen Datumsangaben überlässt er dem Datums-Erkenner vom System, der sowieso schon ziemlich viele Sprachen kann.

Meine liebste kleine Regel darin: Wörter wie „daily" oder „täglich" zählen nur als Wiederholung, wenn sie nicht das erste Wort sind. Eine Aufgabe namens Daily every workday 8:30am heißt also weiterhin „Daily" (das ist mein Stand-up) und kommt Montag bis Freitag. Den Bug habe ich am ersten Morgen gefunden, an dem ich die App benutzt habe. Mehr User Research ist bei mir budgettechnisch nicht drin.

Wer nicht tippen will, hat neben dem Feld Knöpfe für Wiederholung und Kalender. Ein Klick auf eine Aufgabe öffnet ihre eigene Seite mit Notizen, Datum, Uhrzeit und Wiederholung, auch mit eigenen Regeln wie alle N Tage, Wochen, Monate oder an bestimmten Wochentagen.

Drei Stufen, jede ein bisschen lauter

Eine Erinnerung in TaskAlarm ist ein kleines Stück in drei Akten.

Erst ein optionaler Hinweis, standardmäßig fünf Minuten vorher. Eine leise „Coming up"-Karte, sonst nichts.

Dann der eigentliche Moment. Ein warmer Glockenton, und oben rechts gleitet eine Karte rein: „It's time!". Wenn du dauerhafte Popups eingeschaltet hast, bleibt sie da, bis du auf Done drückst oder dich in 5 bis 30 Minuten noch mal erinnern lässt.

Und wenn du sie ignorierst, kommt der dritte Akt. Eine Aufgabe mit Uhrzeit gilt erst nach fünf Minuten Kulanz als verpasst, weil sich „fällig um 15 Uhr" und „es ist 15:01" nicht nach Versagen anfühlen sollten. Danach wird die Karte rot, spielt ein weiches Ding-Dong, wackelt einmal und meldet sich alle paar Minuten wieder, bis du dich kümmerst.

Eine Erinnerung soll sich anfühlen wie ein Freund, der dir auf die Schulter tippt. Nicht wie ein Chef, der deine Stundenzettel vorliest.

„Is it really done?"

Wenn du auf Done drückst, kann TaskAlarm noch einmal nachfragen: „Is it really done?" Klingt albern. Ist die nützlichste Funktion der ganzen App.

Meine schlimmste Angewohnheit bei To-do-Listen war, Dinge abzuhaken, damit die Erinnerung verschwindet. Erledigt war gar nichts, ich wollte nur Ruhe. Ein zusätzlicher Klick reicht schon, damit ich ehrlich zu mir bin. Und während die Frage offen ist, zeigt der Smiley sein Jubelgesicht, also fühlt sich die ehrliche Antwort nach Belohnung an statt nach Schikane. Popups fragen immer nach, für die Liste ist es ein Schalter in den Einstellungen.

Alles bleibt auf deinem Mac

Deine Aufgaben liegen in einer einzigen JSON-Datei unter ~/Library/Application Support/TaskAlarm/tasks.json. Kein Konto, kein Sync-Dienst, überhaupt kein Netzwerk-Code. Falls die Datei mal kaputtgeht, schiebt die App sie als Backup mit Zeitstempel zur Seite, statt still bei null anzufangen. Deinstallieren heißt: App und Ordner löschen, fertig.

Auch die Sounds werden zur Laufzeit synthetisiert, im Paket liegt keine einzige Audiodatei. Das ist einen eigenen Artikel wert, und der kommt auch.

So bekommst du es

Eine Zeile im Terminal:

curl -fsSL https://raw.githubusercontent.com/maxlkatze/taskalarm/main/install.sh | bash

Das lädt die neueste Version nach /Applications und startet sie. Dann such den Smiley in deiner Menüleiste. Wenn du lieber selbst baust: Es ist ein Swift Package, braucht macOS 14 und die Xcode Command Line Tools, und ./scripts/build.sh --install erledigt den Rest.

Open Source, MIT-Lizenz. Gebaut habe ich es, weil meine alte Erinnerungs-App mir ungefähr viermal am Tag ein schlechtes Gewissen gemacht hat. Die neue hat das bisher kein einziges Mal geschafft.