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"
--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
--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
/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
--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.
- Abra dois terminais lado a lado
- No primeiro, execute:
claude --model claude-haiku-4-5 "qual a diferença entre var, let e const em JavaScript? Dê exemplos práticos." - No segundo, execute:
claude --model claude-sonnet-4-6 "qual a diferença entre var, let e const em JavaScript? Dê exemplos práticos." - Compare: velocidade de resposta, quantidade de detalhes, qualidade dos exemplos
- Execute também:
claude --model claude-opus-4-5 "qual a diferença entre var, let e const?"e compare todos os três
Exercício 2 — Workflow com pipe
Use o modo pipe para analisar um diff de git e gerar um commit message automaticamente.
- Faça alguma modificação em qualquer arquivo de um projeto git
- Execute:
git diff | claude "baseado neste diff, escreva uma mensagem de commit seguindo o formato conventional commits (feat/fix/refactor/etc)" - Observe como o Claude Code analisa as mudanças e gera uma mensagem apropriada
- Tente também:
git log --oneline -10 | claude "identifique padrões nos últimos 10 commits e sugira melhorias no processo de commit"