Retour à l'accueil

PromptPilot pour CLI IA : planificateur de tâches

PromptPilot — planificateur de file d'attente pour CLI IA comme Claude Code. Prend en charge CLI, Web UI, bot Telegram avec gestion des limites de taux et reprise de session. Architecture sur SQLite + worker mono-threadé assure la fiabilité.

Automatisation CLI IA avec PromptPilot : bots et files d'attente
Advertisement 728x90

PromptPilot : Un planificateur de file d'attente pour les outils CLI d'IA

PromptPilot vous permet de mettre en file d'attente des tâches pour des outils CLI d'IA comme Claude Code, Codex et Qwen. L'outil exécute les prompts selon un planning via CLI, interface web ou bot Telegram. Il prend en charge les priorités, les nouvelles tentatives en cas de limites de débit et la récupération de session. Le worker traite une tâche à la fois, évitant ainsi les conflits de limites d'API.

Scénarios réels : préchauffer les limites avant le travail, utiliser les quotas restants avant la fin du mois, mettre en file d'attente des tâches à distance via bot. Les tâches sont stockées dans SQLite avec le mode WAL pour la concurrence.

Cas d'utilisation pratiques

L'outil résout les problèmes quotidiens des développeurs :

Google AdInline article slot
  • Préchauffage des limites : Planifiez un prompt léger pour 5h00 afin que la session démarre tôt. À 9h00, la limite est partiellement utilisée ; à 10h00 — elle se réinitialise.
  • Limite de débit nocturne : Tard le soir, mettez en file d'attente une tâche pour l'heure de réinitialisation — le résultat est prêt le matin.
  • Lancement à distance : Depuis un taxi via bot, envoyez un audit de code — au retour, la limite est rafraîchie, tâche terminée.
  • Ajustements mobiles : Ajoutez une validation à payments.py avec des tests directement depuis Telegram.
  • Compétences Claude : Invoquez une compétence comme demo-invite.md via /skills dans le bot ou un bouton dans l'interface utilisateur.

Exemple de lancement CLI :

pp add "Écrire des tests pour api.py" --dir C:\Projects\PromptPilot -p 1 -a "2026-04-01T05:00"

Architecture système

Les interfaces (CLI, interface web, bot TG) écrivent dans SQLite (~/.promptpilot). Le worker interroge la file d'attente toutes les 5s, lance un sous-processus avec le CLI d'IA.

Interfaces → SQLite (WAL) → Worker (interrogation 5s) → sous-processus (claude.exe | codex | qwen)
Serveur : FastAPI + interface JS
Bot : API Telegram

Les processus sont indépendants :

Google AdInline article slot
  • Worker : Monothread, une tâche à la fois. En cas de limite de débit — attente exponentielle.
  • Serveur : REST sur :8420, interface JS vanilla.
  • Bot : Dialogues étape par étape, autorisation par numéro de téléphone.

Récupération après plantage : Au démarrage, les tâches en cours sont remises en attente.

Installation et configuration

Clonez le dépôt, installez en mode éditable :

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

Créez .env :

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

Lancement des services

Mode CLI :

pp worker  # traiter la file d'attente
pp server  # http://127.0.0.1:8420
pp bot     # Telegram
pp start   # worker + serveur

Tray (.exe pour Windows) : Double-cliquez — icône dans la barre des tâches (🟢/🟠/⚫). Construction : \.build.ps1 → dist/pp.exe (40MB, autonome).

PowerShell : \.start.ps1 (tous les services), \.stop.ps1.

Interfaces de gestion

CLI

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

Interface web (:8420)

  • Prompt + Ctrl+Entrée
  • Compétences pour Claude
  • Présélections de planning
  • Filtres de statut
  • Détails : jetons, coût, modèle

Rafraîchissement automatique 5s, fichier HTML unique.

Bot Telegram

Autorisation : partagez le contact (PP_TG_ALLOWED_PHONES). Étape par étape : prompt → fournisseur → priorité → répertoire → planning.

Commandes : /skills, liste des tâches avec pagination, détails avec boutons [Répondre|Supprimer].

Gestion des limites de débit

Détection via stderr : "rate limit", "429", "quota exceeded".

Attente exponentielle :

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)

Délais : 60s → 120s → ... → 3600s + ±10% de jitter. Après max_retries — échec.

Poursuite des conversations

Claude peut demander : "auth.py ou auth_v2.py ?". La tâche enregistre session_id. Dans le bot/interface : 💬 Répondre → nouvelle tâche avec --resume <session_id>.

Points clés

  • Worker monothread garantit l'absence de conditions de concurrence pour les limites d'API.
  • SQLite WAL + récupération après plantage pour la fiabilité.
  • Trois interfaces : CLI pour la vitesse, interface/bot pour la commodité.
  • Attente exponentielle avec jitter pour les limites de débit.
  • Prise en charge des compétences et reprise de session Claude Code.

— Editorial Team

Advertisement 728x90

Lire ensuite