MODULO 1.4

πŸ”€ Pipe de Dados

O pipe (|) transforma o Claude Code em uma peca do ecossistema Unix. Voce conecta a saida de qualquer comando diretamente ao Claude, criando pipelines de analise, debug e automacao que nenhuma GUI consegue replicar. Domine o pipe e o terminal vira seu IDE de IA.

6
Topicos
25
Minutos
Intermediario
Nivel
Pratico
Tipo
1

πŸ“„ cat | claude -p - Alimentando Arquivos Diretamente

O comando cat arquivo | claude -p "instrucao" e a forma mais direta de enviar o conteudo de qualquer arquivo ao Claude sem abrir uma sessao interativa. O pipe Unix conecta a saida do cat com a entrada do Claude, e a flag -p (print) faz com que o Claude processe e imprima a resposta direto no terminal. Zero fricao.

🎯 Conceito Principal

No Unix, o pipe (|) pega a saida padrao (stdout) de um comando e a conecta na entrada padrao (stdin) do proximo. Quando voce faz cat app.py | claude -p "explique", o conteudo inteiro do arquivo app.py e injetado como contexto para o Claude processar. Ele recebe tudo de uma vez, sem truncamento, sem upload manual.

  • β€’ stdin como contexto: O Claude le tudo que chega via stdin e trata como parte do prompt. Voce nao precisa colar o conteudo manualmente
  • β€’ Flag -p (print): Executa no modo nao-interativo. Claude processa, responde e sai. Sem sessao, sem REPL. Ideal para automacoes e scripts
  • β€’ Qualquer arquivo texto: Funciona com codigo (.py, .js, .ts), logs, configs (.yaml, .toml, .env), CSVs, markdown, e qualquer coisa que cat consiga imprimir

⌨️ Exemplos Reais no Terminal

# Explicar um arquivo Python
$ cat app.py | claude -p "explique o que este codigo faz, funcao por funcao"

# Analisar um arquivo de configuracao
$ cat docker-compose.yml | claude -p "este compose esta correto? tem algum problema de seguranca?"

# Revisar um CSV
$ cat dados.csv | claude -p "resuma estes dados: quantas linhas, quais colunas, valores atipicos"

# Analisar um Dockerfile
$ cat Dockerfile | claude -p "otimize este Dockerfile para reducao de camadas e tamanho final"

# Verificar um .env de exemplo
$ cat .env.example | claude -p "quais variaveis estao faltando para producao?"

πŸ“Š Quando Usar cat | claude -p

  • Analise rapida: Precisa entender um arquivo que nunca viu antes? Pipe e pergunte
  • Code review solo: Sem par? Deixe o Claude revisar antes do commit
  • Documentacao: Gere docstrings, READMEs ou comentarios a partir do codigo fonte
  • Conversao: Transforme YAML em JSON, CSV em tabela markdown, ou qualquer formato para outro

πŸ’‘ Dica Pratica

A flag -p e o segredo para tornar o Claude scriptavel. Sem ela, o Claude abre uma sessao interativa que espera input do teclado. Com -p, ele processa e sai, o que significa que voce pode encadear com outros comandos, redirecionar para arquivos e usar em shell scripts.

Se o arquivo for muito grande (milhares de linhas), considere filtrar antes com head -100 arquivo.py | claude -p "..." para enviar so o inicio, ou use grep -n "def " app.py | claude -p "..." para enviar apenas as assinaturas de funcoes.

βœ“ O que FAZER

  • βœ“ Usar -p para operacoes one-shot (sem sessao interativa)
  • βœ“ Ser especifico no prompt: "explique funcao por funcao" > "explique"
  • βœ“ Filtrar arquivos grandes antes de enviar (head, grep, sed)

βœ— O que NAO fazer

  • βœ— Enviar binarios (imagens, PDFs, executaveis) via cat pipe
  • βœ— Enviar arquivos com segredos (.env com chaves reais) para APIs externas
  • βœ— Esquecer a flag -p e ficar preso numa sessao interativa dentro de um script
