Pular para o conteúdo principal

Claude Code Auto Mode e Channels: desenvolva código de qualquer lugar

Aprenda a combinar o Auto Mode do Claude Code com Channels no Telegram para rodar um loop autônomo de escrever-testar-depurar direto do seu celular.
Atualizado 21 de abr. de 2026  · 14 min lido

Imagine que você está no trem. Seu notebook em casa está roendo um refactor de 30 minutos. O celular vibra: o Telegram mostra um resumo do seu próprio bot do Claude Code. Os testes passaram, aqui está o que mudou, aqui está o que quebrou. Você digita a próxima instrução, bloqueia o celular e volta à leitura.

Duas funcionalidades do Claude Code fazem esse ciclo funcionar. O Auto Mode remove os pedidos de aprovação que travariam a sessão. Os Channels encaminham mensagens do Telegram, Discord ou iMessage para a sessão ao vivo como se você mesmo tivesse digitado.

Este tutorial mostra como configurar ambos do zero e rodar um loop de escrever-testar-depurar pelo celular.

Se você é novo nos LLMs da Anthropic, recomendo fazer antes nosso curso Introduction to Claude Models.

Pré-requisitos

Para acompanhar este tutorial, você vai precisar de:

  • Claude Code v2.1.83 ou superior (Auto Mode requer v2.1.83, Channels precisam da v2.1.80)
  • Bun runtime instalado (todo plugin de Channels precisa dele; Node e Deno não funcionam)
  • Um plano Claude nos tiers Max, Team ou Enterprise, ou acesso via API. O Auto Mode não está disponível no Pro; não há add-on que o habilite (nem via uso extra)
  • Uma conta do Telegram no seu celular
  • Python 3.10 ou superior na máquina host
  • Uma máquina que possa ficar acordada enquanto você estiver fora (tampa do notebook aberta, desktop ligado ou um servidor)

O que é o Auto Mode do Claude Code (e por que combiná-lo com Channels)?

Claude Code pede confirmação antes de fazer qualquer coisa que saia do projeto. Os próprios dados da Anthropic mostram que os usuários aprovam 93% desses prompts. Nesse ritmo, os prompts adicionam atrito sem trazer mais segurança.

O Auto Mode substitui esse padrão por um classificador. Cada chamada de ferramenta vai para um modelo Claude separado (Sonnet 4.6) que revisa a ação e a permite ou bloqueia. Execuções longas e sem supervisão deixam de pausar a cada trinta segundos para pedir aprovação.

O classificador roda em um modelo diferente do que escreve o código. Um modelo principal comprometido ou mal direcionado não consegue induzi-lo a aprovar uma chamada ruim. Uma sonda separada examina saídas de ferramentas (conteúdo de arquivos, buscas na web, stdout do shell) para identificar tentativas de prompt injection antes que cheguem ao contexto do Claude.

Two-layer defense: input probe + transcript classifier around Claude

Nem toda chamada de ferramenta passa pelo classificador. Leituras, buscas de texto, navegação de código e edições em arquivos dentro do diretório do projeto rodam por um caminho rápido, sem revisão. Comandos de shell, buscas na web, qualquer coisa que toque arquivos fora do projeto e qualquer spawn de subagente vão para o classificador.

Three-tier permission flow

A Anthropic publicou os números no anúncio do Auto Mode. Em 10.000 chamadas reais de ferramentas, o pipeline gerou taxa de 0,4% de falso positivo. Em 52 ações excessivamente ousadas, a taxa de falso negativo foi de 17%. Trocar --dangerously-skip-permissions pelo Auto Mode é ganho certo. Trocar revisão humana cuidadosa não é: o classificador deixa passar uma em cada seis.

Quando o classificador bloqueia uma chamada, o Claude recebe a negativa como resultado da ferramenta. Espera-se que o Claude encontre um caminho mais seguro, não que contorne o bloqueio. Após três bloqueios consecutivos ou vinte no total, o Auto Mode devolve o controle para você. Execuções headless com claude -p encerram em vez disso.

Auto Mode vs bypassPermissions

Comecei a usar o Auto Mode esperando um bypassPermissions mais esperto. Minha crítica ao bypass era permitir tudo: ler arquivos .env, editar configs e por aí vai.

