O que é e porque importa
O Claude Code consegue trabalhar durante horas mesmo quando não estás. Uma noite escrevi-lhe mesmo: «Vou dormir, tens plenos poderes.» Na manhã seguinte, a build estava online.
Mas só funciona se lhe deixares três coisas: um objetivo claro, uma forma de verificar sozinho o próprio trabalho e um limite àquilo em que pode mexer.
Sem objetivo, anda às voltas. Sem verificação, diz-te que está tudo bem. Sem limites, pode fazer estragos. Com os três, de manhã encontras o trabalho e uma lista de decisões para aprovar, não surpresas.
1. A mensagem da noite
Escrevo-a na sessão do Claude Code aberta no projeto, como última mensagem antes de ir para a cama. Copia-a e preenche as partes entre [ ].
Vou dormir. Tens plenos poderes sobre este trabalho, até amanhã de manhã. OBJETIVO [Uma só frase, concreta. Ex.: "A nova página de preços, online no site de testes".] Terminaste quando: [ex. "a página abre no telemóvel e os botões levam ao pagamento de teste"]. COMO VERIFICAS SOZINHO - Corre os testes depois de cada alteração e não avances se algum falhar. - Abre a página no browser e tira uma captura de ecrã de cada ecrã terminado. - Não me digas "feito" sem a prova: o comando que usaste e o resultado. LIMITES (em que NÃO podes mexer) - A base de dados real, os dados dos utilizadores, os pagamentos reais. - Não apagues ficheiros, não publiques na App Store, não mudes as chaves. - Se para avançares tiveres de fazer uma destas coisas: para e escreve-me. SE FICARES BLOQUEADO Tenta dois caminhos diferentes. Se nenhum funcionar, escreve onde paraste e passa à parte seguinte. AMANHÃ DE MANHÃ Deixa-me um resumo: o que fizeste, o que decidiste sozinho e porquê, o que precisas de mim.
Como preencher as partes entre [ ]
- Objetivo: uma só coisa. «Arranja o site» não é um objetivo. «A nova página de preços, online no site de testes» é.
- «Terminaste quando»: escreve o que verias tu, com os teus olhos, se o trabalho estivesse feito. É a linha que lhe diz quando parar.
- Os testes têm de já existir e passar antes de ires dormir. Se não tens nenhum, o trabalho desta noite pode ser precisamente escrevê-los.
- O Claude só consegue tirar as capturas de ecrã se tiver uma forma de abrir o browser, por exemplo ligado ao Chrome. Se não tiver, tira essa linha ou põe uma verificação que ele possa fazer a partir do terminal.
2. Antes de apagar a luz
Se o Mac entra em repouso, o Claude também para. Antes de colar a mensagem, faço quatro coisas:
- Guardo tudo com um commit. Assim, de manhã, nas alterações vejo só o trabalho da noite.
- Ligo o carregador.
- Deixo o portátil aberto. Fechar a tampa põe-no em repouso, mesmo com as definições que o mantêm acordado.
- Impeço o repouso. Na app de desktop do Claude há a opção Keep computer awake, em Settings > This computer > System. A partir do terminal, uso um comando que o Mac já tem: caffeinate.
A partir do terminal, abro o Claude Code assim:
caffeinate -i claude
O caffeinate -i mantém o Mac acordado enquanto o Claude Code estiver aberto. Quando o fechas, o Mac volta a comportar-se como sempre. O ecrã, esse, pode desligar-se, não muda nada.
3. Não o deixes parado à espera de um sim
No modo Manual, o Claude Code pede-te autorização antes da maioria das alterações e dos comandos. De noite, isso quer dizer que à primeira pergunta fica parado até acordares.
Por isso, antes de ir dormir, vejo em que modo estou. No terminal mudas com Shift+Tab e vês o modo escrito por baixo do prompt. De noite uso um destes dois:
- auto: o Claude trabalha sem te perguntar nada e um segundo modelo verifica as ações antes de correrem, bloqueando as arriscadas (deploys em produção, apagamentos em massa, force push). Também tem em conta os limites escritos na mensagem. Se não o encontrares com Shift+Tab, a tua conta ou o teu modelo não o têm: usa o outro.
- acceptEdits: aceita sozinho as alterações aos ficheiros e alguns comandos básicos, como criar ou mover pastas. Para os outros comandos perguntaria, por isso vai junto com as regras allow que vês mais abaixo, para o deixar correr pelo menos os testes.
Uma coisa a saber sobre o modo auto: se bloquear uma ação 3 vezes seguidas, ou 20 no total, entra em pausa e o Claude volta a pedir-te autorização. Se de manhã o encontrares parado numa pergunta, vê o que queria fazer: é precisamente uma das decisões que te cabem a ti.
O que salta todas as permissões (bypassPermissions), esse não uso: a documentação diz para o usar só em contentores ou máquinas virtuais isoladas, não no teu Mac.
4. Limites a sério: regras e hooks
Uma regra escrita na mensagem é um pedido; um hook é um muro. A documentação também o diz, por outras palavras: as permissões são aplicadas pelo Claude Code, não pelo modelo. O que escreves na mensagem orienta o que o Claude tenta fazer, mas não muda o que lhe é permitido.
As regras allow e deny
São linhas no ficheiro .claude/settings.json do projeto. Allow: o que o Claude pode fazer sem perguntar. Deny: o que nunca pode fazer, em nenhum modo. Se uma coisa está ao mesmo tempo em allow e em deny, ganha deny. Também as vês e alteras escrevendo /permissions dentro do Claude Code.
De dia, peço ao Claude que as prepare:
Acrescenta ao ficheiro .claude/settings.json deste projeto uma regra allow para correr os testes sem me perguntar, e regras deny para: git push, os comandos rm, as alterações ao ficheiro .env. Mostra-me o ficheiro antes de o guardares.
Deve ficar mais ou menos assim (em vez de npm test vai o comando de testes do teu projeto):
{
"permissions": {
"allow": ["Bash(npm test *)"],
"deny": [
"Bash(git push *)",
"Bash(rm *)",
"Edit(./.env)"
]
}
}Atenção: uma regra bloqueia o comando escrito dessa forma, não o mesmo programa corrido de outra maneira. Por isso os limites ficam também na mensagem, e é melhor que as chaves reais nem sequer estejam no projeto.
O hook para os comandos perigosos
Um hook é um comando que o Claude Code corre sozinho num momento preciso. O que precisas aqui chama-se PreToolUse: dispara antes de o Claude usar uma ferramenta, por exemplo antes de cada comando no terminal. O script olha para o comando e, se terminar com o código 2, o Claude Code bloqueia-o e passa ao Claude o motivo, para que ele mude de caminho. Também bloqueia comandos que uma regra allow deixaria passar.
Não tens de o escrever tu. Peço-o ao Claude, sempre de dia:
Cria um hook PreToolUse para este projeto, em .claude/settings.json, que bloqueie os comandos Bash que contenham: rm -rf, git push --force, [o comando com que publicas a tua app]. O script tem de terminar com o código 2 e escrever o motivo do bloqueio. Depois testa-o: mostra-me que um comando proibido é mesmo travado e que um comando normal passa.
Depois escrevo /hooks no Claude Code e confirmo que aparece na lista, por baixo de PreToolUse.
5. Na manhã seguinte
A primeira coisa que leio é o resumo, sobretudo a parte «o que decidiste sozinho». É aí que estão as coisas para aprovar. Depois corro eu um dos comandos que ele usou como prova: se a mim me sair um resultado diferente, essa prova não vale.
E na mesma sessão pergunto:
Mostra-me a lista dos ficheiros que alteraste esta noite. Para cada decisão que tomaste sozinho, diz-me o que acontece se eu a anular.
Os erros mais comuns
- Deixá-lo no modo Manual: ao primeiro pedido de autorização fica parado até de manhã. Antes de saíres, escolhe o modo e prepara as regras allow.
- Um objetivo vago, tipo «melhora a app»: trabalha a noite toda e não sabes em quê. Escreve uma só coisa, com a linha «terminaste quando».
- Fechar a tampa ou deixá-lo a bateria: o Mac entra em repouso ou fica sem bateria a meio da noite. Deixa-o aberto, ligado ao carregador, com o caffeinate ou a opção que o mantém acordado.
- Confiar só nos limites escritos na mensagem: são um pedido e, numa conversa longa, podem perder-se. Para as coisas que nunca podem acontecer, põe uma regra deny ou um hook.
Checklist
- Um objetivo numa frase e a linha «terminaste quando»
- Os testes existem e passam antes de a noite começar
- Tudo guardado com um commit antes da noite
- Modo escolhido: auto, ou acceptEdits com as regras allow
- Regras deny e hook testados de dia
- Carregador ligado, tampa aberta, Mac que não entra em repouso
- A mensagem da noite colada, com os teus limites
Perguntas frequentes
Tenho de deixar a sessão aberta durante a noite?
Sim, a sessão trabalha no teu Mac. Se precisas que continue com o computador desligado, o Claude Code tem sessões na cloud, mas é outra configuração.
O modo auto não chega, sem regras nem hooks?
Já bloqueia sozinho muitas ações arriscadas, mas a própria documentação diz que não garante a segurança. E os limites que escreves no chat, ele relê-os da conversa: se a conversa for compactada, podem perder-se. Para as coisas que nunca podem acontecer, regra deny ou hook.