Spark Creative Solutions · Modul 1
Modul 1 · 7. November 2026
Rekursive Selbstverbesserung für deinen KI-Assistenten: das Minimal-Credit-Setup
Für meine Klasse und Freunde. Geschrieben nach einem Tag Arbeit an meinem eigenen Setup, 7. November 2026. Funktioniert mit Claude, ChatGPT oder Gemini, auf Windows oder Mac; nichts hier verlangt, dass du Programmierer bist. Jeder Schritt sagt, wo das Ding in jeder App steckt.
Warum das funktioniert
Die meisten deiner Credits gehen nicht fürs Denken drauf. Sie gehen durch vier Lecks, und jedes davon lässt sich an einem Nachmittag schließen.
- Jedes Plugin, jeder Connector und jedes Tool, das du eingeschaltet hast, wird in jede einzelne Nachricht geladen, ob du es benutzt oder nicht. Zwanzig untätige Tools kosten dich bei jedem Zug in jedem Chat.
- Screenshots. Jedes Mal, wenn dein Assistent auf deinen Bildschirm schaut oder einen Browser über Bilder steuert, zahlt er hunderte Male mehr als fürs Lesen von Text.
- Neu erklären. Jeder neue Chat, der blind anfängt, lässt dich deine Lage noch mal tippen und lässt den Assistenten sein Gedächtnis und alte Chats durchsuchen, um aufzuholen. Diese Suche kostet mehr als deine Nachricht.
- Geplante Jobs, die jeden Morgen alles auf dem teuersten Modell lesen, um eine Seite zu erzeugen, die du nie öffnest.
Die eine Idee hinter dem ganzen Setup: Dein Assistent liest zuerst eine winzige Datei und schreibt zuletzt eine winzige Datei. Alles andere ist Ausmisten. Mein eigener Account ging von vier schweren Morgenläufen auf einen, und von "sag mir noch mal, wo wir waren" zu einer Datei mit 300 Token, die der Assistent liest, bevor er spricht. Dieselben Züge funktionieren in Claude, ChatGPT und Gemini, weil es Gewohnheiten und Dateien sind, keine Features.
Was du brauchst und was es kostet
Ein bezahlter Assistenten-Plan, die kostenlose Desktop-App dazu, ein Ordner auf deinem Rechner und etwa 40 Minuten. Alles andere in diesem Leitfaden ist kostenlos.
| Posten | Kosten | Anmerkungen |
|---|---|---|
| Assistenten-Plan | die normale bezahlte Stufe einer App (Claude Pro, ChatGPT Plus oder Google AI Pro) | Die kostenlosen Stufen reichen für die Datei-Gewohnheiten, deckeln aber starke Nutzung. Wechsle nur auf eine Top-Stufe, wenn du an den meisten Tagen ans Limit stößt. Nie zwei bezahlte Pläne gleichzeitig. |
| Desktop-App dieses Assistenten | kostenlos | Nötig, um einen Ordner auf deinem Rechner zu lesen. Windows und Mac. |
| Ein Texteditor | kostenlos | Notepad auf Windows, TextEdit auf Mac oder Obsidian (kostenlos, besser, optional). |
| Google-Konto | kostenlos | Für die kostenlose Automatisierung (Apps Script) in Schritt 6 und den günstigen Helfer in Schritt 5. |
| Python | kostenlos | Nur für das optionale Puls-Skript (pulse) in Schritt 4. Mac hat es schon; Windows installiert es mit zwei Klicks von python.org. |
| Ausgabenlimit | 0 | Am ersten Tag setzen: ein monatliches Limit, automatisches Nachladen aus. Das Limit ist das, was Experimentieren sicher macht. |
Geh von Windows aus, außer du hast einen Mac; jeder Schritt unten hat beides. Handys sind zum Lesen, nicht für dieses Setup.
Schritt 1, ausmisten
Zehn Minuten, und die größte einzelne Ersparnis auf der Liste. Alles, was eingeschaltet ist, wird in jede Nachricht geladen.
- Öffne die Einstellungen der App und schau dir die Plugins, Connectors, Integrationen, GPTs oder Erweiterungen an, die du aktiviert hast. Schalte alles aus, was du in den letzten zwei Wochen nicht benutzt hast. Du kannst es mit einem Klick wieder einschalten, wenn du es brauchst.
- Behalte einen Automatisierungs-Connector, nicht zwei. Wenn du IFTTT und Zapier hast, nimm den, in dem etwas Echtes drin ist.
- Gedächtnis: Bitte deinen Assistenten, dir zu zeigen, was er sich merkt ("exportiere alles, was du über mich weißt, nach Kategorien"). Lösch, was falsch oder veraltet ist. Sag ihm in klaren Worten, was er behalten soll: deinen Namen, deine Arbeit, die Regeln, die du befolgt haben willst. Gutes Gedächtnis heißt weniger Neu-Erklären; veraltetes Gedächtnis heißt selbstbewusste falsche Antworten.
- Ausgaben: Such die Abrechnungsseite, setz ein monatliches Limit, schalte automatisches Nachladen aus. Wenn deine Aufladungen im letzten Monat weit über dem festen Planpreis lagen, ist die nächsthöhere Stufe billiger als Credits.
Wo du es findest. Claude: Settings, dann Connectors and Plugins; Gedächtnis unter Settings, Memory. ChatGPT: Settings, dann Apps and connectors; Gedächtnis unter Personalization, Manage memories. Gemini: Settings, dann Apps; Gedächtnis unter Saved info. Ausgabenlimits liegen auf der Abrechnungsseite jeder App, oder in der API-Konsole, falls du eine benutzt.
Schritt 2, der Basisordner und die drei Dateien
Leg einen Ordner an, den dein Assistent immer sehen kann, und halte drei kleine Textdateien darin. Das ist das ganze Kontinuitätssystem; es passt in 40 Zeilen.
Leg in deinem Benutzerverzeichnis einen Ordner namens ops an. Verbinde ihn in der Desktop-App des Assistenten (Claude: der Plus-Knopf, Add folder; ChatGPT: Settings, Work with apps oder die Ordnerauswahl in der Desktop-App; Gemini: ein Google-Drive-Ordner tut dasselbe, weil Gemini Drive liest). Dann leg mit irgendeinem Texteditor diese drei Dateien darin an.
| Datei | Was drinsteht | Wer sie schreibt |
|---|---|---|
NOW.md | Wo du gerade bist: woran du arbeitest, das zuletzt Erledigte, der nächste Schritt, das eine Ding, das auf dich wartet. Maximal 20 Zeilen. | Du, in einer Minute, am Anfang und am Ende eines Arbeitsblocks. Oder das Puls-Skript aus Schritt 4, automatisch. |
handoff.md | Zwei Zeilen pro Sitzung: Datum, was erledigt wurde, was als Nächstes kommt. Der neueste Eintrag oben. | Der Assistent, am Ende jedes Arbeits-Chats, wenn du "schreib die Übergabe" sagst. |
hands.md | Eine Abhakliste mit Dingen, die nur du tun kannst: ein Passwort tippen, eine Datei teilen, einen Knopf drücken. | Der Assistent hängt an; du hakst ab. |
Vorlagen für alle drei stehen im Anhang. Die Regel, die sie zum Laufen bringt: Nichts in diesen Dateien ist geheim, nichts ist lang, und der Assistent liest sie, bevor er irgendetwas anderes tut.
Wenn du Obsidian benutzt, leg den Ordner in deinen Vault. Obsidians Plugin Local REST API, plus eine Zeile in der Claude-Desktop-Konfiguration, lässt den Assistenten den Vault lesen und schreiben, ohne jedes Mal einen Ordner anzuhängen; das ist ein Abendprojekt für später, nicht für Tag eins.
Schritt 3, das Ops-Projekt und die Startanweisung
Leg ein Projekt an (Claude: Projekt; ChatGPT: Projekt oder ein eigenes GPT; Gemini: ein Gem, oder bei privaten Konten nach dem 17. November 2026 ein Saved-info-Eintrag plus ein angepinnter Drive-Ordner) und füg das hier als seine Anweisungen ein:
On the first turn of every chat, before anything else, read ops/NOW.md, ops/handoff.md and ops/hands.md. Open by saying in one line where I am and what I was doing, then take my message. No screenshots and no searching old chats until those three files are read.
At the end of a working session, when I say "write the handoff", add two lines to the top of ops/handoff.md: the date, what was done, what is next. Anything that needs my own hands goes as a tick-box line into ops/hands.md.
Style: concise, no moralising, no numbered lists, no em dashes. Ask before anything that cannot be undone: sending, deleting, sharing, publishing, paying. Never type a password; I type those.
Kopieren: ops-project-instructions.txt
Häng den Ordner ops an das Projekt selbst, nicht an einen einzelnen Chat, damit jeder neue Chat ihn sehen kann. Mach fast deine ganze Arbeit in diesem einen Projekt. Die Blindheit zwischen Projekten, die die meisten Apps haben, spielt keine Rolle mehr, sobald deine Arbeit an einem Ort lebt.
Der Effekt: Ein neuer Chat kostet dich nichts zum Starten. Der Assistent eröffnet mit "Du warst mitten im Newsletter-Entwurf, der Takeout läuft noch, und der Drucker braucht Papier", und du machst weiter.
Schritt 4, der Puls (optional, der Teil, der sich wie Magie anfühlt)
Ein winziges Skript schreibt NOW.md alle fünf Minuten neu, mit dem, was du gerade wirklich tust, damit du es nie von Hand aktualisieren musst. Es hält drei Dinge fest: die App im Vordergrund und ihren Fenstertitel, die Dateien, die du in den letzten 15 Minuten angefasst hast, und den Anfang von hands.md und handoff.md. Nichts verlässt deinen Rechner, und es macht nie einen Screenshot.
Privatsphäre ist eingebaut, nicht angeschraubt. Das Skript trägt eine kurze Liste von Apps, deren Fenstertitel nie protokolliert werden (Passwortmanager, Signal, Banking), und überspringt jedes private Browserfenster. Steht eine App nicht auf der Liste der erlaubten Apps, wird nur ihr Name festgehalten. Bearbeite diese Listen, bevor du installierst.
- Windows: Speichere
pulse.ps1aus dem Anhang inops, dann öffne Task Scheduler, Create Basic Task, Auslöser "When I log on", Aktion "Start a program":powershell.exe -ExecutionPolicy Bypass -File "C:\Users\you\ops\pulse.ps1", und stell in den Eigenschaften der Aufgabe ein, dass sie alle 5 Minuten wiederholt wird. Ein Dialog, fertig. - Mac: Speichere
pulse.pyundinstall-pulse.commandaus dem Anhang inops, doppelklicke die.command-Datei einmal, klick bei den zwei Berechtigungsabfragen auf OK.
Prüf, ob es läuft: Öffne NOW.md nach fünf Minuten. Wenn die oberste Zeile die Uhrzeit trägt, ist die Schleife geschlossen, und ab jetzt weiß jeder Chat beim Öffnen, wo du bist.
Gemini-Nutzer: Lenkt die Ausgabe des Skripts auf einen Drive-Ordner statt auf einen lokalen, und Gemini liest sie von dort.
Schritt 5, günstige Helfer
Dein Hauptassistent ist der teure. Gib das Lesen großer Mengen einem billigeren und reich nur das Ergebnis zurück.
- Lange Dateien. Füg nie ein 200-seitiges PDF in deinen Haupt-Chat ein. Lass es erst von einem billigen Modell zusammenfassen (Geminis kostenlose Stufe in AI Studio, oder die kostenlose Stufe von einer der drei Apps), dann gib deinem Hauptassistenten die zweiseitige Zusammenfassung. Zehnmal billiger, oft besser, weil der Hauptassistent jetzt über einen sauberen Auszug nachdenkt.
- Zweitmeinungen. Für eine Entscheidung schlägt eine starke Antwort vier. Nimm mehrere Modelle nur, wenn du willst, dass sie sich widersprechen, und bitte dann um eine Synthese.
- Text einfügen, nie hochladen. Eine Datei, die bei einem Multi-Modell-Dienst hochgeladen wurde, kann ohne Löschknopf auf deren Speicher liegen; ich habe das auf die teure Art gelernt. Füg den Text ein, der gelesen werden soll, bereinigt von Namen, Adressen, Gesundheits- und Kundendetails, und sonst nichts. Kostenlose Stufen dürfen zum Trainieren nutzen, was du einfügst, also ist das Bereinigen nicht optional.
- Das eine Skript, das sich lohnt, für die technisch Neugierigen: eine 40-zeilige Python-Datei mit deinem Gemini-Schlüssel in einer Datei daneben, die jedes Dokument von der Kommandozeile aus zusammenfasst, damit dein Hauptassistent es nie laden muss. Meine heißt
council.py; frag mich danach. Ein Ausgabenlimit auf dem Schlüssel, ein paar Euro im Monat, macht es sicher genug, um es zu vergessen.
Wo du es findest. Gemini-Schlüssel: AI Studio, API keys; die bezahlte Stufe kostet Cents, und Google erklärt, dass Daten der bezahlten Stufe nicht zum Trainieren genutzt werden. Claude- und ChatGPT-Schlüssel: ihre Entwicklerkonsolen, gleiche Idee, gleiche Limits. Am ersten Tag nicht nötig.
Schritt 6, geplante Aufgaben, die sich bezahlt machen
Eine geplante Aufgabe ist ein Chat, der ohne dich läuft. Sie kostet dasselbe wie ein Chat, jeden Tag, für immer, also muss sich jede einzelne rechnen.
- Behalte die, deren Ausgabe dich als Push-Benachrichtigung erreicht, die du wirklich liest. Eine Morgenzeile mit dem heutigen Kalender und den zwei E-Mails, die zählen, ist es wert. Eine schöne Seite, die du nie öffnest, nicht.
- Setz jede Aufgabe auf das billigste Modell, das sie schafft. Eine Liste lesen und filtern ist ein Job für ein kleines Modell. Belege lesen und die Beträge richtig hinbekommen braucht ein mittleres Modell. Fast nichts braucht das Top-Modell auf einem Timer.
- Regelbasierte Jobs brauchen gar kein Modell. Mails von bekannten Absendern labeln und archivieren ist ein Gmail-Filter. Einen geteilten Ordner auf die Änderungen von jemand anderem beobachten ist ein sechszeiliges Google Apps Script auf einem Timer, kostenlos, und es sieht, wer geändert hat, was der Assistent nicht kann. Kalender-Plausibilitätsprüfungen sind ein Regex. Lass deinen Assistenten das Skript schreiben; du fügst es bei script.google.com ein und klickst einmal auf Allow.
- Einmal im Monat liste die Aufgaben auf und frag bei jeder: Habe ich das letzte Woche gelesen? Wenn nicht, streich sie oder halbiere sie.
Wo du es findest. Claude: geplante Aufgaben, sichtbar in der Seitenleiste, jede mit eigener Modell-Einstellung. ChatGPT: Tasks. Gemini: Scheduled actions. Google Apps Script funktioniert für alle drei, weil es in deinem Google-Konto lebt, nicht im Assistenten.
Mein Account vor und nach einer Prüfung: Aus vier schweren Werktagsläufen auf dem Top-Modell wurde einer; aus zwei Ordner-Beobachtungsläufen am Tag wurde ein kostenloses Skript; der Rest wanderte auf kleine Modelle. Dieselbe Information erreicht mich, ein Bruchteil der Credits.
Die Sicherheitsregeln, die mit all dem mitreisen
Das ist keine Vorsicht um ihrer selbst willen. Jede gibt es, weil es jemanden echte Zeit oder Privatsphäre gekostet hat, sie einmal zu überspringen.
- Passwörter und API-Schlüssel tippst du selbst, in eine Datei auf deinem eigenen Rechner, nie in einen Chat. Ein Schlüssel, der in einen Chat eingefügt wurde, lebt in diesem Protokoll. Wenn es passiert, erstell einen neuen Schlüssel und lösch den alten noch am selben Tag.
- Nichts Unumkehrbares ohne dein Ja: kein Senden, Löschen, Teilen, Veröffentlichen oder Bezahlen. Schreib diese Zeile in deine Projekt-Anweisungen, und der Assistent fragt jedes Mal.
- Gib externen Modellen eingefügten Text, nie Dateien. Bereinige vorher Namen, Adressen, Gesundheits-, Geld- und Kundendetails. Führ eine Liste von Wörtern, die deinen Rechner nie verlassen dürfen, und prüf den Text dagegen, bevor du einfügst.
- Ordner mit dem Namen Private bleiben privat. Sag dem Assistenten, welche Ordner er nie lesen darf, und halte auch diese Liste in den Projekt-Anweisungen.
- Fenstertitel und zuletzt benutzte Dateien sind ein Protokoll deines Lebens. Halte die Sperrliste des Pulses ehrlich, und halte
NOW.mdaus allem heraus, was du teilst. - Eine Ablehnung vom Berechtigungssystem des Assistenten ist kein Hindernis, das man umgeht. Es ist das System, das seine Arbeit macht; der Schritt kommt stattdessen auf deine
hands.md-Liste. - Deine eigenen Worte bleiben deine. Wenn du etwas weiterleitest, das der Assistent geschrieben hat, sag es. Wenn er für dich entwirft, behalte deine Zeichensetzung und deine Stimme; Politur verrät es.
Die wöchentlichen fünfzehn Minuten
Das ist, was es rekursiv macht: Der Assistent verbessert sein eigenes Setup, mit dir als der Hand, die klickt.
Einmal die Woche öffne das Ops-Projekt und sag: "Lies hands.md und handoff.md. Sag mir, wofür ich bezahle, was ich diese Woche nicht benutzt habe, was du mich zweimal fragen musstest, und welche eine Änderung die meisten Credits sparen würde. Dann aktualisiere die Projekt-Anweisungen mit dem, worauf wir uns einigen." Hak auf hands.md ab, was du kannst, während er denkt.
Drei Fragen halten die Schleife ehrlich:
- Was habe ich diese Woche neu erklärt? Das ist eine Zeile, die in den Projekt-Anweisungen oder im Gedächtnis fehlt.
- Was hat der Assistent per Screenshot angeschaut oder gesucht, was ihm eine Datei hätte sagen können? Das ist eine Zeile, die in
NOW.mdfehlt. - Was lief nach Zeitplan, das ich nie gelesen habe? Das ist eine Aufgabe zum Streichen.
Schreib die Antworten in die Anweisungen, nicht in deinen Kopf. In einem Monat passt dir das Setup wie ein Handschuh, und die Credit-Rechnung ist ein Bruchteil von dem, was sie war. Dann bring es einem Freund bei; beim Erklären findest du heraus, welche Teile du noch aus Gewohnheit machst.
Nirgendwo Gedankenstriche, keine nummerierten Listen, deine eigene Zeichensetzung in allem, was du als du selbst verschickst. Ende und aus, mit Liebe.
Anhang: Vorlagen und Skripte zum Kopieren
Die drei Dateien, wie sie am ersten Tag aussehen sollten. Jede ist auch ein Download; Rechtsklick, in ops speichern.
NOW.md
# NOW.md
Working on: the newsletter draft, section 3
Last finished: sent the invoice to the printer
Next: proofread section 3, then export the PDF
Waiting on me: reply to the landlord about Thursday
Herunterladen: NOW.md
handoff.md
# handoff.md (newest on top)
2026-11-07 Set up the ops folder, Project and pulse. Next: prune the plugins, set the spend cap.
Herunterladen: handoff.md
hands.md
# hands.md: things only I can do
- [ ] set the monthly spend limit and turn auto-reload off
- [ ] connect the ops folder to the Project
Herunterladen: hands.md
Windows-Puls: pulse.ps1
In ops speichern, mit Task Scheduler alle 5 Minuten einplanen. Erst die zwei Listen oben bearbeiten.
# pulse.ps1: rewrites ops\NOW.md with what you are doing. Nothing leaves this computer.
$ops = "$HOME\ops"
$deny = @("1Password","Bitwarden","KeePass","Signal","Passwords") # never logged at all
$titleOk = @("Claude","ChatGPT","Code","Obsidian","chrome","msedge","firefox","WINWORD","EXCEL","notepad","explorer","WhatsApp","OUTLOOK","Zoom") # window title logged only for these
Add-Type @"
using System; using System.Runtime.InteropServices;
public class W { [DllImport("user32.dll")] public static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")] public static extern uint GetWindowThreadProcessId(IntPtr h, out uint pid); }
"@
$h = [W]::GetForegroundWindow(); $procId = 0; [W]::GetWindowThreadProcessId($h, [ref]$procId) | Out-Null
$p = Get-Process -Id $procId -ErrorAction SilentlyContinue
$app = if ($p) { $p.ProcessName } else { "unknown" }; $title = ""
if ($deny -contains $app) { $app = "[private app]" }
elseif ($titleOk -contains $app -and $p.MainWindowTitle -and $p.MainWindowTitle -notmatch "InPrivate|Incognito|Private") { $title = $p.MainWindowTitle.Substring(0, [Math]::Min(90, $p.MainWindowTitle.Length)) }
$since = (Get-Date).AddMinutes(-15)
$files = Get-ChildItem "$HOME\Documents","$HOME\Desktop","$HOME\Downloads",$ops -Recurse -File -ErrorAction SilentlyContinue |
Where-Object { $_.LastWriteTime -gt $since -and $_.FullName -notmatch "\\Private\\|Signal|\\\.git\\|node_modules|NOW\.md" } |
Sort-Object LastWriteTime -Descending | Select-Object -First 8
$lines = @("# NOW (auto, $(Get-Date -Format 'ddd dd MMM HH:mm'), pulse.ps1, read this first)", "Active: $app" + $(if ($title) { " `"$title`"" } else { "" }))
$lines += "Files touched (last 15 min):"
if ($files) { $files | ForEach-Object { $lines += " " + $_.FullName.Replace($HOME, "~") } } else { $lines += " none" }
foreach ($f in @("hands.md","handoff.md")) { if (Test-Path "$ops\$f") { $lines += "From ${f}:"; Get-Content "$ops\$f" | Where-Object { $_.Trim() -and -not $_.StartsWith("#") } | Select-Object -First 5 | ForEach-Object { $lines += " $_" } } }
$lines | Select-Object -First 22 | Set-Content "$ops\NOW.md" -Encoding UTF8
Herunterladen: pulse.ps1SHA-256 851136a23d920e67798fb8d0ae6627fc1b6b13e3b8e482db9f13303c4b1a28ad
Mac-Puls: pulse.py plus install-pulse.command
Beide in ops speichern, die .command einmal doppelklicken.
#!/usr/bin/env python3
# pulse.py: rewrites ops/NOW.md with what you are doing. Nothing leaves this computer.
import os, subprocess, datetime, re
HOME = os.path.expanduser("~"); OPS = os.path.join(HOME, "ops")
DENY = {"Signal", "Passwords", "1Password", "Keychain Access", "Bitwarden", "Messages", "Photos"}
TITLE_OK = {"Claude", "ChatGPT", "Obsidian", "Google Chrome", "Safari", "Finder", "Pages", "Numbers", "TextEdit", "Notes", "Mail", "WhatsApp", "Zoom", "Code"}
EXCLUDE = ("/Private", "Signal", "/.git", "node_modules", "/Library/", "NOW.md")
def osa(s):
try: return subprocess.run(["osascript", "-e", s], capture_output=True, text=True, timeout=8).stdout.strip()
except Exception: return ""
app = osa('tell application "System Events" to get name of first application process whose frontmost is true')
title = ""
if app in DENY: app = "[private app]"
elif app in TITLE_OK:
title = osa('tell application "System Events" to tell (first application process whose frontmost is true) to get name of front window')[:90]
if re.search(r"incognito|private", title, re.I): title = "[private window]"
files = []
for d in ("Documents", "Desktop", "Downloads", "ops"):
r = subprocess.run(["mdfind", "-onlyin", os.path.join(HOME, d), "kMDItemFSContentChangeDate >= $time.now(-900)"], capture_output=True, text=True)
files += [p for p in r.stdout.splitlines() if os.path.isfile(p) and not any(x in p for x in EXCLUDE)]
files = sorted(set(files), key=os.path.getmtime, reverse=True)[:8]
lines = ["# NOW (auto, %s, pulse.py, read this first)" % datetime.datetime.now().strftime("%a %d %b %H:%M"), "Active: %s%s" % (app or "unknown", ' "%s"' % title if title else "")]
lines.append("Files touched (last 15 min):"); lines += [" " + p.replace(HOME + "/", "~/") for p in files] or [" none"]
for f in ("hands.md", "handoff.md"):
p = os.path.join(OPS, f)
if os.path.exists(p):
lines.append("From %s:" % f); lines += [" " + l.rstrip() for l in open(p, encoding="utf-8") if l.strip() and not l.startswith("#")][:5]
open(os.path.join(OPS, "NOW.md"), "w", encoding="utf-8").write("\n".join(lines[:22]) + "\n")
Herunterladen: pulse.pySHA-256 fb868f9f7cbecc0d5dc18492157591568c52462db603a82456273be61605737a
#!/bin/bash
# install-pulse.command: runs pulse.py every 5 minutes via launchd. Double-click once.
OPS="$HOME/ops"; PL="$HOME/Library/LaunchAgents/com.me.pulse.plist"; mkdir -p "$HOME/Library/LaunchAgents"
cat > "$PL" <<PLIST
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"><dict><key>Label</key><string>com.me.pulse</string>
<key>ProgramArguments</key><array><string>/usr/bin/python3</string><string>$OPS/pulse.py</string></array>
<key>StartInterval</key><integer>300</integer><key>RunAtLoad</key><true/></dict></plist>
PLIST
launchctl bootout "gui/$(id -u)/com.me.pulse" 2>/dev/null; launchctl bootstrap "gui/$(id -u)" "$PL" && echo "installed"
python3 "$OPS/pulse.py" && cat "$OPS/NOW.md"
Herunterladen: install-pulse.commandSHA-256 c2f0f1abb9f37e28480e6ea8f9ad49ffb0860a621ca699b44cc36b06516debab
Gemini Gems, falls du welche auf einem privaten Google-Konto hast: Exportiere sie vor dem 17. November 2026 (Google Takeout, alles abwählen, nur "Gemini" anhaken); die Anweisungen kommen als Text heraus, den du in ein Projekt oder einen Saved-info-Eintrag einfügen kannst.