Verboo Code é um fork do verboo (https://github.com/verbeux-ai/code),
que por sua vez originou-se do Claude Code. Este documento descreve como
sincronizar updates do upstream sem perder nossas mudanças de identidade.
# Renomear o origin atual (que aponta para Gitlawb/verboo) para upstream
git remote rename origin upstream
# Adicionar o origin Verboo (substitua pela URL do seu repo)
git remote add origin git@github.com:verbeux/verboo-code.git
# Verificar
git remote -vgit fetch upstream
git checkout -b sync/upstream-$(date +%Y%m%d)
git merge upstream/mainOs arquivos abaixo SEMPRE conflitam por design (são onde nosso rebrand vive).
Resolva preservando nossas mudanças, exceto quando o upstream alterar a lógica
em volta. Use git grep "VERBOO-BRAND" para localizar todos os pontos editados.
src/utils/theme.ts— cores roxas Verboo (#AD34FE) em 6 temas: keysclaude,claudeShimmer,clawd_body,briefLabelClaude, maisautoAccept/mergeddeslocados para ciano (evita colisão visual).src/components/LogoV2/Clawd.tsx— mascote fantasma 👻 (substitui ASCII do clawd). Mantém a funçãoClawdexportada para zero churn em call sites.src/components/LogoV2/WelcomeV2.tsx— string"Welcome to Verboo Code"(3 ocorrências).src/components/IdeOnboardingDialog.tsx— welcome IDE.src/utils/logoV2Utils.ts—'Welcome to Verboo Code'.
package.json—name,bin(verboo+verbooalias),description,repository.url,keywords.bin/verboo(novo, canônico) ebin/verboo(alias deprecated)..env.example— blocoVERBOO_*canônico,OPENCLAUDE_*como aliases deprecated.README.md,PLAYBOOK.md— rebrand textual completo.
src/commands.ts— linha de import e entry no array de comandos comentados.src/commands/provider/— arquivos NÃO foram deletados (upstream continua mexendo neles; deletar gera conflitos "deleted file modified upstream").
src/utils/providerValidation.ts(3 ocorrências)src/services/api/withRetry.tssrc/services/api/codexUsage.tssrc/services/api/openaiShim.tssrc/components/ProviderManager.tsxsrc/utils/attribution.ts— defaultAttribution e coAuthorDomain.
Padrão: process.env.VERBOO_X ?? process.env.OPENCLAUDE_X. Aplicado em:
src/cost-tracker.ts(LOG_TOKEN_USAGE)src/ink/terminal.ts(ENABLE_EXTENDED_KEYS)src/ink/components/App.tsx(USE_DATA_STDIN, USE_READABLE_STDIN)src/tools/FileReadTool/FileReadTool.ts(DISABLE_TOOL_REMINDERS)src/utils/messages.ts(DISABLE_TOOL_REMINDERS, 2 ocorrências)src/utils/attribution.ts(DISABLE_CO_AUTHORED_BY)src/entrypoints/cli.tsx(DISABLE_EARLY_INPUT)src/services/api/openaiShim.ts(DISABLE_STRICT_TOOLS)
Para conferir se algum novo OPENCLAUDE_* apareceu no upstream sem alias VERBOO:
grep -rn "process\.env\.OPENCLAUDE_" src/ | grep -v "VERBOO_"Todo bloco rebrand tem prefixo // VERBOO-BRAND: para grep rápido:
git grep "VERBOO-BRAND" src/Antes de cada sync, rode esse comando e mantenha um inventário mental dos pontos que devem ser preservados.
Os bundle IDs e endpoints de telemetria com prefixo com.anthropic.claude_code.*
permanecem como upstream:
src/utils/computerUse/common.tssrc/utils/deepLink/registerProtocol.tssrc/utils/settings/mdm/constants.tssrc/utils/telemetry/instrumentation.tssrc/services/analytics/firstPartyEventLogger*.tssrc/utils/claudeInChrome/setup.ts
Para um SaaS Verboo, a telemetria first-party Anthropic deve estar desativada via flags de runtime ou config. Não renomeie esses identifiers — vai gerar muitos conflitos de sync sem ganho real.
Strings com "Claude Code" em src/tools/*/prompt.ts NÃO devem ser
trocadas para "Verboo Code". Esses prompts treinam o modelo Claude da
Anthropic a reconhecer o ambiente de execução; trocar pode degradar
qualidade de tool-calling.
bun run rebrand:check # falha se literais "Verboo Code"/cor laranja voltaram
bun run typecheck
bun run build
bun test
node dist/cli.mjs --version
# Smoke interativo:
node dist/cli.mjs
# Conferir: splash "Welcome to Verboo Code", cor roxa, 👻, /provider ausente.Topologia Verboo usa hosts/path hardcoded, sem overrides via env var ou parâmetro — Verboo Code só fala com endpoints próprios:
https://code.verboo.ai/api/router→ API LLM (completions,/v1/messages,/v1/models). Hardcoded emsrc/upstreamproxy/upstreamproxy.tsesrc/components/StartupScreen.ts.https://code.verboo.ai→ frontend (gerenciamento de conta, docs, suporte). OAuth emhttps://code.verboo.ai/oauth/*; management API (uploads, user mgmt) emhttps://code.verboo.ai/api. Hardcoded emsrc/constants/oauth.ts,src/utils/http.ts(VERBOO_WEB_URLconst),src/utils/preflightChecks.tsx,src/tools/BriefTool/upload.ts.
Ao sincronizar com upstream verboo, qualquer reintrodução de fallback
para ANTHROPIC_BASE_URL, VERBOO_API_URL, VERBOO_WEB_URL, parâmetro
ccrBaseUrl, ou getOauthConfig().BASE_API_URL nos call sites acima deve
ser revertida — a regra é uma URL única hardcoded por call site.
- Telemetria first-party Anthropic (1P/Datadog/GrowthBook) já está gated
off via
isAnalyticsDisabled() === trueemsrc/services/analytics/config.ts— herdado do upstream verboo. Não precisa novo gate. WebFetchTool/utils.ts:checkDomainBlocklistadicionou gate adicional para pular o request aapi.anthropic.com/api/web/domain_infoquandoVERBOO_API_URLestá setado (ouANTHROPIC_BASE_URLaponta fora deapi.anthropic.com). Sem deletar código upstream.
scripts/rebrand-check.ts mantém uma allowlist de arquivos onde literais
"Verboo Code" são intencionalmente preservados (testes, features off, prompts
de tool, /provider deprecated). Quando upstream adiciona um arquivo novo
com strings da marca antiga, decida:
- Se é user-visible → atualizar para "Verboo Code".
- Se é gated/teste/comment → adicionar caminho à allowlist em
scripts/rebrand-check.ts.