Claude Code na Prática

Aula 02 · 02/06/2026 — Imersão Claude Code para Economistas, Administradores e Contadores

Vítor Wilher

2 de junho de 2026

Retomando

Aula 02 · 02/06/2026

Onde paramos (26/05 + monitoria 28/05)

  • Fundamentos: o que é um LLM, prompting, comparação de modelos.
  • Anatomia: loop agêntico, tools, janela de contexto, modelos.
  • Setup mínimo já feito: VS Code + extensão Claude Code, e o passeio pelas extensões na monitoria.

O que fazemos agora, antes de entrar em Dados + IA

  • O Digest do Boletim AM ao vivo.
  • Setup completo do ambiente — macOS, Windows e Linux.
  • Missão da semana e preview do que vem.

Roteiro da Aula 02

Bloco Tempo O que acontece
3. Demonstração do Digest 30 min Agente real em produção
4. Setup completo 40 min Gerenciador · Python · Node · Git · ambiente do Digest
5. Próximos passos 10 min Missão da semana · preview

Terminada esta parte, entramos no conteúdo próprio da Aula 2 — Dados + IA.

Bloco 3 · O Digest em ação

30 minutos · demonstração ao vivo

Um agente real, em produção, todo domingo às 7h

Muda o modo

Você já entendeu como o agente pensa e já deixou o setup mínimo pronto.

Antes de fechar a instalação, deixa eu mostrar um agente real, em produção — para você saber exatamente o que vamos construir nas próximas semanas.

Relaxa, observa, não tenta reproduzir agora. Eu rodo no meu Mac. O setup completo vem logo depois — aí sim você fecha o ambiente.

O pipeline completo

Coleta · Síntese · Entrega · Aprofundar — sem clique humano no meio.

Fase 1 · Coleta

  • Caixa Zoho dedicada a newsletters.
  • Filtro nativo do Zoho roteia tudo para a pasta Newsletter.
  • IMAP com imap-tools lê os últimos 7 dias.
  • mark_seen=False — não marca como lido no servidor.
  • BeautifulSoup limpa o HTML (remove <script> e <style>).
  • Trunca cada corpo em 20 000 caracteres.

Por que delegar ao Zoho?

Versão antiga tinha SENDER_PATTERNS no código. techdrops × techdrop.news silenciou fontes inteiras.

Filtro nativo + pasta dedicada = zero acoplamento.

Fase 2 · Síntese

  • Disparada por GitHub Actions — cron 0 10 * * 0 (domingo 07:00 BRT).
  • Claude Opus 4.7 com thinking={"type": "adaptive"}, effort: high.
  • System prompt agrupa por tema (não por fonte).
  • Seção fixa ao final: “Implicações para macroeconomia e mercados”.
  • client.messages.stream(...) — evita timeout em respostas longas.

Calibração honesta. Se a semana só teve emails de boas-vindas, o modelo admite explicitamente em vez de alucinar uma síntese. Por isso Opus 4.7.

~2 minutos do prompt ao Markdown final.

Fase 3 · Entrega

  • Quarto + xelatex renderiza PDF com capa AM, TOC e links clicáveis.
  • WhatsApp Cloud API envia o PDF como template UTILITY (resumo_newsletters).
  • O bot comita .qmd + .pdf de volta no repo (auditoria + histórico).

Ponta a ponta: ~4 minutos. Custo total: menos de US$ 1/mês.

# .github/workflows/sunday-digest.yml
on:
  schedule:
    - cron: "0 10 * * 0"   # domingos 10:00 UTC = 07:00 BRT
  workflow_dispatch:       # botão manual no GitHub

Fase 4 · Aprofundar (sob demanda)

O PDF no WhatsApp traz links de aprofundamento ao lado de cada tema.

  1. Você clica num link do próprio celular.
  2. O link aciona workflow_dispatch com tema=... no GitHub.
  3. O agente roda aprofundar.py "<tema>" — prompt vertical, analítico.
  4. Novo dossiê PDF (mesmo layout AM) chega no mesmo WhatsApp em ~3 min.