2

πŸ› Pipe com Logs e Stack Traces - Debug Instantaneo

Quando sua aplicacao explode as 3 da manha e voce tem um stack trace de 200 linhas no log, a ultima coisa que voce quer e copiar e colar no browser. Basta enviar o log inteiro direto ao Claude via pipe. Ele recebe o contexto completo, sem nada cortado, e identifica a causa raiz em segundos.

🎯 Conceito Principal

Logs e stack traces sao texto estruturado. O Claude e excepcional em interpretar padroes de erro, tracear a cadeia de chamadas e sugerir correcoes. A vantagem do pipe sobre colar na interface web: voce envia o log completo sem truncamento, e o Claude ve cada linha, cada timestamp, cada nivel de severidade.

  • β€’ Contexto total: Nada e cortado. O Claude ve o traceback completo, incluindo o frame que causou o erro e todo o call stack
  • β€’ Padroes temporais: Com timestamps no log, o Claude identifica cascatas de erro, timeouts e race conditions
  • β€’ Multiplos erros: Se o log tem varios erros distintos, o Claude agrupa e prioriza por gravidade

⌨️ Exemplos Reais no Terminal

# Enviar log de erro completo
$ cat /var/log/app/error.log | claude -p "o que esta causando esses erros? sugira a correcao"

# Ultimas 50 linhas do log (erros recentes)
$ tail -50 /var/log/nginx/error.log | claude -p "diagnostique estes erros do nginx"

# Filtrar apenas erros antes de enviar
$ grep -i "error\|exception\|fatal" app.log | claude -p "agrupe por tipo e sugira correcoes"

# Stack trace do Python em tempo real
$ python app.py 2>&1 | claude -p "o que deu errado e como corrijo?"

# Logs do Docker de um container
$ docker logs api-container --tail 100 2>&1 | claude -p "por que este container esta restartando?"

# Combinar tail -f com timeout para capturar logs ao vivo
$ timeout 10 tail -f /var/log/syslog | claude -p "algo anormal nos ultimos 10 segundos?"

πŸ’‘ Dica Pratica

Use 2>&1 para capturar tanto stdout quanto stderr. Muitos erros so aparecem em stderr, e sem esse redirecionamento o pipe so pega stdout. Exemplo: npm run build 2>&1 | claude -p "o que quebrou?"

Para logs muito grandes, filtre primeiro com grep e envie apenas as linhas relevantes. Um log de 10.000 linhas onde so 50 sao erros nao precisa ir inteiro. O pre-filtro economiza tokens e melhora a qualidade da analise.

βœ“ O que FAZER

  • βœ“ Usar 2>&1 para capturar stderr junto com stdout
  • βœ“ Filtrar com grep antes de enviar logs muito grandes
  • βœ“ Pedir ao Claude para sugerir a correcao alem de diagnosticar

βœ— O que NAO fazer

  • βœ— Enviar gigabytes de log sem filtrar (desperdiΓ§a tokens e gera ruido)
  • βœ— Esquecer o 2>&1 e perder os erros que estao em stderr
  • βœ— Enviar logs com tokens, senhas ou chaves de API expostas
3

πŸ“š Multiplos Arquivos - Concatenando Contexto

Bugs que so fazem sentido vendo multiplos arquivos juntos sao os mais dificeis de debugar sozinho. Um modelo importa de um lugar, uma rota chama um controller, o controller usa um service. Concatenar tudo em um unico pipe permite que o Claude veja o fluxo completo e encontre inconsistencias que voce nao perceberia olhando arquivo por arquivo.

🎯 Conceito Principal

