2f7a9d4c56580b39332bdde1425fe6cba4191166
- Settings persistentes (modelo padrão, workdir, max concurrent) - Import/export de agentes via JSON - Agendamentos persistentes com restore no startup - Edição de agendamentos e tarefas existentes - Filtros e busca em todas as seções - Isolamento de WebSocket por clientId - Autenticação via AUTH_TOKEN e CORS configurável - Graceful shutdown com cancelamento de execuções - Correção: --max-tokens removido (flag inválida do CLI) - Correção: pipeline agora verifica exit code e propaga erros - Correção: streaming de output em pipelines via WebSocket - Permission mode bypassPermissions como padrão - Página de configurações do sistema - Contagem diária de execuções no dashboard - Histórico de execuções recentes
Agents Orchestrator
Painel administrativo web para orquestração de agentes Claude Code. Crie, configure e execute múltiplos agentes com diferentes personalidades, modelos e diretórios de trabalho — tudo a partir de uma interface visual.
Funcionalidades
- Gerenciamento de agentes — Crie agentes com nome, system prompt, modelo (Sonnet/Opus/Haiku), diretório de trabalho e tags. Ative, desative, edite ou exclua a qualquer momento.
- Execução de tarefas — Execute tarefas sob demanda em qualquer agente ativo. Templates rápidos incluídos (detecção de bugs, revisão OWASP, refatoração, testes, documentação, performance).
- Terminal em tempo real — Acompanhe a saída dos agentes via WebSocket com streaming chunk-a-chunk. Indicador de status de conexão e filtro por execução.
- Agendamento cron — Agende tarefas recorrentes com expressões cron. Presets incluídos (horário, diário, semanal, mensal).
- Pipelines — Encadeie múltiplos agentes em fluxos sequenciais. A saída de cada passo alimenta o próximo via template
{{input}}. Ideal para fluxos como "analisar → corrigir → testar". - Dashboard — Visão geral com métricas (agentes, execuções ativas, agendamentos), atividade recente e status do sistema.
- Exportação — Exporte a configuração completa de qualquer agente em JSON.
Pré-requisitos
- Node.js 18+
- Claude Code CLI instalado e autenticado (
claudedisponível no PATH)
Instalação
git clone <repo-url>
cd agents-orchestrator
npm install
Uso
# Produção
npm start
# Desenvolvimento (hot reload)
npm run dev
Acesse http://localhost:3000 no navegador. A porta pode ser alterada via variável de ambiente PORT.
Como funciona
Criando um agente
- Clique em Novo Agente no header ou na seção Agentes
- Configure nome, system prompt, modelo e diretório de trabalho
- Salve — o agente aparecerá como card na listagem
Executando uma tarefa
- No card do agente, clique em Executar
- Descreva a tarefa ou use um template rápido
- Opcionalmente adicione instruções extras
- A execução inicia e o terminal abre automaticamente com streaming da saída
Criando um pipeline
- Vá em Pipelines → Novo Pipeline
- Adicione pelo menos 2 passos, selecionando um agente para cada
- Opcionalmente defina um template de input usando
{{input}}para referenciar a saída do passo anterior - Execute o pipeline fornecendo o input inicial
Agendando uma tarefa
- Vá em Agendamentos → Novo Agendamento
- Selecione o agente, descreva a tarefa e defina a expressão cron
- A tarefa será executada automaticamente nos horários configurados
Arquitetura
server.js Express + WebSocket na mesma porta
src/
routes/api.js API REST (/api/*)
agents/
manager.js CRUD + orquestração de agentes
executor.js Spawna o CLI claude como child_process
scheduler.js Agendamento cron (in-memory)
pipeline.js Execução sequencial de steps
store/db.js Persistência em JSON (data/*.json)
public/
index.html SPA single-page
css/styles.css Estilos (Inter, JetBrains Mono, Lucide)
js/
app.js Controlador principal + WebSocket client
api.js Client HTTP para a API
components/ UI por seção (dashboard, agents, tasks, etc.)
data/
agents.json Agentes cadastrados
tasks.json Templates de tarefas
pipelines.json Pipelines configurados
O executor invoca o binário claude com --output-format stream-json, parseia o stdout linha a linha e transmite os chunks via WebSocket para o frontend em tempo real.
API REST
| Método | Endpoint | Descrição |
|---|---|---|
GET |
/api/agents |
Listar agentes |
POST |
/api/agents |
Criar agente |
GET |
/api/agents/:id |
Obter agente |
PUT |
/api/agents/:id |
Atualizar agente |
DELETE |
/api/agents/:id |
Excluir agente |
POST |
/api/agents/:id/execute |
Executar tarefa no agente |
POST |
/api/agents/:id/cancel/:executionId |
Cancelar execução |
GET |
/api/agents/:id/export |
Exportar agente (JSON) |
GET |
/api/tasks |
Listar tarefas |
POST |
/api/tasks |
Criar tarefa |
PUT |
/api/tasks/:id |
Atualizar tarefa |
DELETE |
/api/tasks/:id |
Excluir tarefa |
GET |
/api/schedules |
Listar agendamentos |
POST |
/api/schedules |
Criar agendamento |
DELETE |
/api/schedules/:taskId |
Remover agendamento |
GET |
/api/pipelines |
Listar pipelines |
POST |
/api/pipelines |
Criar pipeline |
GET |
/api/pipelines/:id |
Obter pipeline |
PUT |
/api/pipelines/:id |
Atualizar pipeline |
DELETE |
/api/pipelines/:id |
Excluir pipeline |
POST |
/api/pipelines/:id/execute |
Executar pipeline |
POST |
/api/pipelines/:id/cancel |
Cancelar pipeline |
GET |
/api/system/status |
Status geral do sistema |
GET |
/api/executions/active |
Execuções em andamento |
Eventos WebSocket
O servidor envia eventos tipados via WebSocket que o frontend renderiza no terminal:
| Evento | Descrição |
|---|---|
execution_output |
Chunk de texto da saída do agente |
execution_complete |
Execução finalizada com resultado |
execution_error |
Erro durante execução |
pipeline_step_start |
Início de um passo do pipeline |
pipeline_step_complete |
Passo do pipeline concluído |
pipeline_complete |
Pipeline finalizado |
pipeline_error |
Erro em um passo do pipeline |
Stack
- Backend: Node.js, Express, WebSocket (ws), node-cron, uuid
- Frontend: HTML, CSS, JavaScript vanilla (sem framework, sem bundler)
- Ícones: Lucide
- Fontes: Inter (UI), JetBrains Mono (código/terminal)
- Persistência: Arquivos JSON em disco
Licença
MIT
Description
Languages
JavaScript
82.1%
CSS
9.1%
HTML
8.6%
Shell
0.2%