OpenCode Web: boa ferramenta e um padrão perigoso

Traduzido do inglês. Leia o original em English.


A alternativa melhor?

Faz um tempo que uso o OpenCode e em muita coisa ele encaixa melhor para mim do que o Claude Code. Ele conversa com vários provedores como Ollama e Anthropic, é código aberto e trocar de modelo no meio da tarefa é rápido.

Ele também traz um modo web com opencode web que transforma a CLI num aplicativo de navegador. Isso é prático e ao mesmo tempo é a parte mais arriscada da ferramenta se você não prestar atenção.

O risco

Rodar opencode web sobe um servidor. Se você amarrar em 0.0.0.0 para um notebook da sua rede alcançar você acabou de colocar um endpoint de execução remota de código na interface que aquela máquina tiver.

A interface web executa comandos, edita arquivos e chega numa shell. É para isso que ela existe. Sem autenticação quem achar a porta leva tudo isso.

A exposição

Eu verifiquei se isso já estava acontecendo no mundo real com o FOFA e a consulta title="OpenCode".

Consulta no FOFA.info buscando instâncias do OpenCode

Encontrei 32 hosts expostos na hora.

Resultados do FOFA mostrando 32 instâncias web do OpenCode expostas

Trinta e dois parece pouco para um buscador e não é. São 32 ambientes de desenvolvimento alcançáveis pela internet aberta. O OpenCode é fácil de personalizar então uma build que muda o título não aparece aqui de jeito nenhum.

Como proteger

O OpenCode traz um jeito de fechar a interface web. Você tem que ligar.

1. Coloque uma senha

Coloque uma senha antes de subir o servidor para ninguém alcançar a interface sem ela.

Rode este comando antes de iniciar o servidor web.

opencode --set-password <your-strong-password>

Você também pode definir a variável de ambiente OPENCODE_SERVER_PASSWORD no lugar.

2. Não exponha para a internet

Não encaminhe a porta para a internet a não ser que tenha uma VPN ou túnel na frente. Mantenha em 127.0.0.1 ou numa rede local que você controla.

Conclusão

Eu recomendo o OpenCode. Uma ferramenta que reescreve seus arquivos e roda sua shell precisa ser tratada como tal.

Coloque a senha antes de iniciar. Essa é a lição inteira.