O comando cat aceita multiplos arquivos como argumento e os concatena em sequencia na saida. Quando voce faz cat a.py b.py c.py | claude -p "...", o Claude recebe o conteudo dos tres arquivos como um unico bloco de texto contΓ­nuo.

  • β€’ Visao cruzada: O Claude consegue verificar se as assinaturas de funcao usadas em um arquivo batem com as definicoes em outro
  • β€’ Deteccao de inconsistencias: Types errados, imports faltando, nomes de variaveis diferentes entre model e controller
  • β€’ Separadores de arquivo: Para ajudar o Claude a saber qual conteudo veio de qual arquivo, use echo com separadores entre os cats

⌨️ Exemplos Reais no Terminal

# Concatenacao simples de multiplos arquivos
$ cat model.py controller.py routes.py | claude -p "encontre inconsistencias entre estes 3 arquivos"

# Com separadores para o Claude saber qual arquivo e qual
$ (echo "=== model.py ===" && cat model.py && echo "=== controller.py ===" && cat controller.py && echo "=== routes.py ===" && cat routes.py) | claude -p "analise a integracao entre estes arquivos"

# Todos os arquivos .py de um diretorio
$ cat src/*.py | claude -p "faca um code review geral deste projeto Python"

# Schema do banco + models da aplicacao
$ cat schema.sql models.py | claude -p "os models estao consistentes com o schema SQL?"

# Package.json + tsconfig para verificar consistencia
$ cat package.json tsconfig.json | claude -p "as dependencias e config do TS estao coerentes?"

πŸ’‘ Dica Pratica

O truque dos separadores faz uma diferenca enorme na qualidade da resposta. Quando o Claude recebe === model.py === entre os conteudos, ele sabe exatamente onde comeΓ§a e termina cada arquivo. Sem separadores, ele tenta adivinhar pelo contexto, e nem sempre acerta.

Para projetos maiores, crie um alias no seu shell: alias catfiles='for f in "$@"; do echo "=== $f ===" && cat "$f"; done'. Depois use catfiles model.py routes.py | claude -p "...".

⚠️ Atencao ao Tamanho Total

A janela de contexto do Claude tem limite (200k tokens no Sonnet, mais no Opus). Concatenar 50 arquivos de 500 linhas cada pode estourar o limite. Calcule: cada 4 caracteres equivale a aproximadamente 1 token. Um arquivo de 1000 linhas com 80 caracteres por linha consome cerca de 20k tokens. Monitore o tamanho total antes de enviar.

βœ“ O que FAZER

  • βœ“ Usar separadores (echo "=== arquivo ===") entre os conteudos
  • βœ“ Concatenar apenas os arquivos relevantes para a analise
  • βœ“ Verificar o tamanho total antes de enviar (wc -l *.py)

βœ— O que NAO fazer

  • βœ— Concatenar repositorios inteiros sem filtrar (estoura o contexto)
  • βœ— Enviar sem separadores e esperar que Claude adivinhe os limites
  • βœ— Incluir node_modules, .git ou outros arquivos gerados no cat
4

πŸ’Ύ Redirecionando Saida - Salvando Resultados do Claude

Ate agora, a resposta do Claude aparece na tela e desaparece quando voce fecha o terminal. Com os operadores de redirecionamento > e >>, voce transforma respostas efemeras em artefatos permanentes: arquivos markdown, JSON, relatorios, documentacao. O Claude gera, o shell salva.

🎯 Conceito Principal

Os operadores de redirecionamento sao fundamentais no Unix e combinam perfeitamente com o Claude no modo -p. O > cria ou sobrescreve um arquivo com a saida. O >> adiciona (append) ao final de um arquivo existente sem apagar o conteudo anterior.

  • β€’ > (overwrite): claude -p "..." > resultado.md cria o arquivo do zero, sobrescrevendo se ja existir
  • β€’ >> (append): claude -p "..." >> relatorio.md adiciona ao final do arquivo, preservando o conteudo anterior
  • β€’ --output-format: Use --output-format json para obter a saida em JSON estruturado, ideal para processamento programatico

⌨️ Exemplos Reais no Terminal

# Gerar documentacao e salvar em markdown
$ cat src/api.py | claude -p "gere documentacao completa desta API em markdown" > docs/api-docs.md

# Criar changelog a partir dos commits
$ git log --oneline -20 | claude -p "gere um CHANGELOG formatado" > CHANGELOG.md

# Append de review em relatorio existente
$ cat models.py | claude -p "review de seguranca" >> security-report.md

# Saida em JSON estruturado
$ cat app.py | claude -p "liste todas as funcoes com seus parametros" --output-format json > funcoes.json

# Gerar testes e salvar direto no arquivo de testes
$ cat utils.py | claude -p "gere testes unitarios com pytest para todas as funcoes" > tests/test_utils.py

# Combinar pipe de entrada + redirecionamento de saida
$ cat schema.sql | claude -p "gere os models SQLAlchemy correspondentes" > models.py

πŸ“Š Casos de Uso com Redirecionamento

  • Documentacao automatica: Gere READMEs, docstrings e wikis a partir do codigo e salve direto
  • Relatorios de review: Append de reviews de multiplos arquivos em um unico relatorio
  • Geracao de codigo: Claude gera testes, migrations, ou boilerplate e salva no arquivo certo
  • Dados estruturados: Extraia informacoes de texto nao-estruturado e salve em JSON ou CSV

πŸ’‘ Dica Pratica

Use | tee arquivo.md em vez de > arquivo.md quando voce quer ver a saida na tela E salvar no arquivo ao mesmo tempo. O tee duplica o stream: manda para stdout (tela) e para o arquivo simultaneamente.

Exemplo: cat app.py | claude -p "review" | tee review.md. Voce ve o resultado rolando na tela e quando termina, o arquivo esta la salvo.

βœ“ O que FAZER

  • βœ“ Usar > para criar arquivos novos, >> para append em existentes
  • βœ“ Usar tee para ver e salvar ao mesmo tempo
  • βœ“ Usar --output-format json quando precisar processar a saida

βœ— O que NAO fazer

  • βœ— Usar > em arquivos importantes sem backup (sobrescreve tudo!)
  • βœ— Confundir > (overwrite) com >> (append) e perder conteudo
  • βœ— Salvar saida do Claude em producao sem revisar primeiro
5

πŸ”§ Integracao Unix - Claude no Ecossistema

A filosofia Unix e clara: ferramentas pequenas e especializadas que se compΓ΅em via pipe. O Claude Code com -p se encaixa perfeitamente nesse modelo. Ele nao substitui grep, awk, sed ou jq. Ele se compΓ΅e com eles. grep filtra, awk formata, jq transforma JSON, e o Claude interpreta, analisa e gera insights. Cada ferramenta faz o que faz melhor.

🎯 Conceito Principal

O Claude se torna mais uma ferramenta no pipeline. A saida de qualquer comando Unix pode alimentar o Claude, e a saida do Claude pode alimentar qualquer outro comando. Essa composicao e o que torna o pipe tao poderoso. Voce nao esta limitado a "pergunta e resposta". Voce esta construindo pipelines de processamento inteligente.

  • β€’ grep + Claude: grep filtra as linhas relevantes, Claude interpreta o significado
  • β€’ git diff + Claude: git mostra o que mudou, Claude explica o impacto
  • β€’ jq + Claude: jq extrai campos do JSON, Claude analisa os dados
  • β€’ find + xargs + Claude: find localiza os arquivos, xargs concatena, Claude processa

⌨️ Exemplos Reais no Terminal

# git diff + Claude para resumo de mudancas
$ git diff HEAD~5 | claude -p "resuma estas mudancas em bullet points para o PR"

# find + xargs para buscar vulnerabilidades
$ find . -name "*.py" -not -path "./venv/*" | xargs cat | claude -p "encontre vulnerabilidades de seguranca"

# jq + Claude para analisar dados JSON
$ cat response.json | jq '.data[] | {name, status}' | claude -p "quais itens estao com status anomalo?"

# grep + Claude para entender padroes
$ grep -rn "TODO\|FIXME\|HACK" src/ | claude -p "priorize estes TODOs por urgencia"

# awk + Claude para analise de performance
$ awk '{print $7, $10}' access.log | claude -p "quais endpoints estao mais lentos?"

# curl + Claude para analisar resposta de API
$ curl -s https://api.example.com/health | claude -p "esta tudo saudavel nesta resposta?"

# ps + Claude para diagnostico de processo
$ ps aux --sort=-%mem | head -20 | claude -p "algum processo esta consumindo memoria demais?"

Anatomia de um Pipeline Composto

1

Fonte de Dados

cat, find, git, curl, docker, ps, etc.

O primeiro comando do pipeline gera o dado bruto. Pode ser conteudo de arquivo, saida de API, diff de git, logs do sistema, qualquer coisa que produza texto.

2

Filtro/Transformacao (opcional)

grep, awk, sed, jq, sort, head, tail

Reduz o volume de dados, extrai campos relevantes, filtra ruido. Economiza tokens e melhora a qualidade da analise do Claude. Nao e obrigatorio, mas melhora tudo.

3

Processamento Inteligente

claude -p "instrucao"

O Claude recebe os dados filtrados via stdin, interpreta com a instrucao do prompt, e gera a saida: analise, resumo, codigo, sugestoes, diagnostico.

4

Saida/Destino (opcional)

> arquivo, >> append, | tee, | outro-comando

A saida do Claude pode ir para um arquivo, ser appended a um relatorio, duplicada com tee, ou ate alimentar outro pipe. O ciclo pode continuar.

πŸ’‘ Dica Pratica

O pipeline git diff | claude -p "resuma estas mudancas" e provavelmente o mais util no dia a dia de um desenvolvedor. Rode antes de abrir um PR para gerar a descricao. Rode antes de fazer merge para entender o impacto. Rode apos um rebase para verificar se nada quebrou. E um pipeline de 10 segundos que economiza 10 minutos.

6

πŸš€ Pipelines Avancados - Automacoes de Ponta

Quando voce domina o basico do pipe, o proximo passo sao automacoes compostas: loops que processam multiplos arquivos, scripts que geram relatorios, integracoes com cron para execucao agendada, e pipelines multi-estagio onde a saida de um Claude alimenta outro. Isso nao e teoria. E como operadores avancados usam o Claude Code em producao.

🎯 Conceito Principal

Pipelines avancados combinam loops do shell, multiplas invocacoes do Claude e redirecionamento estruturado para criar automacoes que rodam sem intervencao humana. A chave e entender que cada invocacao de claude -p e independente: ela nao tem contexto das invocacoes anteriores, entao voce precisa estruturar o pipeline para que cada chamada seja auto-contida.

  • β€’ Loop for: Itere sobre arquivos e processe cada um individualmente com o Claude
  • β€’ Shell scripts: Encapsule pipelines complexos em scripts reutilizaveis
  • β€’ Cron: Agende pipelines para execucao automatica (review diario, auditoria semanal)
  • β€’ Multi-estagio: A saida de uma chamada Claude alimenta a proxima para refinamento

⌨️ Scripts e Automacoes Reais

# Loop: review de todos os arquivos Python do src/
$ for file in src/*.py; do
    echo "## Review: $file" >> review-report.md
    cat "$file" | claude -p "faca code review focado em seguranca e performance" >> review-report.md
    echo "" >> review-report.md
  done

# Script de review automatico de PR
$ git diff main...HEAD | claude -p "review este PR: bugs, seguranca, performance, sugestoes" > pr-review.md

# Auditoria de seguranca do projeto inteiro
$ find . -name "*.py" -not -path "./venv/*" -exec grep -l "password\|secret\|key\|token" {} \; | \
    while read f; do
      echo "=== $f ===" >> security-audit.md
      cat "$f" | claude -p "este arquivo expΓ΅e segredos? analise linha por linha" >> security-audit.md
    done

# Documentacao automatica de API
$ for route_file in src/routes/*.py; do
    cat "$route_file" | claude -p "gere documentacao OpenAPI para estas rotas" >> api-docs.yaml
  done

# Pipeline multi-estagio: analise + priorizacao
$ grep -rn "TODO\|FIXME" src/ | claude -p "liste em JSON: {file, line, issue, severity}" | \
    claude -p "ordene por severidade e gere um plano de acao" > action-plan.md

# Cron: review diario dos commits do dia
# Adicione ao crontab (crontab -e):
# 0 18 * * 1-5 git log --since="8 hours ago" -p | claude -p "resumo do dia" > ~/daily-summary.md

πŸ“Š Casos de Uso em Producao

  • CI/CD: Review automatico de PR no pipeline, bloqueia merge se encontrar vulnerabilidades
  • Monitoramento: Cron analisa logs de erro a cada hora e gera alertas inteligentes
  • Documentacao viva: Toda vez que o codigo muda, a documentacao e regenerada automaticamente
  • Auditoria de seguranca: Scan semanal de todo o codebase buscando padroes inseguros
  • Onboarding: Novo dev? Rode o script que gera um overview de todo o projeto automaticamente

πŸ’‘ Dica Pratica

Cada invocacao de claude -p e uma chamada de API independente. Em loops com muitos arquivos, voce pode gastar muitos tokens rapidamente. Monitore o uso e considere agrupar arquivos pequenos em uma unica chamada em vez de uma chamada por arquivo.

Para pipelines criticos em producao, sempre adicione tratamento de erro: claude -p "..." || echo "ERRO: Claude falhou para $file" >> errors.log. APIs podem falhar, e voce precisa saber quando isso acontece em um script automatizado.

⚠️ Atencao com Custos em Automacoes

Um loop que processa 100 arquivos faz 100 chamadas de API. Se cada chamada custa $0.05, sao $5 em um unico script. Com cron rodando diariamente, sao $150/mes. Calcule o custo antes de automatizar. Considere processar apenas arquivos que mudaram (git diff --name-only) em vez de todo o repositorio.

βœ“ O que FAZER

  • βœ“ Adicionar tratamento de erro (|| echo "ERRO") em scripts
  • βœ“ Calcular custo estimado antes de rodar loops grandes
  • βœ“ Processar apenas arquivos alterados (git diff --name-only)

βœ— O que NAO fazer

  • βœ— Rodar loops sem limite em cron (custo pode explodir)
  • βœ— Confiar cegamente na saida do Claude em automacoes criticas sem validacao
  • βœ— Criar pipelines multi-estagio sem testar cada estagio isoladamente primeiro

πŸ“‹ Resumo do Modulo

βœ“
cat | claude -p e o pipe fundamental - Envia o conteudo de qualquer arquivo texto ao Claude sem sessao interativa
βœ“
Logs e stack traces direto no pipe - Debug instantaneo com contexto completo, use 2>&1 para capturar stderr
βœ“
Multiplos arquivos com separadores - Concatene com echo "=== arquivo ===" para o Claude saber qual e qual
βœ“
Redirecionamento > e >> salva resultados - Transforme respostas efemeras em artefatos permanentes, use tee para ver e salvar
βœ“
Claude como peca do ecossistema Unix - Componha com grep, awk, jq, git diff para pipelines inteligentes
βœ“
Automacoes com loops, scripts e cron - Review de PR, auditoria de seguranca e documentacao automatica em producao

Proximo Modulo:

1.5 - Atalhos de Teclado e Aliases