O Auto Mode corrige isso. Operações em arquivos sensíveis e remoções explícitas são negadas por padrão. A exceção é nomear o arquivo no prompt, permitindo que o classificador autorize a edição. Melhor que o bypass, que não tinha essa checagem.

O que me surpreendeu no Auto Mode é que ele é um modo de decisão, não só de permissão. Eu costumava encadear várias skills do Claude Code em sequência, um pipeline para implementar ou depurar uma feature. Com bypassPermissions, o Claude parava entre etapas e pedia permissão para continuar.

Eu curtia esse padrão: a pausa era onde eu revisava o trabalho ou dizia para o Claude seguir. No Auto Mode, o Claude decide sozinho se tem contexto suficiente para ir para a próxima etapa. Os checkpoints de revisão em que eu confiava somem. Você vai curtir as execuções mais rápidas ou sentir falta das pausas com humano no loop.

A outra surpresa foi na direção oposta. Com bypassPermissions, quando eu pedia para o Claude editar sua própria config ou skills, ele recusava. Com ou sem bypass, ele me perguntava. No Auto Mode, o Claude tem mais liberdade aí: arquivos de skill, configurações em .claude/ e a própria configuração dele podem ser editados sem pedir. Útil para skills autossustentáveis, mas um risco se você espera que o Claude não mexa na própria config.

Auto Mode vs outros modos de permissão

Quatro modos vêm com o Claude Code, e eles ficam num espectro entre "aprovar tudo" e "não aprovar nada". Abaixo vai a versão curta. A versão completa está na documentação oficial.

Modo

O que roda sem pedir

Melhor para

Perfil de risco

default

Somente leituras

Trabalho sensível, revisando cada ação

Mínimo. Toda escrita, shell e rede pedem confirmação

acceptEdits

Leituras, edições de arquivo, comandos comuns de filesystem (mkdir, mv, cp)

Iterar no código que você vai revisar depois

Baixo. Shell e rede ainda pedem

plan

Só leitura; o Claude propõe um plano, mas não executa nada

Explorar uma base de código, revisar mudanças propostas antes de qualquer escrita

Mínimo. Nada executa sem trocar de modo

auto

Tudo, com verificações do classificador em segundo plano

Tarefas longas, trabalho assíncrono e remoto, reduzir fadiga de prompts

Moderado. 0,4% de falso positivo, 17% de falso negativo em ações ousadas

dontAsk

Só ferramentas pré-aprovadas em permissions.allow; o resto é negado automaticamente

Pipelines de CI travados e scripts automatizados com conjunto de ferramentas conhecido de antemão

Baixo, mas allowlists mal configuradas podem bloquear operações legítimas silenciosamente

bypassPermissions

Tudo, exceto paths protegidos

Somente em containers e VMs isolados

Altíssimo. Sem classificador, sem rede de segurança

Minha recomendação: use default para repositórios sensíveis em que toda escrita precisa de um segundo olhar, auto para seus próprios projetos e bypassPermissions só dentro de um container descartável, com o estrago bem contido.

Como os Channels entram na história

Os channels do Claude Code são servidores MCP que enviam eventos para sua sessão em execução. Vamos usar o plugin do Telegram; os plugins de Discord e iMessage funcionam do mesmo jeito. Você envia DM para o bot, o plugin encaminha a mensagem para a sessão e o Claude trabalha nos seus arquivos locais. A resposta volta pelo bot quando a vez termina.

O Claude só te envia mensagem no fim da vez. Não há streaming no meio do turno, nem preview ao vivo do que ele está fazendo no host. Tudo que o Claude executar durante a vez, executou. Você fica sabendo quando o resumo chega. É por isso que o modo de permissão pesa mais via channel do que no terminal.

Os Channels podem encaminhar prompts de permissão para o celular nos modos default ou acceptEdits. Você responde yes ou no pelo Telegram. Para poucos prompts, tudo bem. Em uma sessão real de build-test-debug, vêm dezenas — e tocar em cada um cansa rápido.

O outro extremo é pior. --dangerously-skip-permissions remove os prompts, mas por channel você perde a visualização ao vivo das chamadas de ferramenta do terminal. Nada te avisa que um comando arriscado acabou de rodar. No terminal, o bypass pelo menos permite ver o stream e apertar Esc. No Telegram, você digita um prompt e só descobre o que aconteceu no fim da vez.

