MODULO 1.4

🚩 Flags de Linha de Comando

Domine as flags que transformam o Claude Code numa ferramenta de automacao poderosa: -p para execucao direta, --model para escolher o modelo, --resume para retomar sessoes, --allowedTools para seguranca e --output-format para integracao com scripts.

6
Topicos
30
Minutos
Intermediario
Nivel
Teoria + Pratica
Tipo
1

⚑ -p (prompt) - Execucao direta sem sessao

A flag -p (ou --print) e o modo one-shot do Claude Code. Em vez de abrir uma sessao interativa, voce envia um prompt unico, recebe a resposta e o processo termina. E a base para automacao, scripts e pipelines de CI/CD.

🎯 Conceito Principal

Com -p, o Claude Code funciona como qualquer outro comando Unix: recebe input, processa e retorna output. Isso permite piping, redirecionamento e integracao com scripts bash de forma natural.

  • β€’ Execucao unica: O Claude processa o prompt, retorna a resposta e encerra. Nao abre sessao interativa, nao espera mais input. Ideal para automacao onde voce nao quer interacao humana
  • β€’ Piping nativo: Voce pode enviar dados via pipe: cat arquivo.py | claude -p "explique este codigo". O conteudo do pipe e incluido no contexto automaticamente
  • β€’ Sem interacao: Todas as acoes que normalmente requerem aprovacao (editar arquivos, rodar comandos) sao executadas automaticamente quando possivel, ou ignoradas quando nao
  • β€’ Saida limpa: A saida do -p e apenas o texto da resposta, sem formatacao de terminal, sem indicadores de tools. Perfeito para capturar em variaveis ou redirecionar para arquivos

πŸ’» Exemplos Praticos

# Prompt simples
$ claude -p "Explique o que este projeto faz"
# Piping de arquivo
$ cat src/auth.ts | claude -p "Encontre vulnerabilidades neste codigo"
# Salvando resposta em arquivo
$ claude -p "Gere documentacao para as funcoes em utils.ts" > docs/utils.md
# Combinando com outros comandos
$ git diff HEAD~3 | claude -p "Resuma as mudancas dos ultimos 3 commits"
# Usando em script bash
$ REVIEW=$(claude -p "Revise o codigo em src/api.ts e liste os problemas")
$ echo "$REVIEW" | mail -s "Code Review" dev@team.com

πŸ’‘ Dica Pratica

O -p e a flag mais poderosa do Claude Code para automacao. Crie aliases no seu .bashrc/.zshrc para tarefas repetitivas: alias cr='claude -p "Revise o codigo alterado"'.

Para prompts longos, use heredoc: claude -p "$(cat <<EOF Analise este projeto e gere um relatorio... EOF )". Isso permite prompts multiline sem escapar aspas.

2

πŸ€– --model - Escolhendo o modelo certo

A flag --model permite escolher qual modelo Claude sera usado na sessao. Cada modelo tem um perfil diferente de capacidade, velocidade e custo, e saber quando usar cada um e essencial para otimizar tanto a qualidade quanto os gastos.

🎯 Conceito Principal

O Claude Code suporta toda a familia de modelos Claude. Voce escolhe o modelo baseado no trade-off entre inteligencia, velocidade e custo. Nao existe modelo "melhor" - existe o modelo certo para cada tarefa.

  • β€’ Opus (claude-opus-4): O mais inteligente e capaz. Melhor para arquitetura complexa, refatoracoes grandes, debug de problemas dificeis e decisoes de design criticas. Mais lento e mais caro
  • β€’ Sonnet (claude-sonnet-4): O equilibrio ideal para a maioria das tarefas. Rapido, inteligente e com custo moderado. Melhor para desenvolvimento diario: escrever features, corrigir bugs, fazer reviews
  • β€’ Haiku (claude-haiku-4): O mais rapido e barato. Ideal para tarefas simples e repetitivas: formatacao, geracao de boilerplate, perguntas rapidas, automacoes em massa. Menos capaz para raciocinio complexo

Quando usar cada modelo

Modelo Melhor para Velocidade Custo
Opus Arquitetura, refatoracao, debug complexo Lento Alto
Sonnet Desenvolvimento diario, features, bugs Rapido Medio
Haiku Tarefas simples, boilerplate, automacao Muito rapido Baixo

πŸ’» Exemplos de Uso

# Sessao interativa com Opus para arquitetura
$ claude --model claude-opus-4
# One-shot com Haiku para tarefa simples
$ claude -p "Formate este JSON" --model claude-haiku-4 < data.json
# Sonnet para desenvolvimento diario (padrao)
$ claude --model claude-sonnet-4

πŸ’‘ Dica Pratica

