Docker
Imagem com o Omni e os CLIs em versões fixas, para rodar o ai serve em servidor próprio. Inclui Claude Code, Codex, Cursor e Grok. O Antigravity não está incluído, porque não tem instalação por comando.
git clone https://github.com/samuelrms/omni-ai-cli && cd omni-ai-cli
docker compose up -d
docker compose logs omni # chave gerada no primeiro início
docker exec -it omni ai --account login primary
- Login: veja Login sem navegador. Chaves de provedores vão com
docker exec -it omni ai --key <ferramenta>. - Dados: logins, chaves, configuração e cooldowns ficam no volume
omni-home, que sobrevive à recriação do container.docker compose down -vapaga esse volume. - Chave do servidor: sem chave informada, uma é gerada e aparece uma única vez no log. Para definir a sua, use
SMART_AI_SERVER_KEY, ouSMART_AI_SERVER_KEY_FILEcom um Docker secret. Odocker-compose.ymltraz o exemplo. - Porta: publicada só em
127.0.0.1.OMNI_PORTmuda a porta. - Isolamento: roda sem root, com sistema de arquivos somente leitura e sem capabilities.
- Modos:
OMNI_MODE=plan|edits|auto|yolo docker compose up -d(padrão:plan). As ferramentas trabalham em/workspace, no volumeomni-workspace. Para usar uma pasta sua, definaOMNI_WORKSPACE=/caminho, com escrita liberada para o uid 10001. - Risco fora do
plan: os comandos rodam no mesmo usuário que guarda os logins emomni-home. Quem tem a chave pode ler esses logins, então use uma chave por pessoa de confiança e revogue sessões se ela vazar. - Codex: o sandbox dele não inicia no container, porque depende de recursos bloqueados pelo Docker e pelo kernel do host. Ele só usa ferramentas em
yolo, com o container como isolamento. Emplan,editseauto, ele apenas responde, sem ler nem alterar arquivos. - Atualização:
git pull && docker compose up -d --build.ai --updatenão se aplica à imagem. - Imagem pronta:
export OMNI_IMAGE=ghcr.io/samuelrms/omni-ai-cli:latest && docker compose pull omni && docker compose up -d --no-build. Cada release publica a versão elatest, para amd64 e arm64. Para fixar uma versão, troquelatestpelo número, como1.23.0. A imagem inclui CLIs de terceiros, sujeitos aos termos de cada um; o uso da sua conta também segue esses termos.
Para expor em rede, use um proxy reverso com HTTPS, como o Caddy:
omni.example.com {
reverse_proxy 127.0.0.1:8080
}
Risco: o container não enxerga os arquivos da sua máquina, mas enxerga o volume. Quem tem a chave pode pedir a uma ferramenta que leia as credenciais guardadas nele. Trate a chave do servidor como acesso às suas contas.
Este texto vem do README do projeto. Ver o original no GitHub