Configuração pessoal completa e portável do Claude Code (@Bobagi):
skills, slash-commands, plugins, CLAUDE.md global, settings.json e o hook skill-first — tudo
versionado aqui e aplicado por um único script idempotente (sync.sh). Objetivo: abrir o Claude
numa máquina nova e, com um comando, deixar tudo igual em qualquer máquina.
Pré-requisitos: git e o Claude Code instalados.
curl -fsSL https://raw.githubusercontent.com/Bobagi/claude-skills/main/sync.sh | bashOu peça pra IA: "sincronize meu Claude com o repo github.com/Bobagi/claude-skills" — ela acha o
sync.sh e roda. Com o repo já presente, dá pra rodar de novo a qualquer momento com /sync-claude
ou bash <repo>/sync.sh. Depois, reinicie o Claude (um claude novo) para carregar plugins e hooks.
Variáveis úteis:
CLAUDE_SKILLS_DIR=/caminho(onde clonar, padrão~/.claude/claude-skills) eSYNC_SKIP_PLUGINS=1(só arquivos/symlinks, sem instalar plugins).
- Clona/atualiza este repo (detecta se já está em
/opt/claude-skillsou~/.claude/claude-skills). - Symlinks:
~/.claude/skills → repoe~/.claude/commands → repo/commands. - Copia config para
~/.claude/:CLAUDE.md,settings.json,skill-first-reminder.txt(faz backup do que existia em~/.claude/backups/). - Plugins: adiciona o marketplace
claude-plugins-officiale instala todos deconfig/plugins.txt.
~/.claude/settings.local.json(permissões específicas da máquina).- Segredos / memórias (
~/.claude/projects/*/memory/*, ex.: credenciais do VPS) — nunca vão pro repo. - MCP
claude.ai Gmail/Google Drive: voltam sozinhos após login na conta claude.ai (verconfig/mcp.md).
| Skill | Comando | Descrição |
|---|---|---|
vps |
/vps |
Acessa/gerencia o VPS pessoal via SSH (credenciais ficam fora do repo, na memória). |
frontend-review |
/frontend-review |
Revisor de front-end/UX agnóstico: screenshots multi-viewport + crítica de espaçamento/responsividade + review de código + a11y, contra uma rubric.md versionada que melhora a cada uso. |
resume |
/resume |
Resume um vídeo do YouTube a partir do link. |
sync-claude |
/sync-claude |
Roda o sync.sh (padroniza a config desta máquina). |
google-play |
/gplay |
Releases na Play Store via Play Developer API (service account): sobe AAB, tracks, promoção, rollout gradual, reviews e listing. Credenciais fora do repo (~/.config/bobagi-google/); setup único do operador em google-play/SETUP.md. |
admob |
/admob |
Relatórios AdMob via API (receita, eCPM, impressões por dia/ad unit/país) + inventário de ad units. OAuth do dono da conta (setup único em admob/SETUP.md); escrita de inventário é restrita pelo Google (fallback manual documentado). |
| Plugin | Para que serve |
|---|---|
frontend-design |
Direção visual/estética para criar/redesenhar UI nova (par do frontend-review). |
claude-md-management |
Auditar/melhorar CLAUDE.md + capturar aprendizados de sessão. |
security-guidance |
Review de segurança (injeção, XSS, SSRF, segredos hardcoded). |
feature-dev |
Workflow de feature com agents (explorer/architect/reviewer) para itens grandes. |
chrome-devtools-mcp |
Inspeção/automação de browser ao vivo (perf/network/console/a11y) — fornece o MCP chrome-devtools. |
Instalar plugin do jeito certo:
claude plugin install <nome>@claude-plugins-official. Só marcarenabledPluginsno JSON NÃO instala (claude plugin listfica vazio e a skill não carrega). Após instalar, um restart limpo carrega;claude --resumerecarrega skills do repo mas não ativa plugins recém-instalados. Osync.shjá faz a instalação correta. Conferir comclaude plugin list.
MCP servers — ver config/mcp.md
| MCP | Origem | Numa máquina nova |
|---|---|---|
claude.ai Gmail |
Remoto, conta claude.ai | Reconecta após login (nada a instalar). |
claude.ai Google Drive |
Remoto, conta claude.ai | Reconecta após login. |
chrome-devtools |
Plugin chrome-devtools-mcp (stdio, npx) |
Vem com o plugin; conecta de fato só se houver Node + Chrome. |
config/settings.json→~/.claude/settings.json:model: opus,effortLevel: xhigh,theme: dark,permissions.defaultMode: auto, os 5 plugins habilitados e três hooks:UserPromptSubmit(skill-first),SessionStart(auto-pull) eSessionEnd(aviso de drift) — ver Auto-sync abaixo.config/skill-first-reminder.txt→~/.claude/skill-first-reminder.txt: payload JSON que o hook injeta a cada prompt (comsuppressOutput), reforçando a política skill-first.config/CLAUDE.md→~/.claude/CLAUDE.md: instruções globais (carregam em todo projeto).
Depois do primeiro sync.sh, manter as máquinas em dia é automático — sem precisar lembrar de
git pull/push. Funciona em Linux, macOS e Windows: cada hook tem duas variantes em
config/settings.json (shell: bash → claude-sync.sh; shell: powershell → claude-sync.ps1), e o
Claude Code escolhe a do SO. O caminho é sempre o portável ~/.claude/skills/scripts/... (resolve via
symlink no Linux/Mac e via junction no Windows). Os dois scripts têm a mesma lógica:
SessionStart→claude-sync.sh pull: a cada nova sessão dágit pull --ff-onlyno repo (skills e commands, por serem symlink, já ficam atuais na hora). Updates de config que estavam em sync são reaplicados em~/.claude/(com backup); edição local não-salva nunca é sobrescrita — vira aviso.SessionEnd→claude-sync.sh check: ao fim da sessão, se a config local divergir do repo, avisa para você rodar/sync-claude --save. Nunca pusha sozinho (o repo é público — push automático poderia vazar segredo)./sync-claude --save→claude-sync.sh save: caminho de captura (push). Copia~/.claude/{CLAUDE.md,settings.json,skill-first-reminder.txt}de volta praconfig/, faz um scan de segredos (aborta se achar credencial) e então commita + pusha — propagando às outras máquinas.
Os hooks são não-bloqueantes (offline/sem-repo não atrapalha a sessão). Para revisar/desligar: /hooks.
A IA deve procurar e usar skills/plugins antes de fazer a tarefa na mão — são o primeiro lugar a
olhar, não o último. Imposto por: (1) ~/.claude/CLAUDE.md com a regra + catálogo, e (2) o hook
UserPromptSubmit em settings.json que reinjeta o lembrete a cada prompt. Fluxo: olhar skills+plugins →
se alguma encaixar (mesmo parcial) invocar → só pular se nada for relevante → combinar quando fizer
sentido (frontend-design cria → frontend-review audita → simplify/code-review limpam → verify confirma).
claude-skills/
├── sync.sh # bootstrap/sync idempotente (curl|bash ou /sync-claude)
├── scripts/
│ ├── claude-sync.sh # auto-sync (bash: Linux/Mac/Git-Bash): pull/check/save
│ └── claude-sync.ps1 # auto-sync (PowerShell: Windows nativo): mesmo pull/check/save
├── config/ # config aplicada em ~/.claude/ pelo sync
│ ├── CLAUDE.md # -> ~/.claude/CLAUDE.md (instruções globais)
│ ├── settings.json # -> ~/.claude/settings.json (model/effort/theme/plugins/hook)
│ ├── skill-first-reminder.txt# -> ~/.claude/skill-first-reminder.txt (payload do hook)
│ ├── plugins.txt # lista de plugins que o sync instala
│ └── mcp.md # inventário/notas dos MCP servers
├── vps/SKILL.md # skill: VPS via SSH
├── frontend-review/ # skill: review de front-end (3 pilares)
│ ├── SKILL.md
│ ├── rubric.md # checklist/expertise versionada que cresce
│ └── scripts/capture.mjs # screenshots multi-viewport (Puppeteer headless)
├── resume/SKILL.md # skill: resumo de vídeo do YouTube
└── commands/ # slash-commands espelho (-> ~/.claude/commands)
├── vps.md
├── frontend-review.md
└── sync-claude.md
Pastas sem
SKILL.md(config/,commands/,scripts/) e arquivos soltos (README.md,sync.sh) são ignorados pelo loader de skills — por isso podem coexistir na raiz com as skills.
- Nova skill: crie
claude-skills/<nome>/SKILL.md, commite e dê push. O symlink já expõe na hora; rode/sync-claudenas outras máquinas (ougit pull). - Novo plugin: adicione a linha
<nome>@claude-plugins-officialemconfig/plugins.txt, registre no catálogo (este README +config/CLAUDE.md) e dê push.sync.shinstala no próximo run. - Mudar settings/hook/CLAUDE.md: edite em
config/, commit, push — ou edite localmente (~/.claude/...) e rode/sync-claude --save, que copia de volta pro repo, escaneia segredos e pusha. As outras máquinas pegam sozinhas no próximoSessionStart(auto-pull). - Depois de qualquer mudança, propague com
/sync-claude(ou ocurl|bash) e reinicie o Claude.
frontend-review(qualquer SO): Node 18+ e um Chromium para os screenshots.npm i -D puppeteer-core npx puppeteer browsers install chrome # ou: npx playwright install chromium # alternativa: CHROME_PATH=/caminho/para/chrome se já tiver um Chrome instalado.
vps(qualquer SO):sshpass+git(Linux/Mac) ou PuTTY (plink/pscp) no Windows; as credenciais ficam em~/.claude/projects/<projeto>/memory/vps_bobagi.md(fora do repo).chrome-devtools-mcp(plugin): Node/npx + Chrome para o MCP conectar.
Remove-Item -Recurse -Force "$env:USERPROFILE\.claude\skills","$env:USERPROFILE\.claude\commands" -ErrorAction SilentlyContinue
cmd /c mklink /J "$env:USERPROFILE\.claude\skills" "C:\caminho\claude-skills"
cmd /c mklink /J "$env:USERPROFILE\.claude\commands" "C:\caminho\claude-skills\commands"(No Linux/Mac o sync.sh já cria os symlinks equivalentes.)