Regra pratica: use Sonnet como padrao para 80% das tarefas. Suba para Opus quando sentir que o Sonnet nao esta dando conta (problemas de raciocinio, arquitetura complexa). DesΓ§a para Haiku para tarefas mecanicas que nao precisam de inteligencia profunda.

Crie aliases para trocar rapido: alias co='claude --model claude-opus-4' e alias ch='claude --model claude-haiku-4'.

3

πŸ”„ --resume - Retomando sessoes anteriores

A flag --resume permite retomar uma sessao anterior do Claude Code exatamente de onde voce parou. O contexto, as decisoes e o historico sao restaurados completamente, como se voce nunca tivesse saido.

🎯 Conceito Principal

Cada sessao do Claude Code recebe um ID unico e seu historico e salvo localmente. O --resume recarrega esse historico, permitindo que voce continue um trabalho interrompido sem perder contexto nem precisar re-explicar o que ja foi discutido.

  • β€’ --resume (sem argumento): Retoma a sessao mais recente no diretorio atual. E o uso mais comum - voce fechou o terminal e quer voltar de onde parou
  • β€’ --resume SESSION_ID: Retoma uma sessao especifica pelo ID. Util quando voce tem multiplas sessoes e quer voltar para uma antiga
  • β€’ Contexto completo: Toda a conversa e restaurada: perguntas, respostas, arquivos lidos, decisoes tomadas. O Claude "lembra" de tudo como se nao houvesse interrupcao
  • β€’ Custo de retomada: Ao retomar, o contexto inteiro e reenviado na primeira mensagem. Em sessoes longas, isso pode ser caro. Considere /compact antes de sair

πŸ’» Exemplos de Uso

# Retomar a sessao mais recente
$ claude --resume
# Retomar uma sessao especifica
$ claude --resume abc123def456
# Combo: compactar antes de sair, retomar depois
# Na sessao atual:
> /compact
> exit
# Depois:
$ claude --resume

βœ“ Quando RETOMAR

  • βœ“ Voce saiu no meio de uma tarefa e quer continuar
  • βœ“ O terminal crashou durante uma operacao
  • βœ“ Voce precisa voltar a uma sessao com decisoes importantes

βœ— Quando NAO retomar

  • βœ— A tarefa anterior ja foi concluida - inicie uma nova sessao
  • βœ— O contexto da sessao antiga esta muito poluido
  • βœ— Voce mudou significativamente o codigo desde a ultima sessao

πŸ’‘ Dica Pratica

Antes de fechar uma sessao que voce pretende retomar, rode /compact. Isso reduz dramaticamente o custo da retomada, ja que o contexto compactado e muito menor que o historico completo.

Para sessoes importantes, anote o session ID. Voce pode ver no inicio da sessao ou com /status. Isso permite retomar sessoes especificas mesmo depois de iniciar varias outras.

4

πŸ”’ --allowedTools - Controlando permissoes

A flag --allowedTools permite restringir quais ferramentas o Claude Code pode usar durante a sessao. E essencial para seguranca em automacao, ambientes de producao e quando voce quer controle fino sobre o que o agente pode fazer.

🎯 Conceito Principal

Por padrao, o Claude Code pode ler arquivos, escrever arquivos, executar comandos shell e usar MCPs - tudo com aprovacao. O --allowedTools permite limitar ou expandir essas capacidades explicitamente, sem depender de aprovacao manual.

  • β€’ Lista branca: Quando voce especifica --allowedTools, apenas as tools listadas ficam disponiveis. Todas as outras sao bloqueadas, mesmo com aprovacao
  • β€’ Seguranca em CI/CD: Em pipelines automatizados, use --allowedTools para garantir que o Claude so pode ler arquivos e nao pode executar comandos arbitrarios ou modificar codigo
  • β€’ Tools disponiveis: Read, Write, Edit, Bash, Glob, Grep, e qualquer tool de MCP conectado. Voce pode permitir qualquer combinacao
  • β€’ Granularidade: Voce pode permitir Bash mas bloquear Write, ou permitir Read e Grep mas bloquear tudo que modifica. O controle e por ferramenta individual

πŸ’» Exemplos de Uso

# So leitura - ideal para analise segura
$ claude --allowedTools "Read,Glob,Grep" -p "Analise a seguranca deste projeto"
# Leitura + escrita, sem shell
$ claude --allowedTools "Read,Write,Edit,Glob,Grep"
# Tudo exceto MCP externo
$ claude --allowedTools "Read,Write,Edit,Bash,Glob,Grep"
# CI/CD pipeline: so review, sem modificar nada
$ claude --allowedTools "Read,Glob,Grep" -p "Revise o codigo e reporte problemas" --output-format json

