PromptPilot: Un Programador de Colas para Herramientas CLI de IA
PromptPilot te permite encolar tareas para herramientas CLI de IA como Claude Code, Codex y Qwen. La herramienta ejecuta prompts según una programación mediante CLI, interfaz web o bot de Telegram. Soporta prioridades, reintentos ante límites de tasa y recuperación de sesiones. El trabajador procesa una tarea a la vez, evitando carreras por límites de API.
Escenarios del mundo real: calentar límites antes del trabajo, usar cuotas sobrantes antes de fin de mes, encolar tareas remotamente mediante bot. Las tareas se almacenan en SQLite con modo WAL para concurrencia.
Casos de Uso Prácticos
La herramienta resuelve problemas cotidianos de desarrolladores:
- Calentar límites: Programa un prompt ligero para las 5:00 AM para que la sesión comience temprano. Para las 9:00 AM, el límite está parcialmente usado; a las 10:00 AM — se reinicia.
- Límite de tasa nocturno: Tarde en la noche, encola una tarea para la hora de reinicio — el resultado está listo por la mañana.
- Lanzamiento remoto: Desde un taxi mediante bot, envía una auditoría de código — al regresar, el límite se ha refrescado, tarea completada.
- Ajustes móviles: Añade validación a payments.py con pruebas directamente desde Telegram.
- Habilidades de Claude: Invoca una habilidad como demo-invite.md mediante /skills en el bot o un botón en la UI.
Ejemplo de lanzamiento CLI:
pp add "Escribe pruebas para api.py" --dir C:\Projects\PromptPilot -p 1 -a "2026-04-01T05:00"
Arquitectura del Sistema
Interfaces (CLI, Web UI, Bot TG) escriben en SQLite (~/.promptpilot). El trabajador sondea la cola cada 5s, lanza un subproceso con el CLI de IA.
Interfaces → SQLite (WAL) → Trabajador (sondeo 5s) → subproceso (claude.exe | codex | qwen)
Servidor: FastAPI + JS UI
Bot: API de Telegram
Los procesos son independientes:
- Trabajador: Monohilo, una tarea a la vez. Ante límite de tasa — retroceso exponencial.
- Servidor: REST en :8420, UI JS vanilla.
- Bot: Diálogos paso a paso, autorización por número de teléfono.
Recuperación de fallos: Al inicio, las tareas en ejecución se revierten a pendientes.
Instalación y Configuración
Clona el repositorio, instala editable:
git clone https://github.com/your/promptpilot
cd PromptPilot
pip install -e .
Crea .env:
PP_CLAUDE_EXE=C:\Users\usuario\.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
Lanzando Servicios
Modo CLI:
pp worker # procesa cola
pp server # http://127.0.0.1:8420
pp bot # Telegram
pp start # trabajador + servidor
Bandeja (.exe para Windows): Doble clic — icono en bandeja (🟢/🟠/⚫). Compilación: \.build.ps1 → dist/pp.exe (40MB, autocontenido).
PowerShell: \.start.ps1 (todos los servicios), \.stop.ps1.
Interfaces de Gestión
CLI
pp add "Refactoriza db.py" --dir /ruta -p 5
pp add --file prompts.txt
pp list --status pending
Web UI (:8420)
- Prompt + Ctrl+Enter
- Habilidades para Claude
- Preajustes de programación
- Filtros de estado
- Detalles: tokens, costo, modelo
Auto-refresco 5s, archivo HTML único.
Bot de Telegram
Autorización: comparte contacto (PP_TG_ALLOWED_PHONES). Paso a paso: prompt → proveedor → prioridad → dir → programación.
Comandos: /skills, lista de tareas con paginación, detalles con botones [Responder|Eliminar].
Manejo de Límites de Tasa
Detección mediante stderr: "rate limit", "429", "quota exceeded".
Retroceso exponencial:
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)
Retrasos: 60s → 120s → ... → 3600s + ±10% jitter. Tras max_retries — fallida.
Continuando Conversaciones
Claude podría preguntar: "¿auth.py o auth_v2.py?". La tarea guarda session_id. En bot/UI: 💬 Responder → nueva tarea con --resume <session_id>.
Puntos Clave
- Trabajador monohilo garantiza sin condiciones de carrera para límites de API.
- SQLite WAL + recuperación de fallos para fiabilidad.
- Tres interfaces: CLI para velocidad, UI/bot para comodidad.
- Retroceso exponencial con jitter para límites de tasa.
- Soporte para habilidades y reanudación de sesiones de Claude Code.
— Editorial Team
Aún no hay comentarios.