O leitor do digest vira o disparador da próxima geração. Zero contexto perdido, zero atrito, mesmo canal de entrega.

Stack tecnológica

Camada Tecnologia
Coleta Python 3.12 + imap-tools + IMAP do Zoho
Parsing beautifulsoup4
LLM Claude Opus 4.7 via anthropic SDK (adaptive thinking)
Render Quarto + xelatex (capa AM · TOC · links)
Entrega WhatsApp Cloud API (template UTILITY)
Orquestração GitHub Actions (cron + workflow_dispatch)
Versionamento Git — bot commita PDFs + .qmd de volta

Tudo o que vamos construir nas 5 aulas — encadeado em um agente real.

O que vocês vão ver agora

Vou abrir o repositório real do Digest no meu Mac e mostrar:

  1. A estrutura do projeto — resumo.py, requirements.txt, .github/workflows/sunday-digest.yml, digests/.
  2. O CLAUDE.md — o “contrato” do projeto.
  3. Uma execução do agente — pipeline ao vivo (ou o último digest gerado).
  4. O loop agêntico em prática — pedir uma pequena melhoria e ver o agente ler o CLAUDE.md, planejar e executar.

O pulo do gato

Reparem em quanto contexto o agente tem do projeto sem eu precisar explicar nada.

Ele sabe que biblioteca usar, que pasta IMAP ler, qual modelo chamar, onde salvar a saída.

Tudo isso vem do CLAUDE.md — não da minha mensagem.

Ensinar o agente uma vez para que ele chegue ao trabalho sabendo as regras.

Metodologia — CRISP-DM aplicado a LLM

O projeto real foi construído seguindo CRISP-DM, adaptado para um pipeline de síntese informacional com LLM:

  • Business Understanding → “sintetizar a semana em PDF semanal”.
  • Data Understanding → newsletters, formato HTML, ruído.
  • Data Preparation → IMAP + BeautifulSoup + truncamento.
  • Modelingprompt engineering + escolha do Opus 4.7.
  • Evaluation → validação qualitativa do resumo.
  • Deployment → GitHub Actions + entrega WhatsApp.

É o que separa um script de um sistema.

Bloco 4 · Setup completo

40 minutos · do zero · macOS, Windows e Linux

Gerenciador de pacotes · Python · Node · Git · ambiente do Digest

Onde paramos no setup

Na Parte 1 (26/05) e na monitoria de 28/05 você já deixou pronto o mínimo: VS Code + extensão Claude Code autenticada, e conheceu o painel de extensões.

Agora fechamos o setup completo — gerenciador de pacotes, Python 3.12, Node, Git e o ambiente do Digest — nos três sistemas. Quem já tem tudo, acompanha e confere.

Contas necessárias: Anthropic (já usada para autenticar a extensão) e GitHub (para o pipeline a partir da Aula 4).

Escolha seu sistema

macOS

Próximos 3 slides.

Instalação via Homebrew.

Apple Silicon ou Intel.

Windows 10 / 11

Pule para a seção Windows (3 slides).

Instalação via winget no PowerShell.

Linux (Ubuntu / Debian)

Pule para a seção Linux (3 slides).

Instalação via apt.

Fedora/Arch seguem o mesmo padrão com seu próprio gerenciador.

A partir de 3.4 (VS Code) o fluxo é o mesmo nos três SOs.

3.1 · macOS — Que Mac você tem?

Abra o Terminal (Cmd + Espaço → “Terminal”) e rode:

uname -m
  • arm64Apple Silicon (M1, M2, M3, M4 — 2020+)
  • x86_64Intel (anteriores a 2020)

Anote o que apareceu.

A diferença importa: o Homebrew instala em caminhos diferentes em cada arquitetura.

3.2 · macOS — Homebrew

