Estado: guia operativa inicial
Fecha: 2026-05-29
El runner local permite ejecutar tareas de Komandesk en una maquina concreta del usuario cuando el trabajo necesita acceso a archivos, repositorios, plantillas, credenciales locales o modelos locales.
No es acceso remoto automatico al disco desde SaaS. El disco local solo es accesible si el usuario instala, autoriza y mantiene vivo el runner en esa maquina.
Usa runner local si:
Usa repo/remoto si:
Usa SaaS worker si:
local_machine vinculado al proyecto.El runner necesita:
Ejemplo conceptual:
OPS_API_BASE=https://ops.example.com/api
OPS_WORKSPACE_IDS=1
OPS_RUNNER_TOKEN=ops_runner_xxx
OPS_RUNNER_ID=macbook-aj-local
OPS_RUNNER_ALLOWED_PATHS=/Users/user/proyectos/cliente
SUPPORTED_AGENT_SLUGS=opencode,codex
SUPPORTED_MODELS=gpt-5,gpt-5-mini,local-qwen-coder
npm run runner:local:doctor
npm run runner:local
El launcher tambien mantiene compatibilidad con OPS_SERVICE_TOKEN/WORKER_ID para workers internos, pero el modo local debe preferir OPS_RUNNER_TOKEN y OPS_RUNNER_ALLOWED_PATHS.
Si el token del runner esta acotado a uno o varios workspaces, define OPS_WORKSPACE_IDS.
Esto evita llamadas de descubrimiento innecesarias y deja claro que cola debe revisar el runner.
Este flujo es para uso asistido, no para cliente final sin soporte.
Readiness de ejecucion.Runner local, indicar la ruta permitida y crear la vinculacion.Preflight runner local desde el mismo panel.Flujo equivalente por API:
OPS_API_BASE, OPS_RUNNER_TOKEN, OPS_RUNNER_ID y OPS_RUNNER_ALLOWED_PATHS.SUPPORTED_AGENT_SLUGS, por ejemplo opencode,codex.
npm run runner:local:doctor
npm run runner:local:doctor -- --offline
FAIL.PASS, arrancar el proceso:
npm run runner:local
El doctor comprueba:
SUPPORTED_AGENT_SLUGS;opencode, codex y claudecode;git, node y npm;POST /api/local-runners/heartbeat cuando no se usa --offline.El doctor no imprime el token y no debe usarse para guardar credenciales personales.
La vinculacion base usa local_runner_bindings y tokens API revocables.
Flujo operativo:
POST /api/local-runners.POST /api/local-runners/heartbeat.worker_heartbeats con el runner_id, agentes y modelos declarados.Contrato tecnico interno: docs/architecture/local-runner-contract.md.
En el cockpit del proyecto deben verse estos estados:
local_machine vinculado.Si hay target local pero no hay heartbeat, el proyecto no debe considerarse listo para runner local.
La primera tarea debe ser pequena y reversible.
Checklist recomendado:
project_path y working_folder quedan dentro de OPS_RUNNER_ALLOWED_PATHS;ai de runtime cuando completa o falla una ejecucion; revisa la nota antes de cerrar.No empezar con deploy, migraciones, borrados o cambios masivos.
OPS_RUNNER_ALLOWED_PATHS vacio.OPS_RUNNER_TOKEN ausente en modo online.SUPPORTED_AGENT_SLUGS no instalado o no autenticado.Si aparece cualquiera de estos bloqueos, crear o actualizar una tarea de setup y registrar tiempo antes de intentar ejecutar trabajo real.
Los modelos locales pertenecen al runner, no al SaaS.
El runner debe declarar que modelos puede usar. Komandesk puede coordinar la tarea, pero no debe prometer disponibilidad de un modelo local si el runner no lo anuncia o si el usuario no lo tiene instalado.
Reglas minimas:
Se puede vender como:
> Ejecucion local supervisada para proyectos que necesitan acceso a archivos o modelos del usuario.
No se debe vender como:
> El SaaS entra en tu ordenador y ejecuta cualquier cosa solo.