Zurück zur Startseite

PromptPilot für AI CLI: Aufgabenplaner

PromptPilot — Warteschlangenplaner für AI CLI wie Claude Code. Unterstützt CLI, Web UI, Telegram-Bot mit Rate-Limits-Behandlung und Sitzungswiederaufnahme. Architektur auf SQLite + Single-Threaded-Worker sorgt für Zuverlässigkeit.

AI CLI-Automatisierung mit PromptPilot: Bots und Warteschlangen
Advertisement 728x90

PromptPilot: Ein Warteschlangenplaner für KI-CLI-Tools

PromptPilot ermöglicht es Ihnen, Aufgaben für KI-CLI-Tools wie Claude Code, Codex und Qwen in eine Warteschlange zu stellen. Das Tool führt Prompts nach Zeitplan über CLI, Web-Oberfläche oder Telegram-Bot aus. Es unterstützt Prioritäten, Wiederholungen bei Ratenbegrenzungen und Sitzungswiederherstellung. Der Worker verarbeitet eine Aufgabe nach der anderen und vermeidet so Rennen um API-Limits.

Praktische Anwendungsfälle: Limits vor Arbeitsbeginn aufwärmen, Restkontingente vor Monatsende nutzen, Aufgaben remote über Bot einreihen. Aufgaben werden in SQLite mit WAL-Modus für Nebenläufigkeit gespeichert.

Praktische Anwendungsfälle

Das Tool löst alltägliche Entwicklerprobleme:

Google AdInline article slot
  • Limits aufwärmen: Planen Sie einen leichten Prompt für 5:00 Uhr morgens, damit die Sitzung früh beginnt. Bis 9:00 Uhr ist das Limit teilweise genutzt; um 10:00 Uhr — wird es zurückgesetzt.
  • Nächtliche Ratenbegrenzung: Spät abends eine Aufgabe für die Reset-Zeit einreihen — das Ergebnis ist morgens fertig.
  • Remote-Start: Aus dem Taxi über Bot eine Code-Prüfung senden — bei Rückkehr ist das Limit erneuert, Aufgabe erledigt.
  • Mobile Anpassungen: Validierung zu payments.py mit Tests direkt aus Telegram hinzufügen.
  • Claude-Fähigkeiten: Rufen Sie eine Fähigkeit wie demo-invite.md über /skills im Bot oder einen Button in der UI auf.

Beispiel-CLI-Start:

pp add "Schreibe Tests für api.py" --dir C:\Projects\PromptPilot -p 1 -a "2026-04-01T05:00"

Systemarchitektur

Schnittstellen (CLI, Web-UI, TG-Bot) schreiben in SQLite (~/.promptpilot). Der Worker fragt die Warteschlange alle 5s ab, startet einen Subprozess mit der KI-CLI.

Schnittstellen → SQLite (WAL) → Worker (poll 5s) → Subprozess (claude.exe | codex | qwen)
Server: FastAPI + JS-UI
Bot: Telegram-API

Prozesse sind unabhängig:

Google AdInline article slot
  • Worker: Single-threaded, eine Aufgabe gleichzeitig. Bei Ratenbegrenzung — exponentieller Backoff.
  • Server: REST auf :8420, vanilla JS-UI.
  • Bot: Schritt-für-Schritt-Dialoge, Autorisierung per Telefonnummer.

Absturzwiederherstellung: Beim Start werden laufende Aufgaben auf ausstehend zurückgesetzt.

Installation und Konfiguration

Repository klonen, editierbar installieren:

git clone https://github.com/your/promptpilot
cd PromptPilot
pip install -e .

.env erstellen:

Google AdInline article slot
PP_CLAUDE_EXE=C:\Users\username\.local\bin\claude.exe
PP_DEFAULT_CLI=claude
PP_PROJECTS_ROOT=C:\Projects
PP_TASK_TIMEOUT=300
PP_BASE_DELAY=60
PP_MAX_DELAY=3600
PP_TG_TOKEN=...
PP_TG_ALLOWED_PHONES=+79001234567
PP_TASK_PASSWORD=12345

Dienste starten

CLI-Modus:

pp worker  # Warteschlange verarbeiten
pp server  # http://127.0.0.1:8420
pp bot     # Telegram
pp start   # worker + server

Tray (.exe für Windows): Doppelklick — Icon im Tray (🟢/🟠/⚫). Build: \.build.ps1 → dist/pp.exe (40MB, eigenständig).

PowerShell: \.start.ps1 (alle Dienste), \.stop.ps1.

Verwaltungsschnittstellen

CLI

pp add "Refaktorisiere db.py" --dir /pfad -p 5
pp add --file prompts.txt
pp list --status pending

Web-UI (:8420)

  • Prompt + Strg+Eingabe
  • Fähigkeiten für Claude
  • Zeitplan-Voreinstellungen
  • Statusfilter
  • Details: Tokens, Kosten, Modell

Auto-Aktualisierung 5s, einzelne HTML-Datei.

Telegram-Bot

Autorisierung: Kontakt teilen (PP_TG_ALLOWED_PHONES). Schritt-für-Schritt: Prompt → Anbieter → Priorität → Verzeichnis → Zeitplan.

Befehle: /skills, Aufgabenliste mit Paginierung, Details mit Buttons [Antworten|Löschen].

Umgang mit Ratenbegrenzungen

Erkennung über stderr: "rate limit", "429", "quota exceeded".

Exponentieller Backoff:

def compute_next_run(retry_count: int) -> datetime:
    delay = min(BASE_DELAY * (2 ** retry_count), MAX_DELAY)
    jitter = delay * 0.1 * (random.random() * 2 - 1)
    return datetime.now(timezone.utc) + timedelta(seconds=delay + jitter)

Verzögerungen: 60s → 120s → ... → 3600s + ±10% Jitter. Nach max_retries — fehlgeschlagen.

Unterhaltungen fortsetzen

Claude könnte fragen: "auth.py oder auth_v2.py?". Aufgabe speichert session_id. Im Bot/UI: 💬 Antworten → neue Aufgabe mit --resume <session_id>.

Wichtige Punkte

  • Single-threaded Worker garantiert keine Rennbedingungen für API-Limits.
  • WAL SQLite + Absturzwiederherstellung für Zuverlässigkeit.
  • Drei Schnittstellen: CLI für Geschwindigkeit, UI/Bot für Bequemlichkeit.
  • Exponentieller Backoff mit Jitter für Ratenbegrenzungen.
  • Unterstützung für Fähigkeiten und Claude-Code-Sitzungswiederaufnahme.

— Editorial Team

Advertisement 728x90

Weiterlesen