O gerenciador de pacotes do Mac. Cole no terminal:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Vai pedir sua senha do Mac — caracteres não aparecem ao digitar. É normal.

No final, o instalador imprime 2-3 linhas “Add Homebrew to your PATH”. Copie e rode exatamente o que aparecer no SEU terminal — os caminhos diferem entre Intel (/usr/local/...) e Apple Silicon (/opt/homebrew/...).

Verificar:

brew --version   # esperado: Homebrew 4.x.x

3.3 · macOS — Python, Node, Git

Uma linha só:

brew install python@3.12 node git

Conferir cada um:

python3 --version    # Python 3.12.x
node --version       # v20.x ou superior
git --version        # 2.40+

Identifique-se ao Git (uma vez na vida):

git config --global user.name "Seu Nome"
git config --global user.email "seu@email.com"

Por que 3.12? É a versão que roda no Digest em produção (GitHub Actions). Replicar evita “funciona na minha máquina, quebra na nuvem”.

3.1 · Windows — O terminal certo

Use o Windows Terminal (já vem no Windows 11; no Win 10 instale pela Microsoft Store). Por padrão ele abre PowerShell — é isso que vamos usar.

Win + XTerminal (ou abra “Windows Terminal” no menu Iniciar).

Conferir se winget está disponível:

winget --version

Vem pré-instalado no Windows 11 e em versões recentes do Windows 10. Se faltar: instale o App Installer pela Microsoft Store.

Por que winget? É o gerenciador oficial da Microsoft — o “Homebrew do Windows”. Atualiza tudo com um comando só (winget upgrade --all).

3.2 · Windows — Instalando tudo

Uma sessão de PowerShell:

winget install -e --id Python.Python.3.12
winget install -e --id OpenJS.NodeJS.LTS
winget install -e --id Git.Git
winget install -e --id Microsoft.VisualStudioCode

Importante: no instalador do VS Code, marque “Adicionar ao PATH” — é o que faz code . funcionar no terminal.

Feche e abra o terminal de novo para o PATH ser recarregado. Sem isso, os comandos abaixo dão “command not found”.

3.3 · Windows — Conferir e configurar Git

Em uma sessão nova do PowerShell:

python --version       # Python 3.12.x
node --version         # v20.x+
git --version          # 2.40+
code --version

Configurar o Git (uma vez):

git config --global user.name "Seu Nome"
git config --global user.email "seu@email.com"

No Windows o executável é python (não python3). Se algum comando der “não reconhecido”, feche todos os terminais e abra um novo — PATH atualizado precisa de sessão limpa.

3.1 · Linux — Gerenciador de pacotes

Estes slides assumem Ubuntu 22.04+ ou Debian 12+ (as distros mais comuns). Fedora/Arch/openSUSE seguem o mesmo padrão — troque apt pelo seu gerenciador.

Atualize a lista de pacotes:

sudo apt update

Se apt show python3.12 não encontrar nada:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update

(Pule este passo se sua distro já oferece o python3.12 nativamente.)

3.2 · Linux — Instalando tudo

Python, Node, Git, build tools:

sudo apt install -y python3.12 python3.12-venv python3-pip \
    nodejs npm git curl wget gpg

Visual Studio Code (repositório oficial da Microsoft)

wget -qO- https://packages.microsoft.com/keys/microsoft.asc \
  | gpg --dearmor | sudo tee /usr/share/keyrings/packages.microsoft.gpg > /dev/null
echo "deb [arch=amd64,arm64,armhf signed-by=/usr/share/keyrings/packages.microsoft.gpg] \
https://packages.microsoft.com/repos/code stable main" \
  | sudo tee /etc/apt/sources.list.d/vscode.list
sudo apt update && sudo apt install -y code

Alternativa rápida (se tiver Snap): sudo snap install code --classic.

3.3 · Linux — Conferir e configurar Git

python3.12 --version    # Python 3.12.x
node --version          # v20+
git --version           # 2.40+
code --version