O Auto Mode fica no meio do caminho. Nada de spam de prompts. O classificador bloqueia sozinho os movimentos claramente perigosos. A mensagem de fim de vez traz um relato do que rodou. Para trabalho remoto, é o equilíbrio que funciona.

O projeto de demonstração

Eu fiz um demo pequeno chamado libcache. É um CLI em Python que busca metadados de livros na API do OpenLibrary e guarda em cache as respostas em ~/.cache/libcache/.

A stack é propositalmente simples: uv gerencia dependências, typer cuida do CLI, httpx faz as requisições HTTP e pytest roda os testes.

Três pontos sobre o libcache importam.

  1. É multi-arquivo, então um build do zero no modo default empilharia uma dúzia de prompts de permissão.

  2. Tem uma fronteira HTTP, dando ao classificador uma decisão real a tomar.

  3. Termina rápido o bastante para o scaffolding inteiro caber em um único turno do Telegram.

Configurando o Auto Mode e os Channels do Telegram

Três coisas, nesta ordem: máquina host acordada, plugin pareado, Auto Mode ativo. Se qualquer uma falhar, o resto não funciona.

Preparando a máquina host

O Claude Code é um processo local. Quando a máquina dorme, o processo para de receber eventos. O plugin do Telegram não tem onde entregar suas mensagens. Os eventos só chegam enquanto a sessão está aberta.

No macOS, abra um terminal separado e rode:

caffeinate -d

A flag -d evita que a tela durma. Em Linux, você pode mascarar os targets de sleep:

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

Isso é reversível com unmask.

Para algo que dure mais que uma tarde, rode a sessão dentro do tmux. Ele mantém o shell vivo com janelas fechadas e conexões SSH caídas. Inicie uma nova sessão:

tmux new -s claude

Inicie o Claude dentro dela, desacople com Ctrl+B, depois D, e reconecte mais tarde:

tmux attach -t claude

Mais uma coisa antes de iniciar. Qualquer CLI que o Claude possa chamar via Telegram precisa já estar autenticada na host. Logins interativos não rodam pelo celular. Confira o gh, o GitHub CLI que vamos usar hoje:

gh auth status

Se não estiver autenticado, rode gh auth login e conclua o fluxo no navegador. Faça o mesmo com qualquer outro CLI que você queira que o Claude use (aws, gcloud, docker, registries de pacotes) para seus outros projetos.

Instalando e configurando o plugin do Telegram

Instale o Bun se ainda não instalou. No macOS ou Linux:

curl -fsSL https://bun.sh/install | bash

No Windows:

powershell -c "irm bun.sh/install.ps1 | iex"

Confirme a instalação:

bun --version

Depois, crie o bot do Telegram.

Abra o BotFather no Telegram, envie /newbot, escolha um display name e um username terminando em bot (algo como libcache_dev_bot). Copie o token que o BotFather enviar.

Criação de novo bot no BotFather com token

De volta à sessão do Claude Code, instale o plugin:

/plugin install telegram@claude-plugins-official

Se o Claude Code disser que o marketplace não tem, adicione manualmente e tente de novo:

/plugin marketplace add anthropics/claude-plugins-official

Após instalar, recarregue os plugins para os tools do Telegram aparecerem:

/reload-plugins

Configure o bot com o token do BotFather:

/telegram:configure <your_bot_token_here>

O token é gravado em ~/.claude/channels/telegram/.env.

Sucesso do /telegram:configure mostrando token salvo, policy e allowlist vazia

Depois do /telegram:configure, saia completamente do Claude Code (pressione Ctrl+D ou digite /exit) e reinicie. O /reload-plugins nem sempre mostra o código de pareamento no primeiro DM.

Reinicie a sessão, abra o bot no Telegram e envie /start. O bot responde com um código de pareamento de 6 caracteres.

Chat do Telegram mostrando instruções de pareamento e o código de 6 caracteres

No Claude Code, faça o pareamento com o código:

/telegram:access pair <code>

O pareamento é simétrico. Os dois lados precisam concordar para a sessão aceitar mensagens.

Mensagem 'Paired! Say hi to Claude.' no Telegram e confirmação no terminal do Claude Code

Último passo. Trave o bot só para sua conta:

/telegram:access policy allowlist

