CLI Completo
~20 min Iniciante Parte 1

CLI Completo

Domine todos os modos de uso, flags, comandos slash e atalhos do terminal do Claude Code

Objetivos

  • Conhecer todos os modos de invocação do Claude Code (interativo, one-shot, pipe)
  • Usar as principais flags de linha de comando
  • Dominar os comandos slash built-in no REPL
  • Entender os três modos de permissão
  • Configurar variáveis de ambiente essenciais
  • Usar atalhos de teclado para aumentar produtividade

Modos de uso

O Claude Code pode ser invocado de quatro formas principais, cada uma adequada a um caso de uso diferente. Entender quando usar cada modo é fundamental para maximizar sua produtividade.

# 1. Modo interativo (REPL) — sessão contínua com histórico e contexto acumulado
claude

# 2. Modo one-shot — uma única pergunta, resposta e encerra
claude "explique este código"
claude "crie um componente React de botão com TypeScript"
claude "qual é a diferença entre Promise.all e Promise.allSettled?"

# 3. Pipe input — envia conteúdo via stdin
cat arquivo.py | claude "revise este código e sugira melhorias"
git diff HEAD~1 | claude "escreva um commit message para este diff"
cat error.log | claude "o que causou este erro?"

# 4. Com arquivo de entrada
claude --file problema.txt
claude --file especificacao.md "implemente o que está descrito neste arquivo"
Dica: O modo one-shot é perfeito para integrar Claude Code em scripts de automação e CI/CD pipelines. Use --output-format json para processar a resposta programaticamente com jq ou em linguagens de script.

Flags principais

As flags permitem personalizar o comportamento do Claude Code para cada invocação. As mais importantes controlam modelo, contexto, formato de saída e permissões.

Seleção de modelo

# Opus — mais capaz, mais lento, mais caro. Para tarefas complexas de arquitetura.
claude --model claude-opus-4-5

# Sonnet — equilíbrio ideal entre qualidade e velocidade. Padrão recomendado.
claude --model claude-sonnet-4-6

# Haiku — mais rápido, mais barato. Para tarefas simples e repetitivas.
claude --model claude-haiku-4-5

# Definir modelo padrão via variável de ambiente (evita digitar toda vez)
export CLAUDE_MODEL=claude-sonnet-4-6
Modelo Velocidade Custo Melhor para
claude-opus-4-5 Lento Alto ($$$) Arquitetura, refactoring complexo, análise profunda
claude-sonnet-4-6 Médio Médio ($$) Desenvolvimento diário, debugging, features
claude-haiku-4-5 Rápido Baixo ($) Perguntas simples, formatação, tarefas repetitivas

Flags de contexto e output

# Adicionar diretório inteiro ao contexto (útil para monorepos)
claude --add-dir ./src
claude --add-dir ./packages/ui --add-dir ./packages/api

# Formato de saída
claude --output-format text     # texto simples (padrão)
claude --output-format json     # JSON estruturado (bom para scripts)
claude --output-format stream-json  # JSON streamado linha por linha

# Exemplo: processar saída JSON com jq
claude --output-format json "liste as funções exportadas em src/utils.ts" | jq '.message'

# Output detalhado para debugging
claude --verbose "por que este teste está falhando?"

Flags de permissão

# Padrão: confirma ações potencialmente destrutivas (deletar arquivos, etc)
claude

# Plan mode: apenas planeja, não executa nenhuma ação
# Ótimo para entender o que será feito antes de autorizar
claude --no-auto-accept

# CUIDADO: aceita TUDO automaticamente sem pedir confirmação
# Use apenas em ambientes controlados (CI, containers, projetos descartáveis)
claude --dangerously-skip-permissions

# Definir ferramentas permitidas explicitamente
claude --allowedTools Read,Write,Bash
claude --allowedTools Read  # apenas leitura, nunca modifica nada
Atenção: A flag --dangerously-skip-permissions desabilita todas as confirmações de segurança. O Claude Code pode deletar arquivos, executar comandos destrutivos e fazer alterações irreversíveis sem pedir sua aprovação. Use apenas em ambientes de desenvolvimento isolados ou containers descartáveis — NUNCA em produção ou em projetos com dados importantes.

Comandos slash no REPL

Dentro do modo interativo (REPL), você pode usar comandos especiais prefixados com / para controlar a sessão. Esses comandos são executados localmente, sem consumir tokens da API.

# Ajuda e informações
/help              # lista todos os comandos disponíveis
/status            # mostra status da sessão (tokens usados, modelo, custo estimado)
/cost              # mostra custo acumulado da sessão atual
/model             # troca o modelo durante a sessão

# Gerenciamento de contexto
/clear             # limpa todo o histórico da conversa (contexto zerado)
/compact           # comprime o contexto mantendo apenas o essencial
                   # útil quando a sessão fica muito longa e o contexto enche

# Memória persistente
/memory            # abre o arquivo de memória para edição
                   # conteúdo persiste entre sessões