Configurar o Git (uma vez):

git config --global user.name "Seu Nome"
git config --global user.email "seu@email.com"

Em Ubuntu o nodejs do apt pode estar abaixo de v20. Se for o caso, use o NodeSource:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

3.4 — Visual Studio Code (todos os SOs)

Se você seguiu o caminho do seu SO acima, o VS Code já está instalado. Abra-o uma vez para o sistema confiar nele e feche.

Garantir que o comando code está no PATH:

  • macOS — abra o VS Code → Cmd + Shift + P → digite Shell Command: Install 'code' command in PATH → Enter.
  • Windows — já configurado pelo winget (instalador marca PATH).
  • Linux — já configurado pelo apt (ou pelo snap).

Teste em um terminal novo:

code --version

3.5 — Extensão Claude Code

A extensão inclui o CLI internamente — não precisa instalar o claude separado.

  1. Abra o VS Code.
  2. Painel ExtensionsCmd + Shift + X (macOS) ou Ctrl + Shift + X (Windows / Linux).
  3. Busque Claude Code.
  4. Escolha o publisher Anthropic.
  5. Clique em Install.

Já instalou na Parte 1?

Ótimo — só confirme que o publisher é Anthropic e que está autenticada.

Clones podem capturar credenciais.

Primeira autenticação

  1. Ícone novo (estrela/faísca) no menu lateral esquerdo → clique.
  2. Painel Claude Code abre → Sign in.
  3. Navegador abre → login na conta Anthropic.
  4. Conceda permissão → volta pro VS Code → autenticado.

Ajustes que valem a pena já

  • Auto-accept editsdesligado por enquanto. Liga depois que confiar.
  • Default modelSonnet. Suba para Opus sob demanda (/model opus).

Testando a extensão

mkdir ~/teste-claude && cd ~/teste-claude && code .

O VS Code abre nessa pasta. Clique no ícone do Claude Code e mande:

Liste as ferramentas que você tem disponíveis neste projeto.

Se ele responder com Read, Write, Edit, Bash, WebFetch… ::: {.accent} o setup base está completo. :::

3.6 — Ambiente do Digest

macOS / Linux

mkdir -p ~/imersao-claude-code/digest
cd ~/imersao-claude-code/digest
python3 -m venv .venv
source .venv/bin/activate

Windows (PowerShell)

mkdir $HOME\imersao-claude-code\digest
cd $HOME\imersao-claude-code\digest
python -m venv .venv
.\.venv\Scripts\Activate.ps1

O prompt deve mostrar (.venv) no começo. Toda vez que abrir um terminal novo neste projeto, rode o comando de ativação de novo.

Windows: se Activate.ps1 falhar com erro de política, rode uma vez: Set-ExecutionPolicy -Scope CurrentUser RemoteSigned (responda Y).

Por que venv? Cada projeto tem suas próprias versões de bibliotecas. Sem isolamento, instalar algo novo quebra projetos antigos.

Dependências do Digest

Crie requirements.txt na raiz do projeto:

imap_tools>=1.7
beautifulsoup4>=4.12
anthropic>=0.40
python-dotenv>=1.0
python-dateutil>=2.9

E instale:

pip install -r requirements.txt

macOS / Linux podem usar o atalho cat > requirements.txt << 'EOF' ... EOF. Windows (PowerShell): crie pelo VS Code (code requirements.txt) e cole as linhas.

O que cada biblioteca faz

Biblioteca Função no Digest
imap_tools API moderna sobre IMAP — coleta da pasta Newsletter
beautifulsoup4 Limpa HTML, remove <script> / <style>
anthropic SDK oficial Python da API do Claude
python-dotenv Credenciais em .env, fora do código
python-dateutil Janela deslizante “últimos 7 dias”

Mesmo conjunto que roda em produção no Digest do Boletim AM.

Conferir que tudo importa

macOS / Linux

