🧠FFVAcademy
🔀

Modos de uso: interativo, não-interativo, pipe e headless

12 min de leitura·+60 XP
Pré-requisitos (0/1)0%

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);
  }
}
ModoQuando usarInterfaceConfirmações
InterativoDesenvolvimento, debug, features complexasTUI completaSim (padrão)
Não-interativo (-p)Scripts, automação, batch processingStdout puroVia --allowedTools
Pipe (stdin | -p)Processamento de output de outros comandosStdout puroVia --allowedTools
Headless (SDK/CI)Pipelines CI/CD, integração em aplicaçõesProgramáticoVia 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
Matriz de decisão de modo: conversa interativa e desenvolvimento → modo padrão. Script que processa saída de outros comandos → pipe com -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.
💡
Próximo: CLAUDE.md — como criar o arquivo que dá ao Claude Code memória, contexto e as regras do projeto sem precisar repetir nas sessões.
🧩

Quiz rápido

3 perguntas · Acerte tudo e ganhe o badge 🎯 Gabarito

Continue lendo