Quem não estiver no allowlist e mandar DM para o bot será ignorado silenciosamente, sem receber código de pareamento.

Saída do /telegram:access policy allowlist mostrando o diff do access.json e confirmação de lock

Iniciando com Auto Mode e Channels ativos

No diretório do projeto, inicie o Claude com as duas flags:

claude --channels plugin:telegram@claude-plugins-official --permission-mode auto

Uma sessão existente pode trocar para Auto Mode no meio do fluxo: pressione Shift+Tab repetidamente até a barra de status mostrar auto. Para tornar o Auto Mode o padrão em todo lançamento, adicione em ~/.claude/settings.json:

{ "permissions": { "defaultMode": "auto" } }

Terminal mostrando claude iniciado com --channels e --permission-mode auto, indicador do Auto Mode visível

Ao entrar no Auto Mode, o Claude Code remove regras amplas de allow do settings.json. Permissões genéricas como Bash(*), interpretadores com wildcard tipo Bash(python*) e allows gerais de Agent são descartados na entrada e restaurados na saída. Regras estreitas como Bash(pytest) permanecem.

Verifique o setup. Mande qualquer coisa por DM para o bot e veja se recebe resposta. Depois, peça ao Claude para criar um arquivo pequeno no projeto e veja ele surgir sem prompt. Se ambos funcionarem, está tudo pronto.

Auto Mode e Channels do Claude Code em ação

Vamos ver como dar o pontapé pelo Telegram na prática.

Um prompt, muitas chamadas de ferramenta, zero aprovações

Envie um prompt inicial pelo Telegram. O que importa é o tipo de tarefa: algo que empilharia uma dúzia de aprovações no modo default. Para o libcache, o prompt foi mais ou menos:

Create a Python CLI that fetches book metadata from OpenLibrary and caches it to disk, use uv for deps, typer for the CLI, httpx for requests, pytest for tests, scaffold the directory and add a README, and when you're done, summarize what you built in under 80 words.

O “summarize in under 80 words” no fim é um hábito específico de channel. As respostas chegam no celular, e celular é ruim para ler saídas longas.

O plugin envia a mensagem do celular para a sessão em execução no host. Ela aparece como um banner ← telegram · <sender>: ... no terminal.

Terminal no meio do turno com banner do Telegram e o Claude criando o scaffold de arquivos

Escritas em arquivos dentro do projeto seguem o caminho rápido e ignoram o classificador. Instalação de dependências, a primeira execução do pytest e o git init final passam pelo classificador e são permitidos por padrão. Nada pausa e o turno roda de ponta a ponta em uma passada.

Fim do turno no terminal mostrando resumo e tempo decorrido

No celular, o resumo é o único retorno durante o turno.

Chat no Telegram mostrando prompt para rodar pytest e a resposta do Claude com a saída literal dos testes

Prompts longos são chatos de digitar no celular. Ditado por voz resolve boa parte e prompts curtos e declarativos funcionam bem. "Scaffold libcache, OpenLibrary + cache em disco, menos de 80 palavras" já basta.

O loop de iteração: pedir, rodar, responder, repetir

Cada follow-up roda o mesmo ciclo. Uma mensagem do Telegram, uma vez de trabalho, um resumo de volta. O resumo é o relato do Claude, não o estado real. Peça para rodar os testes e colar a saída literal:

uv run pytest -v

Peça para dar cat em um arquivo específico. Peça tamanhos de arquivo, contagem de linhas ou o histórico recente de commits:

git log --oneline

O Auto Mode roda chamadas de verificação pelos mesmos caminhos rápidos do resto. O custo de perguntar é baixo. O resultado é uma afirmação que você confere da tela bloqueada, sem ir até o notebook.

Telegram no celular mostrando pedido de 'ship it', resposta com URL do repositório e preview do link do GitHub

Mais uma vez para provar que o loop alcança sistemas externos de verdade. Pelo celular:

push libcache to a new public GitHub repo called libcache, clean commit, decent message, send me the URL when it's up.

O Claude usa o CLI gh autenticado antes e responde com a URL do repositório.

Thread no Telegram: solicitação destrutiva, pausa de segurança, frase de confirmação, escopo de auth faltando, pedido de comando interativo e conclusão final

Quando o Auto Mode funciona, o loop parece silencioso. A próxima seção mostra o que acontece quando não.

