Meu Mac mini morreu. Sem drama — ele simplesmente parou de ser uma máquina em que eu podia confiar, e o sensato era apagar o disco e reinstalar tudo do zero.
Já dancei essa dança muitas vezes. O ritual nunca muda: reinstalar o sistema, depois passar uma noite inteira reinstalando tudo. Homebrew. Node. Python. Uma dúzia de ferramentas de linha de comando que você nem lembra ter instalado. E, três semanas depois, você descobre a que esqueceu, porque alguma coisa que funcionava parou de funcionar.
Desta vez, tentei algo diferente.
Instalei o Chrome e rodei um comando no Terminal para instalar o próprio harness. Essa foi a lista inteira. Depois, pedi que ele configurasse o resto.
O Chrome não é enfeite nessa história. É o único aplicativo com interface gráfica que eu realmente quero, e é também o navegador que o agente controla quando uma tarefa precisa de um. As ferramentas de navegador são declaradas na config do harness como todo o resto, não instaladas à mão.
O harness é a parte que eu vinha ignorando
Nos últimos dois anos, pensei nas ferramentas de codificação com IA quase sempre em termos do modelo. Qual modelo é mais inteligente, qual é mais barato, qual escreve código de frontend melhor. Já cancelei assinaturas por causa dessa pergunta e escrevi sobre isso mais de uma vez.
O que eu vinha subestimando é o harness — a coisa que de fato fica entre mim e a máquina. O modelo fornece a inteligência. O harness fornece as mãos, a memória de como eu trabalho e a interface.
Nesta reconstrução, o OpenCode foi o harness e o DeepSeek V4.1 Flash foi o modelo. Mas parei de acreditar que qualquer uma das duas camadas deva estar presa a uma única escolha, porque as duas se escolhem por critérios completamente diferentes.
Modelos eu escolho por quatro coisas: o quão inteligente ele é, a velocidade com que gera (tokens por segundo, algo que percebo muito mais do que esperava), quanto custa e o que acontece com os dados que envio a ele.
Custo merece mais do que o preço de tabela, porque o preço de tabela não é o que você paga. O número que importa é a taxa de acerto do cache. Quando o harness consegue manter um contexto estável, a maior parte da entrada vem do cache e a conta desaba — minha taxa de acerto de cache da DeepSeek costuma ficar acima de 99%. Dois modelos com o mesmo preço por token podem diferir enormemente no que você de fato gasta, dependendo de o seu harness ser capaz de manter um cache.
Também não faço tudo passar por um único modelo. Tarefas diferentes pedem modelos diferentes, e um modelo gratuito muitas vezes dá conta de um trabalho mecânico — gastar um modelo de ponta nisso é desperdício puro.
Harnesses eu escolho por preferência. Interface e hábito. Uso o OpenCode porque meus hábitos moram lá, e rodo o harness da própria DeepSeek ao lado dele porque gosto de trabalhar nos dois. No trabalho, uso outro ainda — o Antigravity CLI conduzindo o Gemini 4 Argon ou 3.8 Flash — porque esse trabalho tem outro formato: eu entrego um plano e ele trabalha nele por horas.
Nenhum benchmark decide nada disso, do jeito que decide um modelo. Você precisa saber do que precisa e escolher por isso.
Em agosto, escrevi sobre migrar para um único modelo e um único harness sem nomear a coisa que de fato mudou para mim. Aquele post terminava com uma nota de que eu começaria a usar mais o Flash, porque, aquele preço, não havia motivo para não usar. Este post é isso, com uma correção: único era o instinto errado.
Essa distinção soa acadêmica até você reconstruir um computador com ela. Aí ela deixa de ser acadêmica muito rápido. Um harness que consegue rodar comandos, ler e escrever arquivos, instalar pacotes e tentar conferir o próprio trabalho não é uma caixa de autocomplete. Ele está mais para uma camada de sistema operacional — e, quando você tem uma, a lista de coisas que você mesmo instala fica bem curta.
O fluxo de trabalho, passo a passo
O padrão foi o mesmo todas as vezes, e não é como eu costumava trabalhar:
- Descreva o resultado, não os passos. Nada de "aqui está o comando do brew", mas "preciso conseguir rodar esse tipo de script localmente, configure isso".
- Deixe o agente instalar e configurar, inclusive consertar a coisa que ele acabou de quebrar.
- Verificar — essa parte ainda é minha. O agente consegue mostrar exatamente o que rodou, e é isso que torna a verificação barata.
- Quando não consigo verificar algo, eu faço sozinho. Chaves de serviço e credenciais de SSH são as duas coisas que criei à mão e não entreguei.
- Leia o que ele de fato fez, e espere uma resposta errada plausível em algum momento. Não cada linha — o suficiente para saber o que mudou na minha máquina, e o suficiente para notar a mudança que parece certa e não é.
A diferença em relação às minhas antigas reinstalações é mais fácil de mostrar do que de descrever:
| Minhas antigas reinstalações | Esta | |
|---|---|---|
| Instalado à mão | O sistema operacional e, depois, uma noite inteira de Homebrew, Node, Python e uma dúzia de ferramentas de CLI | Chrome, mais um comando para o harness |
| Todo o resto | Eu, ao longo de uma noite | O agente, quando solicitado |
| Onde o estado fica | Serviços locais, runtimes, imagens de container | Um arquivo de configuração e uma conexão que autorizei uma vez |
| O que se acumula | Um sedimento de cada experimento | Nada instalado "por via das dúvidas" |
Duas coisas tornam isso possível. Uma é que os harnesses mantêm a configuração em arquivos que eu consigo ler e editar — dá para ver exatamente o que está conectado e mudar. A outra é que um número crescente dos meus servidores MCP é remoto. Supabase, Resend e Vercel são URLs que autorizei uma vez, não serviços no meu disco. Os locais rodam via npx sob demanda, então não ficam instalados até o momento em que eu os uso.
Minha máquina costumava guardar serviços. Agora ela guarda um arquivo de configuração e um token, e os serviços vivem em outro lugar.
O disco continuou vazio
Não foi minha intenção fazer um benchmark disso, então trate como observação, não como medição. Mas o número é difícil de ignorar: comparado à minha configuração antiga, agora tenho cerca de 60 GB mais de espaço livre na mesma máquina.
Para uma máquina com SSD soldado, isso não é erro de arredondamento. Armazenamento é uma das poucas coisas que você não consegue atualizar depois num Mac moderno, e o preço reflete isso. Sessenta gigabytes de volta são uma fatia significativa do que o próximo nível teria custado.
Explicar para onde ele foi é mais fácil do que provar. Algumas ferramentas agora rodam sob demanda em vez de viverem permanentemente no disco, e o hábito de instalar coisas com antecedência foi desaparecendo, porque pedir depois é barato.
De moldado por aplicativos a moldado por intenção
Aqui está a mudança, e eu ainda estou tentando descobrir até onde ela vai.
A maior parte da minha vida na computação foi moldada por aplicativos. Quero fazer uma coisa, então procuro o aplicativo que faz essa coisa, instalo, aprendo a interface dele e passo a viver dentro das opiniões dele. O aplicativo é a unidade de trabalho.
Trabalhar deste jeito é moldado por intenção. Eu descrevo o que preciso. Algo com a capacidade de agir na máquina descobre quais peças são necessárias, configura tudo e faz. O aplicativo vira um detalhe de implementação, e às vezes um que eu nunca instalo conscientemente.
É uma mudança maior do que "a IA escreve meu código". Programar nunca foi meu gargalo; o gargalo era a distância entre querer uma coisa e tê-la. Essa distância agora é muito menor.
É também por isso que eu vivo dizendo, meio de brincadeira, que talvez eu acabe no Linux. O motivo de eu ter ficado no macOS por anos nunca foi o sistema operacional — era a configuração acumulada que eu teria de reconstruir. Se o seu ambiente é basicamente um arquivo de configuração e um agente competente, a plataforma por baixo importa menos do que importava. Não vou migrar esta semana. Só não tenho mais certeza do que me impediria.
Preciso admitir que não vi isso chegando. Se você tivesse me dito cinco anos atrás que um Mac zerado, mais um navegador, mais um agente seriam suficientes para eu voltar a trabalhar, eu teria assumido que você estava descrevendo uma demo, não uma terça-feira à noite tranquila.
O que eu não estou afirmando
Algumas ressalvas honestas, porque já li entusiasmo suficiente sobre isso para desconfiar do meu próprio.
- Agora o harness é o lock-in. A escolha de modelo está ficando mais fácil de mudar, mas meus hábitos, minhas configurações e meu fluxo de trabalho vivem no harness. É uma dependência real, e eu estou de olho nela.
- "Ele instalou tudo" não é o mesmo que "eu entendo minha máquina". Conheço minha configuração menos do que quando eu a montava à mão. Isso é um custo real, e é a razão de existir o passo cinco acima.
- Isso não é de graça. Cerca de $60 nos últimos 30 dias, e esse número não é só da minha codificação — ele cobre a API da DeepSeek por trás de alguns dos meus produtos em produção. Para dar contexto, o mesmo hábito me custava cerca de $200 por mês um ano atrás. (Escrevi sobre essa mudança em agosto.)
Perguntas frequentes
O que é um harness na codificação com IA?
Um harness é o programa que conecta um modelo a um ambiente real. O modelo raciocina; o harness dá ferramentas a ele — rodar comandos, ler e escrever arquivos, chamar serviços externos — e administra a conversa e as permissões em volta delas. O OpenCode é deliberadamente agnóstico em relação a modelo, e é por isso que consegui trocar de modelo nele sem mudar mais nada. Claude Code e Codex também são harnesses, embora cada um seja construído em torno dos modelos do próprio fornecedor. Minha regra prática: escolha um modelo pela capacidade, pela velocidade, pelo custo e pelo tratamento dos dados; escolha um harness por você gostar de fato de trabalhar nele.
Dá mesmo para configurar um computador novo só com um navegador e um agente de IA?
Para a minha configuração — um desenvolvedor que trabalha principalmente num terminal e num navegador — em grande parte sim, e com um comando, não zero. Você precisa de um navegador para chegar ao modelo e à internet, e de uma forma de instalar o próprio harness, além de estar disposto a verificar o que o agente fez. Eu não assumiria que isso vale para a máquina de um designer ou de um contador.
Por que essa configuração usa tanto menos disco?
Cerca de 60 GB menos do que a minha configuração antiga, por três razões. Alguns serviços agora rodam remotamente e são acessados por uma URL em vez de instalados localmente. Algumas ferramentas rodam sob demanda em vez de viverem permanentemente no disco. E o hábito de pré-instalar coisas "por via das dúvidas" desaparece quando pedir depois é barato.
Ainda surpreso que "instale o Chrome e veja no que dá" tenha virado um computador que funciona.
Abraços, Chandler :P