πŸ’‘ Dica Pratica

Para automacao em producao, sempre use --allowedTools. Nunca de ao Claude acesso irrestrito em scripts automatizados. A regra e: quanto mais automatizado, mais restrito. Sessoes interativas podem ser mais permissivas porque voce esta supervisionando.

Um padrao comum em CI/CD: --allowedTools "Read,Glob,Grep" para analise e --allowedTools "Read,Write,Edit,Glob,Grep" para geracao de codigo controlada.

5

πŸ“„ --output-format - Formatando saida

A flag --output-format controla o formato da saida do Claude Code. Em vez de texto formatado para humanos, voce pode obter JSON estruturado, texto puro ou streaming JSON - essencial para integracao com outros sistemas e ferramentas.

🎯 Conceito Principal

O --output-format transforma a saida do Claude Code de texto legivel por humanos para dados estruturados processaveis por maquina. Isso permite que voce use o Claude Code como componente de pipelines maiores.

  • β€’ text (padrao): Saida em texto puro, sem formatacao de terminal. E o formato natural para leitura humana e para redirecionar para arquivos .txt ou .md
  • β€’ json: Retorna um objeto JSON com a resposta, metadados de uso (tokens, custo) e informacoes da sessao. Ideal para parsing automatizado com jq, Python ou Node.js
  • β€’ stream-json: Emite eventos JSON em tempo real conforme o Claude gera a resposta. Cada chunk e um evento separado. Ideal para interfaces que mostram progresso em tempo real

πŸ’» Exemplos Praticos

# Saida JSON para processamento automatizado
$ claude -p "Liste os 5 maiores arquivos do projeto" --output-format json
# Extrair so a resposta do JSON com jq
$ claude -p "Resuma este projeto" --output-format json | jq -r '.result'
# Stream JSON para interfaces em tempo real
$ claude -p "Analise o codigo" --output-format stream-json
# Pipeline completo: analise β†’ JSON β†’ dashboard
$ claude -p "Revise src/" --output-format json --allowedTools "Read,Glob,Grep" | python process_review.py

πŸ“Š Estrutura do JSON de Saida

{
"result": "A resposta do Claude...",
"session_id": "abc123def456",
"usage": {
"input_tokens": 15432,
"output_tokens": 3210,
"total_cost": 0.0847
},
"model": "claude-sonnet-4",
"duration_ms": 4523
}

πŸ’‘ Dica Pratica

Use --output-format json sempre que o resultado do Claude for consumido por outro programa. O campo usage no JSON e particularmente util para monitorar custos em automacoes.

Combine com jq para extrair campos especificos: claude -p "..." --output-format json | jq '.usage.total_cost' retorna so o custo, ideal para dashboards de monitoramento.

6

πŸ”§ Combinando flags para power-use

O verdadeiro poder das flags aparece quando voce as combina. Um unico comando pode escolher o modelo, restringir permissoes, formatar a saida e enviar um prompt - criando uma ferramenta de automacao sob medida para qualquer necessidade.

🎯 Conceito Principal

Cada flag resolve um aspecto diferente: -p define o que fazer, --model define quem faz, --allowedTools define o que pode ser feito e --output-format define como a resposta chega. Juntas, elas formam comandos completos e seguros para qualquer cenario.

  • β€’ CI/CD Review: claude -p "Revise" --model claude-haiku-4 --allowedTools "Read,Glob,Grep" --output-format json - review barato, seguro e parseavel
  • β€’ Analise profunda: claude -p "Analise a arquitetura" --model claude-opus-4 --allowedTools "Read,Glob,Grep" - inteligencia maxima, so leitura
  • β€’ Geracao controlada: claude -p "Gere testes" --model claude-sonnet-4 --allowedTools "Read,Write,Glob" - pode ler e escrever, nao pode executar

πŸ’» Receitas Prontas para Copiar

# Review automatizado no CI/CD
$ git diff main...HEAD | claude -p "Revise estas mudancas. Liste bugs, vulnerabilidades e sugestoes em JSON" --model claude-sonnet-4 --output-format json --allowedTools "Read,Glob,Grep"
# Gerar changelog automatico
$ git log --oneline v1.0..HEAD | claude -p "Gere um changelog em portugues agrupado por tipo (feature, fix, refactor)" --model claude-haiku-4 > CHANGELOG.md
# Analise de seguranca com Opus
$ claude -p "Faca uma auditoria de seguranca completa deste projeto. Priorize vulnerabilidades criticas." --model claude-opus-4 --allowedTools "Read,Glob,Grep" --output-format json
# Retomar sessao com modelo diferente
$ claude --resume --model claude-opus-4