Quando o Auto Mode faz você parar

O Auto Mode te interrompe de duas formas.

O classificador bloqueia com força um pequeno conjunto de padrões:

  • pipes curl | bash

  • Force-push para a main

  • Exclusões em massa em storage na nuvem.

Mais suave e mais comum, o próprio Claude pausa em ações que reconhece como irreversíveis. Ambas aparecem do mesmo jeito no celular: sem banner vermelho, sem modal, só texto normal. O Claude nomeia a ação, lista os comandos e pede uma frase de confirmação específica antes de continuar.

Um pedido destrutivo como "delete o projeto, remova também o repo no GitHub" dispara a pausa de irreversibilidade. A resposta detalha os comandos e oferece alternativas mais seguras: arquivar, só local ou só remoto. Ele espera por uma frase escolhida pelo Claude, não um simples sim/não.

Open mode reagindo e pedindo confirmação

A mesma captura mostra um segundo efeito. No meio da remoção, o Claude esbarrou em um escopo ausente no CLI gh (o token não tinha delete_repo). Em vez de deixar o trabalho pela metade, o Claude pausou e pediu para eu rodar um comando interativo no terminal:

gh auth refresh -h github.com -s delete_repo

O Auto Mode não consegue tocar fluxos de autenticação via navegador, e o Claude não tentou contornar o escopo faltante.

Histórico da sessão não é consentimento implícito. Mesmo para um repo que o próprio Claude criou quinze minutos antes, na mesma sessão, a pausa ainda dispara na exclusão. O mesmo limite de 3 consecutivos / 20 no total se aplica. Interrupções empilhadas acabam devolvendo o controle ao humano.