python3 -c "import imap_tools, bs4, anthropic, dotenv, dateutil; print('OK')"

Windows (PowerShell)

python -c "import imap_tools, bs4, anthropic, dotenv, dateutil; print('OK')"

Se imprimir OK, todas as dependências estão funcionais.

3.7 — Comandos slash essenciais

Comando O que faz
/help Lista todos os comandos
/model Troca o modelo (Sonnet, Opus, Haiku)
/clear Reseta o contexto
/compact Resume a conversa, libera contexto
/config Abre configurações
/init Cria um CLAUDE.md inicial para o projeto

Checklist final do setup

Tudo marcado? Pronto para construir o agente.

Troubleshooting comum

Erro SO Causa
command not found: brew macOS Pulou “Add to PATH” no final do Homebrew
'winget' não é reconhecido Windows Falta App Installer (Microsoft Store)
'python' não é reconhecido Windows Feche todos os terminais e abra um novo
Activate.ps1 cannot be loaded Windows Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
add-apt-repository: not found Linux sudo apt install -y software-properties-common
zsh: command not found: code macOS Faltou Shell Command: Install 'code'
pip install reclama de SSL macOS Usando Python do sistema, não do Homebrew
Extensão não aparece todos Cmd/Ctrl + Shift + PDeveloper: Reload Window
(.venv) não aparece no prompt todos Está fora da pasta — confira com pwd

Bloco 5 · Próximos passos

10 minutos

Missão da semana e preview da Aula 2

Missão até a Aula 3 · 09/06

Uma coisa só: manter o ambiente do Bloco 4 funcionando.

Se chegou aqui, está pronto para o resto da Aula 2. Não tem trabalho de casa além disso.

Onde buscar ajuda durante a semana

  • Monitoria da semana — qualquer erro do setup, qualquer dúvida do Bloco 4. Momento certo para destravar.
  • Plataforma Análise Macro — suporte direto durante toda a semana. Não fique travado em silêncio.
  • Replay desta aula — disponível na plataforma.

Para quem já está com o setup pronto (opcional)

Pode adiantar e começar a replicar o Digest:

  1. Criar uma caixa Zoho ou Gmail dedicada.
  2. Assinar 3-4 newsletters (Data Hackers, The Brief, MoneyDrop, AI Whisper).
  3. Aguardar alguns dias para acumular conteúdo.
  4. Construir o núcleo: coleta IMAP + síntese Claude + Markdown local.

Quem chegar à Aula 3 com isso encaminhado ganha tempo. Quem não, segue tranquilo — as próximas aulas cobrem esse terreno.

O que vem agora · Aula 2 (continuação de hoje)

Dados Econômicos + IA

  • Estrutura de projetos de dados com IA
  • Geração e debug de código com Claude Code
  • Coleta de dados (APIs + scraping)
  • Organização de datasets
  • Integração com Python na prática
  • Análise exploratória automatizada

Premissa: todo mundo com ambiente funcionando. Sem queimar tempo em “no meu Mac não roda”.

Preview do curso inteiro

Aula Data Foco Como o Digest evolui
1 26/05 + 02/06 Fundamentos + setup Demo do projeto real
2 02/06 Dados + IA Núcleo: coleta + síntese + saída
3 09/06 Construir agentes Tools · memória · contexto
4 16/06 Automação e pipelines Quarto → PDF + GitHub Actions
5 23/06 Projetos reais WhatsApp + integração com painéis

Ao final, você terá replicado o agente que roda todo domingo às 7h.

Recursos de apoio

  • Documentação do Claude Codedocs.claude.com/en/docs/claude-code/overview
  • API do Claude (Python SDK)docs.claude.com/en/api/overview
  • imap_toolsgithub.com/ikvk/imap_tools
  • Zoho App Passwordsmail.zoho.com → Settings → IMAP
  • Plataforma e comunidade — AM Black

Obrigado

A verdade está nos dados.

Vítor Wilher · Análise Macro