Modos de uso: interativo, não-interativo, pipe e headless
- ⬜🖥️ Claude Code: instalação, autenticação e primeiro uso real(Claude & Anthropic na Prática)
Recomendamos completar os pré-requisitos antes de seguir, mas nada te impede de continuar.
Claude Code foi projetado para ser mais que um chat no terminal. Os quatro modos de uso cobrem desde a conversa interativa padrão até automação total em pipelines de CI/CD. Entender quando usar cada modo é o que separa quem usa Claude Code ocasionalmente de quem o integra no fluxo de trabalho real.
Modo 1: interativo — o padrão conversacional
# Modo interativo: interface TUI (Text User Interface) completa cd meu-projeto claude # O que você obtém: # - Histórico de conversa na sessão # - Visualização de cada ação de ferramenta antes de executar # - Comandos /help, /clear, /compact, /cost, /model # - Confirmação explícita de comandos Bash perigosos # - Modo de edição multi-linha (Enter: nova linha, Ctrl+Enter: enviar) # Fluxo típico de uma sessão interativa: # 1. Você descreve o problema ou tarefa # 2. Claude lê os arquivos relevantes (você vê: "Reading src/auth.ts...") # 3. Claude propõe ações (edições, novos arquivos, comandos) # 4. Para Bash: mostra o comando, você aprova ou recusa # 5. Claude executa, reporta resultado, sugere próximos passos # Para retomar contexto de uma sessão anterior: claude --continue # retoma a última sessão claude --resume # lista sessões recentes para escolher
O modo interativo é ideal para: implementação de features, debugging, refactoring e qualquer tarefa que exige exploração iterativa. A supervisão humana é integrada ao fluxo — você aprova ou recusa cada ação de alto risco.
Modo 2: não-interativo — para scripts e automação
# Modo não-interativo: -p / --print # Processa um prompt único e retorna em stdout. Zero TUI. claude -p "liste os arquivos TypeScript que importam de @/lib/auth" # → saída vai para stdout, pode ser capturada ou redirecionada # Opção --output-format para saída estruturada claude -p "analise o arquivo package.json e retorne um JSON com: nome, versão, dependências principais" --output-format json # → retorna JSON parseável (útil para pipelines que processam a saída) # Desabilitar confirmações para automação segura claude -p "atualize a versão no package.json para 2.1.0" --allowedTools Edit --print # Claude só pode usar Edit — não pode rodar Bash ou Write # Exemplo completo: script de análise de código #!/bin/bash for file in src/**/*.ts; do echo "=== Analisando: $file ===" claude -p "encontre problemas de segurança neste arquivo: $(cat "$file")" --allowedTools Read --print >> security_report.txt done
O modo não-interativo é a ponte entre Claude Code e automação. Use --allowedTools para limitar o que Claude pode fazer e tornar o script previsível e seguro.
Modo 3: pipe — processamento via stdin
# Modo pipe: Claude como processador de texto/código no pipeline Unix # Input via stdin + -p + resultado em stdout # Exemplos práticos: # Sumarizar saída de comando longo npm run build 2>&1 | claude -p "resuma os erros de build em português, lista de bullets" # Revisar diff antes de commit git diff --staged | claude -p "revise este diff: há problemas, edge cases não tratados ou violações de convenção?" # Analisar logs de erro tail -100 /var/log/nginx/error.log | claude -p "identifique o padrão de erros mais frequente e sugira causa raiz" # Converter formato de dados cat dados.csv | claude -p "converta este CSV para JSON, um objeto por linha, sem explicação" # Gerar mensagem de commit a partir do diff git diff HEAD | claude -p "gere uma mensagem de commit no estilo Conventional Commits para este diff" # → feat(auth): add JWT expiration validation # Com múltiplos inputs (heredoc): claude -p "$(cat <<'EOF' Você vai receber um trecho de código Python. Refatore para usar list comprehension onde aplicável. Código: $(cat meu_script.py) EOF )" # Nota: pipe funciona com -p. Sem -p, Claude tenta abrir o TUI mesmo com stdin piped echo "analise isso" | claude # ❌ abre TUI, pode travar echo "analise isso" | claude -p # ✅ processa via stdin e responde em stdout
Modo 4: headless — integração CI/CD e SDK
# Modo headless: Claude Code como ferramenta em pipelines CI/CD
# Exemplo: GitHub Actions que revisa PRs
# .github/workflows/review.yml
name: AI Code Review
on: [pull_request]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with: { node-version: '20' }
- run: npm install -g @anthropic-ai/claude-code
- name: Revisar PR com Claude
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
git diff origin/main...HEAD > pr_diff.txt
claude -p "$(cat <<'EOF'
Revise este diff de PR. Retorne JSON com:
{ "aprovado": bool, "problemas": ["lista"], "sugestoes": ["lista"] }
Diff: $(cat pr_diff.txt)
EOF
)" --output-format json > review.json
cat review.json
# Usar o SDK do Claude Code (para integração em Node.js):
import ClaudeCode from "@anthropic-ai/claude-code";
const client = new ClaudeCode.ClaudeCode();
// Rodar uma tarefa e capturar mensagens
for await (const message of client.processMessages({
prompt: "Explique a arquitetura do projeto",
options: {
cwd: "/caminho/do/projeto",
allowedTools: ["Read", "Glob"],
}
})) {
if (message.type === "result") {
console.log(message.result);
}
}| Modo | Quando usar | Interface | Confirmações |
|---|---|---|---|
| Interativo | Desenvolvimento, debug, features complexas | TUI completa | Sim (padrão) |
| Não-interativo (-p) | Scripts, automação, batch processing | Stdout puro | Via --allowedTools |
| Pipe (stdin | -p) | Processamento de output de outros comandos | Stdout puro | Via --allowedTools |
| Headless (SDK/CI) | Pipelines CI/CD, integração em aplicações | Programático | Via configuração |
Segurança em automação: --allowedTools vs --dangerously-skip-permissions
# Opção 1: --allowedTools (recomendado para scripts) # Especifica exatamente quais ferramentas Claude pode usar SEM confirmar # Ferramentas fora da lista: Claude pergunta antes de usar (ou não usa) claude -p "leia o README e gere um resumo" --allowedTools Read,Glob # Claude só pode ler — não pode editar, criar ou rodar comandos claude -p "adicione type hints nos arquivos Python em src/" --allowedTools Edit,Read,Glob # Claude pode editar mas não rodar npm/python ou criar arquivos novos # Opção 2: --dangerously-skip-permissions (use com extremo cuidado) # Desabilita TODAS as confirmações — Claude executa qualquer ação sem perguntar # SOMENTE em ambientes isolados (container descartável, sandbox) # ❌ Errado em ambiente local: claude -p "instale dependências e execute os testes" --dangerously-skip-permissions # Claude pode deletar arquivos, instalar pacotes, rodar qualquer comando # ✅ Correto: ambiente Docker isolado docker run --rm -v $(pwd):/workspace anthropic/claude-code -p "rode os testes e corrija os que falharem" --dangerously-skip-permissions # Regra geral: # - Desenvolvimento local interativo → confirmações habilitadas (padrão) # - Scripts seguros → --allowedTools com lista mínima # - Automação total em sandbox → --dangerously-skip-permissions em container
-p. Automação de tarefas repetitivas → não-interativo com --allowedTools. Pipeline CI/CD → SDK ou não-interativo com API key em variável de ambiente. A segurança aumenta quando você especifica explicitamente o que Claude pode fazer.Quiz rápido
3 perguntas · Acerte tudo e ganhe o badge 🎯 Gabarito