Instalação e Setup
Claude Code é o CLI agêntico da Anthropic — lê seu código, edita arquivos, roda comandos e integra com git/GitHub/CI. Roda no terminal, tem extensão VS Code, plugin JetBrains e app desktop.
Instalação nativa (recomendada)
# macOS, Linux e WSL
curl -fsSL https://claude.ai/install.sh | bash
# Windows PowerShell
irm https://claude.ai/install.ps1 | iex
# Windows CMD
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
# Homebrew (macOS/Linux) - nao auto-atualiza
brew install --cask claude-code
# WinGet (Windows) - nao auto-atualiza
winget install Anthropic.ClaudeCodebrew upgrade claude-code ou winget upgrade Anthropic.ClaudeCode periodicamente.Primeiro uso
# Entre em qualquer projeto e rode:
cd ~/meu-projeto
claude
# Na primeira execucao, o CLI pede login via navegador:
# 1) Conta Claude (assinatura Pro, Max ou Team)
# 2) Anthropic Console (API key com billing proprio)
# 3) Amazon Bedrock / Google Vertex AI / Microsoft Foundry (empresas)Verificando a instalação
claude --version # ex.: 2.1.59
claude --help # lista todas as flags
claude doctor # diagnostico de ambiente
claude config list # configuracoes ativasFormas de invocar
REPL interativo
claude — sessão contínua no terminal. Ideal para trabalho exploratório.
One-shot (-p)
claude -p "resuma o README" — roda, responde e sai. Perfeito para scripts e CI.
Pipe (stdin)
git diff | claude -p "review" — encaixa no fluxo Unix.
--add-dir
Adiciona diretórios extras além do cwd: claude --add-dir ../shared-lib.
Autenticação e modelos
# Trocar de modelo durante a sessao
/model # abre seletor
/model claude-opus-4-5 # Opus para tarefas complexas
/model claude-sonnet-4-5 # Sonnet para velocidade
# Ou via flag no arranque
claude --model claude-opus-4-5
# Logout / trocar conta
claude logout
claude loginInterface e Comandos Básicos
O Claude Code é um REPL — cada linha digitada é uma mensagem para o agente. A interface tem atalhos, slash commands e um modo de escape para shell direto.
Slash commands essenciais
/help # lista todos os comandos disponiveis
/init # analisa o repo e gera CLAUDE.md automaticamente
/clear # limpa a sessao atual (novo contexto)
/compact # resume a conversa e libera tokens
/model # troca de modelo (Opus, Sonnet, etc.)
/memory # abre gestor de CLAUDE.md e auto memory
/review # revisa a PR atual (skill bundled)
/security-review # audita mudancas por falhas de seguranca
/permissions # gerencia allow/deny de ferramentas
/config # abre editor de configuracoes
/agents # lista e gerencia subagents
/hooks # abre editor de hooks
/mcp # lista servidores MCP e ferramentas
/login /logout # autenticacao
/status # mostra sessao, modelo, diretorios
/cost # custo da sessao atual em tokens/USD
/exit # encerra o CLIAtalhos de teclado
Tab— autocompletar slash commands, skills e @mentions de arquivo↑ / ↓— navegar no histórico de promptsEsc— cancela a resposta em andamentoEsc Esc(dois toques) — ativa plan mode (planeja antes de editar)Ctrl+C— interrompe sem sairCtrl+D— sai do REPLShift+Tab— alterna entre modos (plan / accept-edits / default)!no início — prefixo de bash escape (executa shell direto)#no início — grava rapidamente no CLAUDE.md ou auto memory@— menciona arquivo ou diretório (carrega no contexto)
Bash escape e menções
# Prefixo ! - roda o comando no shell do host, sem passar pelo agente
!ls -la
!git status
!pnpm test
# Mencao @ - injeta o conteudo do arquivo/dir no contexto
Revise @src/lib/api.ts e encontre problemas de tipagem.
Baseado em @content/docs/mercado-financeiro, crie um indice.
# # no inicio - grava como memoria (pergunta onde salvar)
# sempre use pnpm, nunca npm, neste projetoFlags úteis no arranque
claude --model claude-opus-4-5 # modelo especifico
claude --add-dir ../docs ../shared # diretorios extras
claude --permission-mode plan # inicia em plan mode
claude --append-system-prompt "..." # anexa ao system prompt
claude -p "fix the failing tests" # one-shot nao-interativo
claude -c # continua a sessao anterior
claude --resume <session-id> # retoma sessao especifica
claude --dangerously-skip-permissions # aceita tudo (use com cautela!)tail -200 app.log | claude -p "me alerta se houver erros" torna Claude uma ferramenta componível. Ótimo para automação em CI e cron jobs.Ferramentas do Agente
Por baixo dos panos, Claude usa um conjunto de ferramentas (tools) para agir no seu código. Entender quais são e como autorizar cada uma evita surpresas e melhora a previsibilidade.
Ferramentas nativas
Read
Lê arquivos do disco com numeração de linhas. Suporta PDFs, imagens e notebooks Jupyter.
Write
Cria arquivos novos ou sobrescreve existentes (exige Read antes, se já existir).
Edit
Substituição string-exata em arquivos — preferido sobre Write para modificações.
Glob
Busca arquivos por padrão (ex.: src/**/*.ts). Rápido e ordenado por mtime.
Grep
Busca conteúdo via ripgrep com regex completa. Suporta glob, tipo de arquivo e multiline.
Bash
Executa comandos shell com timeout configurável. Suporta run_in_background.
WebFetch / WebSearch
Busca páginas e pesquisa web — útil para docs, GitHub issues e referências.
Task / Agent
Delega a um subagent com contexto próprio. Paraleliza exploração e especialização.
Como Claude escolhe a ferramenta
- Procurar arquivo por nome?
Glob, nãofind. - Procurar conteúdo?
Grep, nãogrepourg. - Ler arquivo?
Read, nãocat/head/tail. - Editar?
Edit(diff pequeno);Writesó para criação ou rewrite total. - Rodar algo?
Bashcom comando específico e timeout.
Permission modes
# Modos principais - alternados com Shift+Tab no REPL
# 1) default (ask)
# Pergunta antes de usar ferramentas que escrevem/executam.
# Read/Glob/Grep costumam ser allowed por padrao.
# 2) acceptEdits
# Aceita Edit/Write automaticamente, mas pergunta em Bash.
# 3) plan
# So investiga (read-only). Nao edita nem roda comandos.
# Ao final, apresenta um plano para voce aprovar.
# 4) bypassPermissions (cuidado!)
# Aceita tudo sem perguntar.
# Ative so com --dangerously-skip-permissions.Allowlist / denylist
// .claude/settings.json - regras persistentes de permissao
{
"permissions": {
"allow": [
"Bash(git status)",
"Bash(git diff:*)",
"Bash(pnpm test:*)",
"Bash(pnpm lint:*)",
"Read(//Users/kaique/Developer/**)",
"Edit(src/**)",
"WebFetch(domain:docs.anthropic.com)"
],
"deny": [
"Bash(rm -rf *)",
"Bash(git push --force*)",
"Write(.env*)",
"Edit(.env*)"
],
"ask": [
"Bash(curl *)",
"Bash(npm publish*)"
]
}
}fewer-permission-prompts: escaneia seu histórico e sugere regras de allow automaticamente. Rode uma vez por projeto para reduzir prompts repetitivos.CLAUDE.md e Memória
Cada sessão do Claude começa com contexto zero. Dois mecanismos carregam conhecimento entre sessões: CLAUDE.md (você escreve) e auto memory (Claude escreve sobre o projeto).
Hierarquia de CLAUDE.md
# Todos os arquivos abaixo sao CONCATENADOS (nao substituem).
# Ao subir na arvore, Claude le CLAUDE.md em cada diretorio ancestral.
# 1) Managed policy (IT/DevOps da empresa)
/Library/Application Support/ClaudeCode/CLAUDE.md # macOS
/etc/claude-code/CLAUDE.md # Linux/WSL
C:\Program Files\ClaudeCode\CLAUDE.md # Windows
# 2) User (pessoal, todos os projetos)
~/.claude/CLAUDE.md
# 3) Project (compartilhado via git)
./CLAUDE.md
./.claude/CLAUDE.md
# 4) Local (pessoal neste projeto; nao commitar)
./CLAUDE.local.md # adicione ao .gitignoreExemplo de CLAUDE.md eficaz
# CLAUDE.md
## Stack do projeto
- Next.js 16 + App Router + Fumadocs
- TypeScript strict, Tailwind v4, pnpm 10
- Backend Go em backend/api/ (Gin + MongoDB + Redis)
## Comandos
- Dev: `pnpm dev` (http://localhost:3000)
- Lint: `pnpm lint:fix` (obrigatorio antes de commit)
- Build: `pnpm build` (requer GO_API_URL no .env.local)
- Testes unitarios: `pnpm vitest run` - NUNCA usar Jest
- E2E: `pnpm test`
## Convencoes
- Indentacao 2 espacos, sem tabs
- Links internos: `<Link>` do Next, nunca `<a href>`
- Commits: Conventional Commits em portugues
## Arquivos importantes
- Acesso a API: @src/lib/api.ts
- Config do site: @src/config/site.ts
- Guia de docs: @docs/git-workflow.md
## Proibicoes
- Nao recriar src/models/ nem src/lib/mongodb.ts
- Nao usar Jest - apenas Vitest
- Nao commitar sem rodar pnpm lint:fix antesImports com @path
# CLAUDE.md aceita imports recursivos (ate 5 niveis de profundidade)
Projeto: @README.md
Scripts disponiveis: @package.json
Convencoes de git: @docs/git-instructions.md
Preferencias pessoais: @~/.claude/my-prefs.md
# Paths relativos resolvem ao arquivo que contem o import
# (nao ao cwd). Absolutos e ~/ tambem funcionam.Auto memory
# Claude escreve notas proprias em:
~/.claude/projects/<projeto>/memory/
├── MEMORY.md # indice (primeiras 200 linhas / 25KB carregadas)
├── debugging.md # insights de debug
├── patterns.md # padroes descobertos
└── preferences.md # preferencias suas que ele notou
# Ativar/desativar
/memory # abre painel com toggle
# via settings.json:
{ "autoMemoryEnabled": false }
# Shortcut para adicionar memoria durante a conversa
# basta digitar uma linha comecando com #:
# sempre rode pnpm format antes de commitar.claude/rules/ — regras modulares
# Para projetos grandes, divida CLAUDE.md em arquivos tematicos
your-project/
├── .claude/
│ ├── CLAUDE.md
│ └── rules/
│ ├── code-style.md
│ ├── testing.md
│ └── api-design.md
# Rules podem ser path-scoped via frontmatter YAML:
---
paths:
- "src/api/**/*.ts"
- "backend/**/*.go"
---
# Estas regras so carregam quando Claude le arquivos no padrao..claude/rules/ path-scoped ou extraia para skills sob demanda.CLAUDE.md, não AGENTS.md. Se o repo já usa AGENTS.md (para Cursor, etc.), crie um CLAUDE.md com @AGENTS.md no topo e adicione instruções específicas do Claude abaixo.Hooks, Skills e MCP
Três formas de estender Claude Code: hooks disparam scripts em eventos do ciclo de vida, skills empacotam workflows reutilizáveis e MCP conecta fontes de dados externas.
Hooks — automação determinística
// .claude/settings.json
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "pnpm lint:fix",
"timeout": 30
}
]
}
],
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"if": "Bash(git push*)",
"command": "$CLAUDE_PROJECT_DIR/.claude/hooks/check-branch.sh"
}
]
}
],
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "echo \"[$(date)] $CLAUDE_PROMPT\" >> ~/.claude-log"
}
]
}
],
"Stop": [
{
"hooks": [
{ "type": "command", "command": "say 'Claude terminou'" }
]
}
]
}
}Eventos de hook
PreToolUse / PostToolUse
Antes e depois de cada ferramenta. Pode bloquear com exit code 2.
UserPromptSubmit
Antes do Claude ler seu prompt — útil para logs e validação.
Stop / SubagentStop
Quando o turno ou subagent termina. Ideal para notificações sonoras.
SessionStart / SessionEnd
Abertura/fechamento da sessão. Bom para carregar contexto extra.
PreCompact / PostCompact
Antes/depois da compactação automática da conversa.
InstructionsLoaded
Após carregar CLAUDE.md e rules — ótimo para debugar o que foi lido.
Skills — comandos customizados
# ~/.claude/skills/commit/SKILL.md - pessoal, todos os projetos
# ou .claude/skills/commit/SKILL.md - compartilhado via git
---
name: commit
description: Cria commit com mensagem convencional em portugues
disable-model-invocation: true # so voce invoca, Claude nao
allowed-tools: Bash(git add *) Bash(git commit *) Bash(git status *) Bash(git diff*)
---
Faca um commit das mudancas atuais:
1. Rode `git status` para ver arquivos modificados
2. Rode `git diff --staged` para revisar o que vai no commit
3. Analise os arquivos e escolha um escopo (feat, fix, refactor, docs, chore)
4. Escreva mensagem em portugues no padrao:
<tipo>(<escopo>): <descricao curta no imperativo>
5. Execute `git commit -m` com a mensagem gerada
6. Confirme com `git status` aposTipos de skill
Reference content
Convenções, padrões, domain knowledge. Claude aplica no contexto atual.
Task content
Playbook de múltiplos passos — deploy, commit, code review. Invocado com /nome.
Subagent (context: fork)
Executa em contexto isolado (Explore, Plan, etc.) e retorna só o resultado.
Bundled (built-in)
/simplify, /debug, /loop, /claude-api já vêm prontas.
MCP — Model Context Protocol
# MCP conecta Claude a fontes externas: bancos de dados, APIs, Slack, Jira.
# Instala servidores via CLI:
claude mcp add postgres \
--command "npx -y @modelcontextprotocol/server-postgres" \
--env POSTGRES_URL=postgresql://localhost/mydb
claude mcp add github \
--command "npx -y @modelcontextprotocol/server-github" \
--env GITHUB_PERSONAL_ACCESS_TOKEN=$GH_TOKEN
# Listar servidores configurados
claude mcp list
# Gerenciar durante a sessao
/mcp # mostra servidores e ferramentas disponiveis
# Ou via settings.json:
{
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp"]
},
"mongodb": {
"command": "npx",
"args": ["-y", "mongodb-mcp-server"],
"env": { "MDB_URI": "mongodb://localhost:27017" }
}
}
}@upstash/context7-mcp, Claude passa a buscar documentação atualizada de bibliotecas (React, Next, Prisma, etc.) direto do código, evitando respostas baseadas em training data desatualizada.Workflow Avançado
Dominando planning mode, subagents, compaction e integração com git, Claude Code deixa de ser "assistente" e vira um multiplicador real de produtividade.
Plan mode (Esc Esc)
# Dois toques em Esc (ou Shift+Tab para alternar) entram em plan mode.
# Claude investiga (Read/Glob/Grep), mas NAO edita nem roda comandos.
# Ao final, mostra um plano detalhado para aprovacao antes de executar.
# Exemplo de fluxo:
> Esc Esc
[plan mode ativo]
> Migre todas as chamadas de axios para fetch nativo.
-> Claude explora src/, lista os 23 arquivos afetados, descreve
as mudancas, mostra riscos e pede confirmacao.
-> Voce aprova com Enter ou volta ao modo default com Shift+Tab.
# Inicie ja em plan mode:
claude --permission-mode planExtended thinking
# Inclua a palavra "think" no prompt para aumentar o orcamento de raciocinio.
# Mais "think" = mais tokens de thinking antes da resposta final.
think # nivel basico
think hard # medio
think harder # alto
ultrathink # maximo (use em planejamento arquitetural)
# Exemplo:
"ultrathink: desenhe a arquitetura de cache para esta API Go,
considerando latencia, invalidacao e custo de memoria."Subagents
# Agents rodam em contexto isolado - nao poluem a conversa principal.
# Ideais para busca paralela, especializacao e tarefas longas.
# .claude/agents/explorer.md
---
name: explorer
description: Especialista em explorar grandes codebases sem editar
tools: Read, Glob, Grep, Bash
model: claude-sonnet-4-5
---
Voce e um agente de exploracao. NUNCA edite arquivos.
Encontre padroes, liste arquivos relevantes, mapeie dependencias
e retorne um sumario estruturado ao agente principal.
# Usar via Task tool (Claude delega automaticamente)
# ou invocar explicitamente:
/agents
# -> selecione explorer -> descreva a tarefaCompaction — sessões longas
# Quando o contexto enche, Claude compacta automaticamente.
# Ele resume a conversa e descarta detalhes, preservando:
# - CLAUDE.md (re-injetado do disco)
# - Skills invocadas recentemente (budget de 25k tokens)
# - Resumo da conversa anterior
# - Mensagem atual
# Comandos manuais:
/compact # compacta agora com resumo inteligente
/compact focus on the failing tests # compacta com foco especifico
/clear # limpa tudo e comeca fresh (perde contexto!)
# Boa pratica: /compact entre fases de trabalho grande.
# Ex.: depois de terminar um refactor, antes de comecar testes.Git workflow com skills nativas
# Peca em linguagem natural - Claude conhece git profundamente
"Crie um commit com as mudancas atuais, mensagem em portugues, conventional commits"
"Abra uma PR para main com titulo curto e checklist de testes no corpo"
"Veja os 5 ultimos commits, identifique o que quebrou o lint e reverta apenas aquele"
# Skills bundled uteis:
/review # revisa PR atual (usa gh pr view)
/security-review # audita branch por falhas de seguranca
/init # gera CLAUDE.md inicial do repo
# Em CI, use a action oficial no GitHub Actions:
# .github/workflows/claude.yml
# uses: anthropics/claude-code-action@v1Scheduled tasks e loops
# /loop - repete um prompt em intervalo (dentro da sessao)
/loop 5m /babysit-prs
/loop 30s verifique se o deploy subiu
# /schedule - agenda agents remotos (rodam mesmo com a maquina desligada)
/schedule # abre configurador
# Exemplos: "revisao diaria de PRs as 9h", "auditoria semanal de deps"
# Claude Code tambem roda no browser (claude.ai/code) e no app iOS,
# permitindo continuar sessoes do celular com claude --teleport.Best practices consolidadas
- Comece com
/initem cada projeto novo para gerar CLAUDE.md base. - Use
Esc Escpara mudanças grandes — aprovar o plano antes evita retrabalho. - CLAUDE.md curto e específico bate longo e vago — Claude segue com mais aderência.
- Hooks para o que tem que acontecer sempre (lint, format); skills para o que depende do contexto.
/compactentre fases de trabalho para manter o contexto limpo.- Prefira
-p(one-shot) em scripts — determinístico e stream-friendly. - Commits pequenos e seguidos deixam Claude trabalhar em pedaços — mais seguro e reversível.
- Sempre revise diffs antes de aceitar em
acceptEdits— IA erra, nós também.
Esc Esc + prompt amplo → plano. 2) Aprova, sai do plan mode. 3) Trabalha com acceptEdits. 4) /review no fim. 5) /commit como skill. 6) /compact e próxima fase.