Open source · AGPL-3.0 · self-hosted
Agentes de código que provam que o trabalho está pronto.
Harness auto-hospedado para contas de agente de código: tarefa só está pronta com evidência (integrada, no ar, checagens passando) e recibo. Contrato, fila, revisão, CI, merge, deploy.
git clone https://github.com/BRK13/krohnos.git kronos && cd kronos
docker compose build painel
docker compose run --rm --no-deps --entrypoint kronos painel init
docker compose up -d
curl -fsS http://127.0.0.1:8787/saudeStatus: o repositório público ainda está recebendo o código (hoje tem o README e o roadmap). O snapshot com o compose.yml chega com a publicação; os comandos de instalação desta página são os passos que ele vai rodar.
Requisitos
- Uma máquina Linux (VPS ou PC) com Docker 24+ e o plugin Docker Compose v2 (
docker compose version). - 2 GB de RAM livres e uns 4 GB de disco (a imagem leva Python, Node 22,
git,ghe o CLI do Claude Code). - Opcional: um domínio (ou subdomínio) apontado para o servidor, se quiser abrir o painel pela internet com TLS.
- Opcional, depois: um token do GitHub e uma chave de API do Linear (o assistente pede; dá para pular).
Nenhum segredo entra na imagem. Eles vivem em volumes do Docker (cofre, dados, home).
Instalar
Cinco passos, do servidor limpo ao painel no ar.
# 1. baixe o código
git clone https://github.com/BRK13/krohnos.git kronos && cd kronos
# 2. construa a imagem (uma só serve os 4 serviços)
docker compose build painel
# 3. configure: o kronos init cria o kronos.toml (volume config), a chave mestra, o cofre e o SEU usuário de dono
docker compose run --rm --no-deps --entrypoint kronos painel init
# 4. suba os 4 serviços (painel, agenda, webhook, mcp)
docker compose up -d
# 5. confira: deve responder ok
curl -fsS http://127.0.0.1:8787/saudeDepois abra o painel (veja Proxy TLS abaixo), entre com o e-mail e a senha do dono e siga o assistente em /comecar.
Atenção: Não ponha o painel na internet antes de rodar o kronos init (passo 3). Enquanto a instalação não tem dono, quem abrir /comecar primeiro vira o dono. O kronos init cria o dono antes de o painel subir; quando o assistente termina, /comecar passa a dar 404.
Configuração
O kronos.toml fica no volume config (gravável: o assistente /comecar o reescreve). Segredos nunca entram no toml: a chave mestra e o cofre ficam no volume cofre; os usuários do painel (só o hash da senha), o projeto e os exemplos ficam em dados.
O kronos init pergunta tudo (domínio, nome e e-mail do dono, senha, organização do GitHub, primeiro projeto). Para pular as perguntas, troque o final do comando do passo 3 por init --sim ...:
docker compose run --rm --no-deps --entrypoint kronos painel init --sim --dominio kronos.minhaempresa.com --dono-email ana@exemplo.test --projeto-dominio meusite.com.brUse --exemplo no lugar de --projeto-dominio para os projetos de demonstração. A senha nunca vai pela linha de comando: deixe o init gerar uma (aparece uma vez, guarde) ou use --dono-senha-env NOME_DA_VARIAVEL.
Rodar o init de novo é seguro: toml, chave, cofre, usuários e projeto que já existem são mantidos. Para mudar a porta do painel:
KRONOS_PAINEL_PORTA=9000 docker compose up -dProxy TLS
O painel fala HTTP na porta 8787. Ponha um proxy com TLS na frente. O cookie de sessão é Secure: o navegador só o guarda em HTTPS (ou em http://localhost). O webhook do Linear (8790) e o MCP (4181) ficam só no 127.0.0.1 do servidor.
Caddy, duas linhas, certificado automático:
kronos.minhaempresa.com {
reverse_proxy 127.0.0.1:8787
}Conectar as contas de agente
O assistente de primeira execução em /comecar passa por quatro coisas: GitHub, Linear, o primeiro projeto e a primeira conta do Claude. Tudo, menos o primeiro projeto, pode ser pulado e feito depois.
Para ver o painel cheio antes de configurar o seu, rode a demonstração. Ela enche uma instalação nova com dados inventados e marcados (demo --limpar remove só eles, e ela recusa uma pasta de dados que já tem dado real). Reinicie o painel depois para ele ler os novos projetos:
docker compose run --rm --no-deps --entrypoint kronos painel demo
docker compose restart painelAtualizar
Estes são os comandos padrão do Docker Compose para esta instalação (não fazem parte do guia de instalação do projeto). Baixe o código, reconstrua a imagem e reinicie os serviços; os volumes guardam seus dados.
git pull && docker compose build painel && docker compose up -dDesinstalar
De novo os comandos padrão do Docker Compose para esta instalação. O primeiro para e remove os contêineres e mantém os volumes:
docker compose downO segundo apaga também os volumes:
docker compose down -vAtenção: -v apaga o cofre, os dados e a config, incluindo a chave mestra e os logins do painel. Não tem como desfazer: faça backup antes.
Projeto
Toda tarefa passa por contract → queue → agents → review → CI → merge → deploy. O README do projeto relata 1.313 pull requests integrados em 7 dias (7 a 14 de outubro de 2026), feitos com quatro contas do Claude Code e o Codex como revisor.
- GitHub
- Licença: AGPL-3.0
- Política de segurança: relate vulnerabilidades em privado pelos GitHub Security Advisories
- Roadmap
- Releases (changelog)