Dois bugs conhecidos para ficar de olho. Às vezes as mensagens não entregam quando o Claude Code está ocioso no prompt do REPL (issue #48404). Depois de uma resposta, o plugin às vezes para de encaminhar novas mensagens até ser cutucado (issue #36477). Workarounds: manter um turno em andamento ou reiniciar a sessão. Ainda sem correção.

Ajustando as regras de segurança do Auto Mode

Para a maior parte do trabalho no seu próprio código, os padrões do Auto Mode bastam. Quando quiser reforçar paths específicos ou aliviar outros, comece lendo o que a Anthropic definiu para você:

claude auto-mode defaults

Isso imprime as regras embutidas de allow e block em JSON. A estrutura é feita para ser estendida, não substituída: edite a base, não reescreva do zero. Toda regra removida força o classificador a decidir — e cada decisão abre chance de falso negativo.

Auto Mode decision order: allow or deny rules, then read-only or in-project, then classifier, then safer path retry

Adicione regras específicas do projeto no settings.json na chave permissions. Allows estreitos seguem para o Auto Mode sem mudanças. Os amplos são descartados na entrada. Uma regra como Bash(pytest) ou Bash(gh pr create *) é específica o suficiente para o classificador confiar no seu julgamento. Na prática: um allow estreito por ferramenta que o projeto realmente usa, sem wildcards.

Se seu workflow dependia de prompts de permissão como gates de revisão entre estágios do pipeline, traga esses checkpoints de volta explicitamente. Adicione regras ask para os padrões de ferramenta ou paths onde você quer que o Claude pare. Ou mova esse workflow para acceptEdits em vez de auto para manter o checkpoint de prompt em tudo, exceto edições dentro do projeto.

Um recurso pouco usado: o classificador trata limites declarados na conversa como sinais de bloqueio. Diga ao Claude: "não faça push até eu revisar", e ele bloqueia ações correspondentes mesmo quando as regras padrão permitiriam. É uma alternativa simples a escrever uma regra formal só para aquela sessão.

Para ver a configuração efetiva após seu settings.json mesclar com os padrões:

claude auto-mode config

Admins Enterprise podem desativar o recurso para toda a organização via permissions.disableAutoMode: 'disable' em managed settings.

Conclusão

Auto Mode mais Channels transforma o Claude Code de uma ferramenta presa à mesa em um parceiro assíncrono que você comanda de qualquer lugar. O classificador decide quais chamadas de ferramenta passam. O Claude decide quando uma ação é séria o suficiente para pausar. Você decide os prompts, o escopo e as regras. O terminal é só mais um lugar de onde você pode trabalhar, não o único.

Para se aprofundar, recomendo nossos guias sobre Claude Code Remote Control, Claude Code Plugins e Claude Code Best Practices.

Claude Code Auto Mode e Channels: perguntas frequentes

O que é o Auto Mode do Claude Code?

Auto Mode é um modo de permissão no Claude Code (v2.1.83+) em que um modelo classificador separado (Sonnet 4.6) revisa cada chamada de ferramenta e a permite ou bloqueia, para que sessões longas e sem supervisão não travem em prompts de aprovação.

Como o Auto Mode é diferente de --dangerously-skip-permissions?

O modo bypass remove todas as checagens, então leituras de arquivos .env, edições de config e comandos destrutivos passam direto. O Auto Mode mantém um classificador na frente de cada chamada consequente, nega operações em arquivos sensíveis por padrão e devolve o controle para você quando bloqueia chamadas demais em sequência.

O que são os Channels do Claude Code?

Channels são plugins baseados em MCP que encaminham mensagens do Telegram, Discord ou iMessage para sua sessão do Claude Code em execução. Você manda DM para o bot, o plugin direciona a mensagem para o host e o Claude responde no fim do turno no mesmo chat.

Quais tiers do claude.ai suportam o Auto Mode?

O Auto Mode está disponível nos tiers Max, Team e Enterprise do claude.ai, ou via API. Não está disponível no Pro, e não há add-on nem pacote de uso extra que o habilite.

É seguro usar o Auto Mode em qualquer projeto?

É seguro o suficiente para seus próprios projetos, mas não substitui revisão humana. A Anthropic reporta 0,4% de falso positivo e 17% de falso negativo em ações ousadas — uma em cada seis pode passar. Para repositórios sensíveis, fique no modo default.


Bex Tuychiev's photo
Author
Bex Tuychiev
LinkedIn

Sou um criador de conteúdo de ciência de dados com mais de 2 anos de experiência e um dos maiores seguidores no Medium. Gosto de escrever artigos detalhados sobre IA e ML com um estilo um pouco sarcástico, porque você precisa fazer algo para torná-los um pouco menos monótonos. Produzi mais de 130 artigos e um curso DataCamp, e estou preparando outro. Meu conteúdo foi visto por mais de 5 milhões de pessoas, das quais 20 mil se tornaram seguidores no Medium e no LinkedIn. 

Tópicos

Principais cursos de IA

Programa

AI Engineering with LangChain

21 h
From prompt engineering to agentic systems—develop the complete skill set to build AI applications that scale, with an AI tutor by your side.
Ver detalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

blog

Anunciando a série de codificação conjunta "Torne-se um desenvolvedor de IA

Comece a trabalhar com a IA generativa nesta nova série de código-along. Gratuito por tempo limitado.
DataCamp Team's photo

DataCamp Team

4 min

Tutorial

Primeiros passos com o Claude 3 e a API do Claude 3

Saiba mais sobre os modelos Claude 3, benchmarks de desempenho detalhados e como acessá-los. Além disso, descubra a nova API Python do Claude 3 para geração de texto, acesso a recursos de visão e streaming.
Abid Ali Awan's photo

Abid Ali Awan

Tutorial

Como criar aplicativos LLM com o tutorial LangChain

Explore o potencial inexplorado dos modelos de linguagem grandes com o LangChain, uma estrutura Python de código aberto para criar aplicativos avançados de IA.
Moez Ali's photo

Moez Ali

Tutorial

Criando agentes LangChain para automatizar tarefas em Python

Um tutorial abrangente sobre a criação de agentes LangChain com várias ferramentas para automatizar tarefas em Python usando LLMs e modelos de bate-papo usando OpenAI.
Bex Tuychiev's photo

Bex Tuychiev

Tutorial

Tutorial do DeepChecks: Automatizando os testes de machine learning

Saiba como realizar a validação de dados e modelos para garantir um desempenho robusto de machine learning usando nosso guia passo a passo para automatizar testes com o DeepChecks.
Abid Ali Awan's photo

Abid Ali Awan

Tutorial

Um guia para iniciantes na engenharia de prompts do ChatGPT

Descubra como fazer com que o ChatGPT forneça os resultados que você deseja, fornecendo a ele as entradas necessárias.
Matt Crabtree's photo

Matt Crabtree

Ver maisVer mais