Referencia Rapida das Flags

Flag Funcao Exemplo
-p / --print Modo one-shot (sem sessao) claude -p "prompt"
--model Escolher modelo --model claude-opus-4
--resume Retomar sessao --resume [session_id]
--allowedTools Restringir ferramentas --allowedTools "Read,Grep"
--output-format Formato da saida --output-format json

πŸ’‘ Dica Pratica

Crie um arquivo scripts/claude-helpers.sh no seu projeto com funcoes prontas para as combinacoes mais usadas. Por exemplo:

# Em scripts/claude-helpers.sh
review_safe() { claude -p "Revise: $1" --model claude-sonnet-4 --allowedTools "Read,Glob,Grep"; }
analyze_deep() { claude -p "Analise: $1" --model claude-opus-4 --allowedTools "Read,Glob,Grep"; }
generate() { claude -p "$1" --model claude-sonnet-4 --allowedTools "Read,Write,Edit,Glob,Grep"; }
πŸ‹οΈ

πŸ‹οΈ Exercicio Pratico

Neste exercicio, voce vai criar 3 comandos combinando -p, --model e --resume, experimentando diferentes combinacoes de flags para entender como elas interagem e se complementam.

πŸ‹οΈ

Exercicio: Power-Use com Flags

Tempo estimado: 15-20 minutos

1

Comando 1: Analise rapida com Haiku

Use -p com --model Haiku para uma analise rapida e barata:

$ claude -p "Liste os 5 arquivos mais importantes deste projeto e explique por que" --model claude-haiku-4

Observe a velocidade da resposta. Haiku e ideal para tarefas simples e rapidas.

2

Comando 2: Analise profunda com Opus e JSON

Use -p com --model Opus e --output-format json para analise detalhada:

$ claude -p "Faca uma analise de arquitetura deste projeto. Identifique padroes, problemas e sugestoes." --model claude-opus-4 --output-format json --allowedTools "Read,Glob,Grep"

Compare a profundidade da analise com a do Haiku. Observe o campo "usage" no JSON.

3

Comando 3: Sessao interativa + resume

Inicie uma sessao, saia e retome com --resume:

# Iniciar sessao
$ claude --model claude-sonnet-4
> Qual a stack principal deste projeto?
> /compact
> exit
# Retomar a sessao
$ claude --resume
> Voce lembra qual e a stack do projeto?

Confirme que o Claude manteve o contexto apos o resume.

4

Bonus: Pipeline com pipe

Combine piping com flags para automacao real:

$ git log --oneline -10 | claude -p "Analise os ultimos 10 commits e sugira melhorias no padrao de mensagens" --model claude-haiku-4
5

Comparar custos

Use --output-format json para comparar custos entre modelos:

$ claude -p "Explique o projeto" --model claude-haiku-4 --output-format json | jq '.usage'
$ claude -p "Explique o projeto" --model claude-sonnet-4 --output-format json | jq '.usage'

Compare os custos side-by-side. O Haiku deve ser 5-10x mais barato.

6

Criar um alias util

Adicione ao seu .bashrc/.zshrc um alias que voce vai usar no dia a dia:

$ echo 'alias cr="claude -p \"Revise o codigo alterado e liste problemas\" --model claude-sonnet-4 --allowedTools \"Read,Glob,Grep\""' >> ~/.bashrc

Agora voce pode rodar "cr" de qualquer projeto para um review rapido.

βœ… Criterios de Sucesso

☐ Executou comando com -p e --model Haiku
☐ Executou comando com --model Opus e --output-format json
☐ Usou --resume para retomar sessao
☐ Combinou piping com -p
☐ Comparou custos entre modelos
☐ Criou pelo menos um alias util

πŸ“‹ Resumo do Modulo

βœ“
-p transforma Claude Code em ferramenta de automacao - Execucao one-shot, piping, redirecionamento. A base para scripts e CI/CD.
βœ“
--model permite escolher inteligencia vs velocidade vs custo - Opus para complexo, Sonnet para diario, Haiku para simples e barato.
βœ“
--resume restaura sessoes anteriores completamente - Todo o contexto e recuperado. Use /compact antes de sair para economizar na retomada.
βœ“
--allowedTools garante seguranca em automacao - Controle granular por ferramenta. Quanto mais automatizado, mais restritivo deve ser.
βœ“
--output-format json integra com qualquer sistema - Saida estruturada com resposta, metadados e custos. Ideal para pipelines automatizados.
βœ“
Combinar flags cria ferramentas sob medida - -p + --model + --allowedTools + --output-format = automacao completa e segura.

Proximo Modulo:

1.5 - Configuracoes e Personalizacao