# Ferramentas de desenvolvimento
/review            # inicia um review de Pull Request
                   # pode aceitar número ou URL do PR

# Exemplo de uso do /compact
# Após uma sessão longa de debugging:
> /compact
# Claude resume o contexto em um sumário e continua de onde parou
Info: Use /compact quando a sessão ficar longa (mais de 30-40 trocas) ou quando você perceber que o Claude Code está "esquecendo" contexto anterior. O comando resume toda a conversa em um bloco denso, liberando espaço na janela de contexto para continuar trabalhando.

Modos de permissão

O Claude Code tem três modos de operação em relação a permissões, que determinam como ele lida com ações que afetam seu sistema.

Modo Flag Comportamento Quando usar
Default (sem flag) Confirma ações destrutivas (delete, overwrite) Desenvolvimento diário — equilíbrio entre agilidade e segurança
Plan only --no-auto-accept Mostra o plano mas não executa nada Revisar o que será feito antes de autorizar em projetos críticos
Auto-accept --dangerously-skip-permissions Executa tudo sem confirmação CI/CD pipelines, containers descartáveis, demos automatizadas

Variáveis de ambiente

# Obrigatória: chave de API da Anthropic
export ANTHROPIC_API_KEY="sk-ant-api03-..."

# Opcional: modelo padrão (evita usar --model toda vez)
export CLAUDE_MODEL="claude-sonnet-4-6"

# Opcional: para usar com proxies ou gateways corporativos
export ANTHROPIC_BASE_URL="https://seu-gateway.empresa.com"

# Opcional: desabilitar telemetria de uso
export CLAUDE_TELEMETRY_DISABLED=true

# Configuração persistente em ~/.zshrc ou ~/.bashrc
cat >> ~/.zshrc << 'EOF'
# Claude Code
export ANTHROPIC_API_KEY="sk-ant-api03-..."
export CLAUDE_MODEL="claude-sonnet-4-6"
EOF
source ~/.zshrc

Atalhos de teclado no REPL

# Controle de execução
Ctrl+C    # cancela a ação em andamento (Claude para de digitar/executar)
Ctrl+D    # encerra a sessão REPL (equivalente a /exit)

# Navegação no histórico
↑ (seta cima)    # prompt anterior no histórico da sessão
↓ (seta baixo)   # próximo prompt no histórico

# Edição de texto
Tab              # autocomplete de caminhos de arquivo
Ctrl+A           # ir para o início da linha
Ctrl+E           # ir para o final da linha
Ctrl+U           # apagar da posição atual até o início da linha
Ctrl+K           # apagar da posição atual até o final da linha

# Formatação de prompts longos
# Use \ + Enter para continuar o prompt na próxima linha:
> Analise o arquivo src/auth.ts \
  e identifique possíveis vulnerabilidades de segurança
Dica: Para prompts muito longos ou complexos, escreva-os em um editor de texto e passe via arquivo com --file ou via pipe: cat meu-prompt.txt | claude. Isso é especialmente útil para especificações detalhadas ou quando você precisa reusar o mesmo prompt.

Exercício Prático

Exercício 1 — Comparando modelos: qualidade vs velocidade

Execute a mesma pergunta com modelos diferentes e observe as diferenças em velocidade, detalhamento e qualidade da resposta.

  1. Abra dois terminais lado a lado
  2. No primeiro, execute: claude --model claude-haiku-4-5 "qual a diferença entre var, let e const em JavaScript? Dê exemplos práticos."
  3. No segundo, execute: claude --model claude-sonnet-4-6 "qual a diferença entre var, let e const em JavaScript? Dê exemplos práticos."
  4. Compare: velocidade de resposta, quantidade de detalhes, qualidade dos exemplos
  5. Execute também: claude --model claude-opus-4-5 "qual a diferença entre var, let e const?" e compare todos os três
Resultado esperado: Haiku responde mais rápido mas com menos detalhes. Sonnet tem um bom equilíbrio. Opus é o mais detalhado e completo, mas leva mais tempo. Para esta pergunta simples, Haiku ou Sonnet são suficientes — Opus seria excessivo.

Exercício 2 — Workflow com pipe

Use o modo pipe para analisar um diff de git e gerar um commit message automaticamente.

  1. Faça alguma modificação em qualquer arquivo de um projeto git
  2. Execute: git diff | claude "baseado neste diff, escreva uma mensagem de commit seguindo o formato conventional commits (feat/fix/refactor/etc)"
  3. Observe como o Claude Code analisa as mudanças e gera uma mensagem apropriada
  4. Tente também: git log --oneline -10 | claude "identifique padrões nos últimos 10 commits e sugira melhorias no processo de commit"
Resultado esperado: Claude Code deve gerar uma mensagem de commit clara e no formato conventional commits, baseada exatamente nas mudanças do diff. Por exemplo: "feat(auth): add JWT token refresh endpoint with 7-day expiration"

Recursos

0%