Os 4 lugares onde dá pra rodar o Claude Code (e o que cada um deixa cair)
Uma sessão na nuvem clona o seu repositório numa VM nova da Anthropic — então as suas `skills`, os seus agentes e todo servidor MCP adicionado com `claude mcp add` não estão lá. Escolher a superfície é escolha de capacidade, não de interface. Aqui vai a regra de decisão por tipo de tarefa.
- #claude-code
- #vs-code
- #cli
- #setup
- #workflow
Tem um detalhe que mudou a minha cabeça sobre esse assunto. Uma sessão na nuvem em claude.ai/code roda numa VM nova, gerenciada pela Anthropic, com o seu repositório clonado dentro dela — e a documentação é direta sobre o que isso significa: o seu ~/.claude/CLAUDE.md, as suas skills/, agents/ e commands/ de usuário, e todo servidor MCP que você já adicionou com claude mcp add não estão disponíveis. Só viaja o que está commitado no repositório. E, do outro lado, a extensão do VS Code traz uma cópia própria do CLI embutida, mas não coloca o claude no seu PATH — por isso muita gente jura que tem o Claude do terminal e não tem.
Ou seja: "estou usando o Claude no lugar errado?" é a pergunta errada. A certa é outra: que superfície esse tipo de tarefa exige, e essa superfície ainda tem a minha configuração?
As 4 superfícies, pelo que só elas fazem
O CLI no terminal — o conjunto completo. É a única superfície com --print e o Agent SDK, então a única que você consegue colocar num script ou no CI; a única que roda agent teams; e a única com o conjunto inteiro de comandos e skills. Também é a única que mantém o ! para um comando rápido de shell e o tab completion — dois recursos que o painel do VS Code não tem. Melhor para: tudo que é automatizado, tudo que roda sem você por perto e tudo que precisa de um comando que as interfaces gráficas só expõem em parte.
A extensão do VS Code — a superfície de revisão. O texto que você seleciona já entra no contexto sozinho; Option+K (Alt+K no Windows/Linux) transforma a seleção numa referência do tipo @app.ts#5-10. No modo Plan, o VS Code abre o plano como um documento Markdown completo em que você deixa comentários inline antes do Claude mexer em qualquer coisa — só isso já justifica a troca num refactor arriscado. E @terminal:name puxa a saída de um terminal pro prompt, sem copiar e colar. Exige VS Code 1.94.0 ou superior. Melhor para: trabalho que você precisa ler linha por linha antes de aceitar.
A aba Code do app de desktop — a superfície de paralelismo. E repare: é uma aba diferente da aba Chat, que é o que a maioria das pessoas chama de "o app de desktop". Cada sessão ganha o próprio git worktree automaticamente (no CLI você precisa passar --worktree na mão), guardado em <project-root>/.claude/worktrees/. É também a única superfície que aceita anexo de imagem e PDF — no CLI isso consta como "não disponível" — e tem o /btw (Cmd+;), um side chat que lê a sua conversa principal mas não devolve nada pra ela. Melhor para: três ou quatro tarefas ao mesmo tempo sem elas brigarem pelos seus arquivos.
A web (claude.ai/code) — a superfície assíncrona, em research preview para os planos Pro, Max e Team. As sessões rodam na infraestrutura da Anthropic e sobrevivem a você fechar o notebook; dá pra acompanhar pelo app do celular. Não existe cobrança separada de máquina pela VM — ela consome o mesmo limite de uso do resto. Melhor para: trabalho longo e fechado em si mesmo, do tipo que você quer deixar rodando e sair.
A regra de decisão que eu uso
- Vou ler cada
diff? → extensão do VS Code. Odiffnativo, somado ao fato de você poder editar a proposta do Claude dentro do própriodiffantes de aceitar, é o ponto todo. - São três tarefas independentes? → aba Code do desktop.
Worktreeautomático significa não montar o isolamento na mão. - Precisa rodar sem mim — de madrugada ou enquanto eu estou em reunião? → sessão na web/nuvem.
- Tem
script,pipeou automação no meio? →CLI. Nenhuma interface gráfica tem--print. - Todo o resto →
CLI. Ele é o conjunto completo, então você nunca perde um recurso por começar ali.
Deixe a sua configuração portátil (a parte que todo mundo pula)
A regra da VM na nuvem é simples: o repositório viaja, a sua pasta de usuário não. O CLAUDE.md do projeto, os hooks de .claude/settings.json, .claude/rules/, .claude/skills/, .claude/agents/, .claude/commands/ e o .mcp.json chegam todos junto com o clone. Nada que esteja no escopo de usuário chega — e o claude mcp add escreve exatamente na sua config de usuário, que é por isso que os seus servidores MCP desaparecem na nuvem. Declare os servidores do projeto no .mcp.json.
# 1. Tire de ~/.claude e coloque no repositório a config que você realmente usa
mkdir -p .claude/agents .claude/skills .claude/commands
mv ~/.claude/agents/code-reviewer.md .claude/agents/
# 2. Commite — é isso que a VM na nuvem vai ver
git add CLAUDE.md .claude .mcp.json && git commit -m "chore: portable claude config"
git push # --cloud clona do GitHub, não do seu disco, então dê push antes
# 3. Dispare uma tarefa assíncrona e traga de volta depois
claude --cloud "run the test suite and fix whatever breaks"
claude --teleport # escolhe a sessão da nuvem E faz checkout da branch dela
Duas pegadinhas antes de você depender disso. --cloud e --teleport não aparecem no claude --help, mesmo com o CLI aceitando os dois. E a passagem de bastão a partir do terminal é de mão única: você puxa uma sessão da nuvem com --teleport, mas não empurra uma sessão do terminal pra cima. Só o app de desktop faz isso, pelo menu Continue in, que envia a sua branch mais um resumo da conversa — e exige working tree limpo.
Por que isso pesa mais em São Paulo do que em San Francisco
Num horário brasileiro trabalhando com time americano ou europeu, a divisão de superfícies é o seu protocolo de passagem de bastão. Fim do seu dia: claude --cloud naquela migração que ninguém quer ficar vigiando. Ela segue rodando enquanto você dorme e não liga se o seu notebook está fechado. Na manhã seguinte, claude --teleport traz aquela sessão e a branch dela direto pro seu terminal — e um colega cinco fusos adiante pôde acompanhar o progresso o tempo todo. Isso não é truque de produtividade: é como você deixa de ser a pessoa cujo trabalho só é visível dentro do próprio horário. Só cuidado pra não confundir as duas flags: --resume só reabre o histórico desta máquina, então ele nunca vai listar uma sessão da nuvem.
Uma ressalva pra quem não está no GitHub: clonar e abrir pull request exigem GitHub. Repositórios no GitLab e no Bitbucket podem ser enviados como bundle local, mas a sessão não consegue empurrar o resultado de volta pro remoto.
Hoje: rode which claude. Se voltar vazio enquanto o painel do VS Code funciona normalmente, você estava rodando uma superfície e achando que tinha duas — instale o CLI avulso. Depois rode ls ~/.claude/agents ~/.claude/skills e mova pro .claude/ do seu repositório aquele que você sentiria falta de verdade.
Fontes
Continue lendo
Mais guias parecidos com este.
Os 7 níveis do Claude Code — ache o seu, suba um
A maioria dos engenheiros empaca no nível 3, tratando o Claude Code como um terminal mais esperto. Aqui está a escada, do chat aos times de agentes — com o arquivo ou comando exato que te sobe cada degrau.
O settings.json que acaba com os pedidos de permissão
As regras de permissão são a única configuração do Claude Code que soma entre arquivos em vez de substituir. Entendendo isso, dá pra montar uma allowlist que se sustenta — e parar de aprovar o mesmo comando quarenta vezes por dia.
Por que o Claude ignora o seu CLAUDE.md
Seu CLAUDE.md não é configuração — é uma mensagem que o Claude lê e tenta seguir. Esse detalhe explica toda regra que ele insiste em furar, e muda a forma de escrever o arquivo.