[{"data":1,"prerenderedAt":3337},["ShallowReactive",2],{"search-navigation":3,"index-articles-pt":36},[4,8,12,16,20,24,28,32],{"title":5,"path":6,"stem":7},"Solving AI Agent Skills Fragmentation with npx skills","\u002Farticle\u002Fcentralised-the-skills-for-agents","en\u002Farticle\u002Fcentralised-the-skills-for-agents",{"title":9,"path":10,"stem":11},"Stop Exposing Your Vault: Secure NodeWarden with Cloudflare","\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare","en\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare",{"title":13,"path":14,"stem":15},"How to Self-Host a BitWarden Compatible Password Vault","\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare","en\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare",{"title":17,"path":18,"stem":19},"Google Antigravity 2 Hands-On: Setup & First Impressions","\u002Farticle\u002Fsetup-antigravity-2","en\u002Farticle\u002Fsetup-antigravity-2",{"title":21,"path":22,"stem":23},"NetSuite AI Connector Guide: MCP Setup & Use Cases","\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude","en\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"title":25,"path":26,"stem":27},"Testing Claude Fable 5: A Financial Analysis Review","\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis","en\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"title":29,"path":30,"stem":31},"Guide to Browser and Scheduler in Antigravity 2","\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2","en\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"title":33,"path":34,"stem":35},"Antigravity 2 in Action: AI Agents, Skills, and MCP","\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2","en\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",[37,527,740,969,1319,2062,2501,2747],{"id":38,"title":39,"author":40,"body":41,"category":40,"date":504,"description":505,"extension":506,"image":507,"imageAlt":508,"isPublished":509,"meta":510,"minRead":521,"navigation":509,"path":522,"seo":523,"stem":525,"__hash__":526},"article\u002Fpt\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude.md","Guia do Conector de IA do NetSuite: Configuração do MCP",null,{"type":42,"value":43,"toc":487},"minimark",[44,48,64,69,80,96,100,243,247,302,306,358,362,367,373,378,382,388,400,404,414,430,434,440,445,449,455,458,462],[45,46,47],"p",{},"O Oracle NetSuite é há muito tempo uma plataforma de planeamento de recursos empresariais (ERP) baseada na nuvem para pequenas e médias empresas. No entanto, a interface de utilizador do seu website é infame pela sua curva de aprendizagem acentuada, navegação complexa com muitos cliques e estruturas de relatórios rígidas.",[45,49,50,51,55,56,59,60,63],{},"Com o lançamento recente do ",[52,53,54],"strong",{},"NetSuite AI Connector Service",", os utilizadores podem aproveitar o ",[52,57,58],{},"Model Context Protocol (MCP)"," e os ",[52,61,62],{},"assistentes de IA (inteligência artificial)"," para fazer perguntas diretamente em linguagem natural e obter respostas em tempo real a partir de dados financeiros e operacionais.",[65,66,68],"h2",{"id":67},"como-funciona-o-conector-de-ia-do-netsuite-mcp","Como Funciona o Conector de IA do NetSuite MCP",[45,70,71,72,75,76,79],{},"O ",[52,73,74],{},"MCP do NetSuite"," expõe um conjunto de ferramentas à ",[52,77,78],{},"IA",", como a execução de consultas SuiteQL, leitura de pesquisas guardadas (Saved Searches) e relatórios, ou execução de operações de registo, como a criação de um novo registo de cliente. Todas as ferramentas são controladas pelos permissões nativos baseados em funções do NetSuite.",[45,81,82,83,85,86,88,89,92,93,95],{},"Quando um utilizador faz uma pergunta em linguagem natural, a ",[52,84,78],{}," utiliza o ",[52,87,58],{}," para traduzir o pedido em operações estruturadas que o NetSuite compreende. O ",[52,90,91],{},"NetSuite"," executa as operações utilizando as permissões do utilizador, e os resultados são devolvidos à ",[52,94,78],{}," para análise e apresentação.",[65,97,99],{"id":98},"guia-de-configuração-do-conector-de-ia-do-netsuite","Guia de Configuração do Conector de IA do NetSuite",[101,102,103,165,180,189,196,203,224],"ol",{},[104,105,106,107,110,111,114],"li",{},"Ativar o ",[52,108,109],{},"Server SuiteScript"," e o ",[52,112,113],{},"REST Web Services",[101,115,116,129,158],{},[104,117,118,119,123,124],{},"Aceda a ",[120,121,122],"em",{},"Setup > Company > Enable Features"," (Configuração > Empresa > Ativar Funcionalidades).\n",[125,126],"img",{"alt":127,"src":128},"Interface de configuração de Ativar Recursos do Oracle NetSuite para Configuração da Empresa","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-setup-company-enable-features.webp",[104,130,131,132,135,136],{},"No separador secundário ",[52,133,134],{},"SuiteCloud",":\n",[137,138,139,149],"ul",{},[104,140,141,142,144,145],{},"Em SuiteScript, selecione a caixa ",[52,143,109],{},".\n",[125,146],{"alt":147,"src":148},"Ativando o SuiteScript de Servidor na guia SuiteCloud do NetSuite","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-enable-features-server-suitescript.webp",[104,150,151,152,144,154],{},"Em SuiteTalk (Serviços Web), selecione a caixa ",[52,153,113],{},[125,155],{"alt":156,"src":157},"Ativando Serviços Web REST na guia SuiteCloud do NetSuite","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-enable-features-rest-web-services.webp",[104,159,160,161,164],{},"Clique em ",[52,162,163],{},"Guardar"," (Save).",[104,166,167,168,171,172,175,176],{},"Instale primeiro o ",[52,169,170],{},"NetSuite MCP Standard Tools",". Clique em ",[120,173,174],{},"Customization > SuiteCloud Development > SuiteApp Marketplace"," (Personalização > Desenvolvimento SuiteCloud > Mercado de SuiteApps).\n",[125,177],{"alt":178,"src":179},"Navegação para o mercado de aplicativos SuiteApp Marketplace em Personalização no NetSuite","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-suiteapp-marketplace-navigation.webp",[104,181,182,183,144,185],{},"Pesquise por ",[52,184,170],{},[125,186],{"alt":187,"src":188},"Pesquisa pelo NetSuite MCP Standard Tools no mercado de SuiteApps","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-suiteapp-marketplace-search-mcp-tools.webp",[104,190,191,192],{},"Assim que estiver instalado, verá o estado 'Installed' (Instalado) à direita.\n",[125,193],{"alt":194,"src":195},"NetSuite MCP Standard Tools mostrado como Instalado no mercado de SuiteApps","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-suiteapp-installed-status-mcp-tools.webp",[104,197,198,199],{},"Siga as mesmas instruções para instalar o 'NetSuite AI Connector Service Companion'.\n",[125,200],{"alt":201,"src":202},"NetSuite AI Connector Service Companion mostrado como Instalado","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-suiteapp-installed-ai-connector-companion.webp",[104,204,205,206],{},"Configurar um Registo de Integração\n",[101,207,208,217],{},[104,209,118,210,144,213],{},[120,211,212],{},"Setup > Integration > Manage Integrations",[125,214],{"alt":215,"src":216},"Navegação para Gerenciar Integrações no menu de Configuração do NetSuite","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-integration-manage-integrations-navigation.webp",[104,218,219,220],{},"Crie um Registo de Integração para o ChatGPT e regressaremos depois com o token_id real:\n",[125,221],{"alt":222,"src":223},"Criando um novo registro de integração no NetSuite para conexão com o ChatGPT","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-create-integration-record-chatgpt.webp",[104,225,226,227,231,235,239],{},"Crie uma função personalizada para o MCP com as permissões mínimas e atribua-a aos utilizadores. Ex.:\n",[125,228],{"alt":229,"src":230},"Configurando permissões de função personalizadas para a integração do NetSuite MCP - Parte 1","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-custom-role-mcp-permissions-1.webp",[125,232],{"alt":233,"src":234},"Configurando permissões de função personalizadas para a integração do NetSuite MCP - Parte 2","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-custom-role-mcp-permissions-2.webp",[125,236],{"alt":237,"src":238},"Configurando permissões de função personalizadas para a integração do NetSuite MCP - Parte 3","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-custom-role-mcp-permissions-3.webp",[125,240],{"alt":241,"src":242},"Configurando permissões de função personalizadas para a integração do NetSuite MCP - Parte 4","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-custom-role-mcp-permissions-4.webp",[65,244,246],{"id":245},"como-integrar-o-netsuite-mcp-com-o-chatgpt","Como Integrar o NetSuite MCP com o ChatGPT",[101,248,249,256,263,270,281,288,295],{},[104,250,251,252],{},"Clique em 'Settings' (Definições).\n",[125,253],{"alt":254,"src":255},"Navegação para Configurações na interface de usuário do ChatGPT","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fchatgpt-settings-navigation.webp",[104,257,258,259],{},"Clique em 'Apps' > 'Advanced settings' (Definições avançadas).\n",[125,260],{"alt":261,"src":262},"Navegação para Apps e Configurações avançadas na configuração do ChatGPT","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fchatgpt-apps-advanced-settings.webp",[104,264,265,266],{},"Ative o 'Developer mode' (Modo de programador) e clique em 'Create app' (Criar aplicação).                          s\n",[125,267],{"alt":268,"src":269},"Ativando o Modo de desenvolvedor e clicando em Criar app no ChatGPT","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fchatgpt-developer-mode-create-app.webp",[104,271,272,273,144,277],{},"Introduza os detalhes. Em Connection, introduza ",[274,275,276],"code",{},"https:\u002F\u002F\u003Caccount_id>.suitetalk.api.netsuite.com\u002Fservices\u002Fmcp\u002Fv1\u002Fall",[125,278],{"alt":279,"src":280},"Inserindo detalhes da URL de conexão do NetSuite MCP para criar o app no ChatGPT","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fchatgpt-create-app-netsuite-mcp-connection.webp",[104,282,283,284],{},"Clique em 'Create'. Uma vez integrado, verá o seguinte pop-up.\n",[125,285],{"alt":286,"src":287},"Confirmação em pop-up mostrando o NetSuite MCP integrado com sucesso no ChatGPT","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fchatgpt-netsuite-mcp-integrated-popup.webp",[104,289,290,291],{},"Clique em 'Sign in with NetSuite MCP' (Iniciar sessão com o NetSuite MCP).\n",[125,292],{"alt":293,"src":294},"Prompt do ChatGPT para fazer login com as ferramentas padrão do NetSuite MCP","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fchatgpt-sign-in-with-netsuite-mcp.webp",[104,296,297,298],{},"Clique no botão 'Continue' para conceder permissões.\n",[125,299],{"alt":300,"src":301},"Concedendo permissões de conexão para o NetSuite MCP na tela de autorização do ChatGPT","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fchatgpt-grant-permissions-netsuite-mcp.webp",[65,303,305],{"id":304},"como-integrar-o-netsuite-mcp-com-o-claude-ai","Como Integrar o NetSuite MCP com o Claude AI",[101,307,308,315,322,329,344,351],{},[104,309,310,311],{},"Clique em 'Customize' (Personalizar).\n",[125,312],{"alt":313,"src":314},"Clicando na opção Personalizar na interface de usuário do Claude AI","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fclaude-ai-customize-navigation.webp",[104,316,317,318],{},"Clique em 'Connect your apps' (Ligar as suas aplicações).\n",[125,319],{"alt":320,"src":321},"Clicando em Conectar seus apps nas configurações de personalização do Claude AI","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fclaude-ai-connect-your-apps.webp",[104,323,324,325],{},"Pesquise por 'NetSuite'.\n",[125,326],{"alt":327,"src":328},"Pesquisando o aplicativo NetSuite nos aplicativos conectados do Claude AI","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fclaude-ai-search-netsuite-app.webp",[104,330,331,332,335,336,339,340],{},"Clique em 'NetSuite' e introduza o URL do servidor: ",[274,333,334],{},"https:\u002F\u002F\u003Caccount_id>.suitetalk.api.netsuite.com\u002Fservices\u002Fmcp\u002Fv1\u002Fsuiteapp\u002Fcom.netsuite.mcpstandardtools",". Substitua ",[274,337,338],{},"\u003Caccount_id>"," pelo ID real da sua conta.\n",[125,341],{"alt":342,"src":343},"Inserindo a URL de conexão do servidor NetSuite MCP no Claude AI","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fclaude-ai-netsuite-mcp-server-url-setup.webp",[104,345,346,347],{},"Clique no botão 'Continue'.\n",[125,348],{"alt":349,"src":350},"Clicando em Continuar para autenticar a conexão do servidor NetSuite MCP no Claude","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fclaude-ai-netsuite-mcp-continue-authentication.webp",[104,352,353,354],{},"Clique em 'Continue' para autenticar o conector.\n",[125,355],{"alt":356,"src":357},"Verificação final de autenticação para o conector NetSuite MCP no Claude AI","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fclaude-ai-netsuite-mcp-authenticate-connector.webp",[65,359,361],{"id":360},"casos-de-uso-de-ia-do-netsuite","Casos de Uso de IA do NetSuite",[363,364,366],"h3",{"id":365},"caso-de-uso-no-chatgpt-mostrar-faturas-vencidas-há-mais-de-30-dias-no-netsuite","Caso de Uso no ChatGPT: Mostrar faturas vencidas há mais de 30 dias no NetSuite",[45,368,369],{},[125,370],{"alt":371,"src":372},"ChatGPT executando uma consulta SuiteQL para buscar faturas vencidas no NetSuite","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fchatgpt-netsuite-overdue-invoices-query-result.webp",[137,374,375],{},[104,376,377],{},"O ChatGPT criou a consulta SuiteQL e executou-a. Isto é extremamente prático e poupa imenso tempo em comparação com a criação de um relatório através da interface web do NetSuite.",[363,379,381],{"id":380},"caso-de-uso-no-chatgpt-e-claude-consegue-desenhar-as-vendas-dos-últimos-30-dias-num-gráfico-de-linhas","Caso de Uso no ChatGPT e Claude: Consegue desenhar as vendas dos últimos 30 dias num gráfico de linhas?",[45,383,384],{},[125,385],{"alt":386,"src":387},"ChatGPT falhando ao renderizar um gráfico de linhas de vendas a partir de dados do NetSuite","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fchatgpt-failed-render-netsuite-sales-line-graph.webp",[137,389,390,393],{},[104,391,392],{},"O ChatGPT não conseguiu gerar o gráfico de linhas.",[104,394,395,396],{},"Experimentei no Claude e funcionou. A diferença pode dever-se às capacidades do modelo de linguagem de grande dimensão (LLM).\n",[125,397],{"alt":398,"src":399},"Claude AI renderizando com sucesso um gráfico de linhas visual das vendas do NetSuite","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fclaude-ai-successfully-rendered-netsuite-sales-line-graph.webp",[363,401,403],{"id":402},"caso-de-uso-no-claude-criar-um-registo-de-cliente","Caso de Uso no Claude: Criar um registo de cliente",[45,405,406,410],{},[125,407],{"alt":408,"src":409},"Prompt do Claude AI para criar um novo registro de cliente no NetSuite","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fclaude-ai-create-netsuite-customer-record-prompt.webp",[125,411],{"alt":412,"src":413},"Confirmação do Claude AI sobre a criação bem-sucedida do registro de cliente no NetSuite","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fclaude-ai-create-netsuite-customer-record-success.webp",[137,415,416,423],{},[104,417,418,419],{},"Uma verificação rápida na interface do NetSuite confirma que o registo foi criado com sucesso.\n",[125,420],{"alt":421,"src":422},"Verificando o registro de cliente recém-criado na interface de usuário web do NetSuite","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-ui-verify-new-customer-record-created.webp",[104,424,425,426],{},"A execução no ChatGPT mostra que o registo está disponível:\n",[125,427],{"alt":428,"src":429},"ChatGPT confirmando que o novo registro de cliente do NetSuite está disponível","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fchatgpt-verify-netsuite-customer-record-available.webp",[363,431,433],{"id":432},"caso-de-uso-no-claude-executar-consulta-suiteql","Caso de Uso no Claude: Executar Consulta SuiteQL",[45,435,436],{},[125,437],{"alt":438,"src":439},"Claude AI executando diretamente e exibindo resultados de uma consulta SuiteQL do NetSuite","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fclaude-ai-run-suiteql-query-result.webp",[137,441,442],{},[104,443,444],{},"A consulta SuiteQL pode ser executada diretamente.",[65,446,448],{"id":447},"considerações-finais-sobre-o-conector-de-ia-do-netsuite","Considerações Finais sobre o Conector de IA do NetSuite",[45,450,451,452,454],{},"A maior vantagem de utilizar o MCP é para utilizadores que não têm perfil técnico suficiente para criar relatórios complexos. Estes utilizadores podem usar linguagem corrente para interrogar os dados e pedir à ",[52,453,78],{}," para apresentar o relatório exatamente como desejam.",[45,456,457],{},"Para evitar ataques de injeção de prompt e o uso indevido de operações de escrita, conceda apenas permissões de escrita a determinados registos e transações. Quando a IA usa o MCP para atualizar ou criar um registo, executa-o como SuiteScript do lado do servidor, o que ignora totalmente qualquer script do lado do cliente ou validação de força.",[65,459,461],{"id":460},"referências","Referências:",[137,463,464,473,480],{},[104,465,466],{},[467,468,472],"a",{"href":469,"rel":470},"https:\u002F\u002Fdocs.oracle.com\u002Fen\u002Fcloud\u002Fsaas\u002Fnetsuite\u002Fns-online-help\u002Farticle_0902023450.html#subsect_90090238176",[471],"nofollow","Instalação do SuiteApp MCP Standard Tools",[104,474,475],{},[467,476,479],{"href":477,"rel":478},"https:\u002F\u002Fdocs.oracle.com\u002Fen\u002Fcloud\u002Fsaas\u002Fnetsuite\u002Fns-online-help\u002Farticle_4160616848.html#subsect_0419123151",[471],"Perguntas Frequentes sobre o Serviço do Conector de IA do NetSuite",[104,481,482],{},[467,483,486],{"href":484,"rel":485},"https:\u002F\u002Fdocs.oracle.com\u002Fen\u002Fcloud\u002Fsaas\u002Fnetsuite\u002Fns-online-help\u002Fsection_0714082142.html#bridgehead_0804033331",[471],"Ligar ao Serviço do Conector de IA do NetSuite",{"title":488,"searchDepth":489,"depth":489,"links":490},"",2,[491,492,493,494,495,502,503],{"id":67,"depth":489,"text":68},{"id":98,"depth":489,"text":99},{"id":245,"depth":489,"text":246},{"id":304,"depth":489,"text":305},{"id":360,"depth":489,"text":361,"children":496},[497,499,500,501],{"id":365,"depth":498,"text":366},3,{"id":380,"depth":498,"text":381},{"id":402,"depth":498,"text":403},{"id":432,"depth":498,"text":433},{"id":447,"depth":489,"text":448},{"id":460,"depth":489,"text":461},"2026-06-13","Configure o Conector de IA do NetSuite (MCP) com o ChatGPT e Claude. Descubra como consultar dados de ERP e automatizar tarefas usando linguagem natural.","md","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002FPT-Setup-NetSuite-MCP-on-ChatGPT-%26-Claude.webp","Miniatura de integração de IA do NetSuite MCP apresentando fundo corporativo azul escuro com logotipos do ChatGPT e Claude conectados ao banco de dados em nuvem do NetSuite",true,{"tags":511,"schemaOrg":516,"robots":519,"sitemap":520},[91,512,513,514,515],"MCP","ChatGPT","Claude","AI",[517],{"@type":518,"headline":39,"description":505},"TechArticle","index, follow",{"lastmod":504},9,"\u002Fpt\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"title":524,"description":505,"ogTitle":39,"ogDescription":505,"twitterTitle":39,"twitterDescription":505},"Integração de IA do NetSuite MCP: Conectar ChatGPT e Claude","pt\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude","eRbVRIiG2s5BXR2CaQ7OpgnIgny2R_QC-xG_CtgAutU",{"id":528,"title":529,"author":40,"body":530,"category":40,"date":723,"description":724,"extension":506,"image":725,"imageAlt":726,"isPublished":509,"meta":727,"minRead":735,"navigation":509,"path":736,"seo":737,"stem":738,"__hash__":739},"article\u002Fpt\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis.md","Testando Claude Fable 5: Avaliação em Análise Financeira",{"type":42,"value":531,"toc":721},[532,543,554,557,563,580,590,596,602,608,630,639,653,661,679,682,693,702,705,718],[45,533,534,535,538,539],{},"Em 9 de junho de 2026, a Anthropic lançou o ",[52,536,537],{},"Claude Fable 5",", um modelo de classe Mythos com salvaguardas avançadas em áreas como cibersegurança, destilação, química e biologia.\n",[125,540],{"alt":541,"src":542},"Anúncio oficial de lançamento do Anthropic Claude Fable 5 e recursos avançados do modelo","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fclaude-fable-5-launch-announcement.webp",[45,544,545,546,549,550],{},"A Anthropic publicou dados mostrando que o Fable 5 está à frente do Opus 4.8 e do GPT-5.5 em vários benchmarks importantes. No ",[52,547,548],{},"GDPval-AA (trabalho cognitivo)",", ele está significativamente à frente do Opus 4.8, GPT 5.5 e Gemini 3.1 Pro.\n",[125,551],{"alt":552,"src":553},"Comparação de benchmarks do Claude Fable 5 incluindo pontuação de trabalho cognitivo GDPval-AA","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fclaude-fable-5-benchmarks-gdpval-aa.webp",[45,555,556],{},"De acordo com o Claude, \"o Fable 5 apresenta forte desempenho em tarefas analíticas complexas\".",[45,558,559],{},[125,560],{"alt":561,"src":562},"Declaração de excelente desempenho do Claude Fable 5 em tarefas analíticas complexas","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fclaude-fable-5-analytical-performance-statement.webp",[45,564,565,566,569,570,573,574,579],{},"Decidimos testar o ",[52,567,568],{},"Fable 5"," executando uma análise comparativa da 'Space Exploration Technologies Corporation (SpaceX)' para fins de pesquisa de investimentos, utilizando a habilidade de '",[52,571,572],{},"comps-analysis","'. O arquivo 'skill.md' foi extraído do ",[467,575,578],{"href":576,"rel":577},"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Ffinancial-services\u002Fblob\u002Fmain\u002Fplugins\u002Fagent-plugins\u002Fmarket-researcher\u002Fskills\u002Fcomps-analysis\u002FSKILL.md",[471],"repositório de serviços financeiros do GitHub da Anthropic",".",[45,581,582,586],{},[125,583],{"alt":584,"src":585},"Iniciando a habilidade de análise comparativa financeira do SpaceX no chat do Claude Fable 5","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fspacex-comps-analysis-skill-initiation.webp",[125,587],{"alt":588,"src":589},"Claude Fable 5 executando a análise comparativa financeira automatizada para a SpaceX","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fspacex-comps-analysis-running-progress.webp",[45,591,592],{},[125,593],{"alt":594,"src":595},"Resultado final do fluxo de trabalho de análise financeira comparativa da SpaceX","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fspacex-comps-analysis-skill-results-terminal.webp",[45,597,598,599,601],{},"A tarefa levou cerca de 25 minutos. O Claude não fez perguntas para esclarecimento, exceto para pedir permissão de acesso a sites externos. Impressionantemente, o ",[52,600,568],{}," foi capaz de encontrar de forma independente as empresas concorrentes para a comparação.",[45,603,604],{},[125,605],{"alt":606,"src":607},"Claude Fable 5 solicitando permissão explícita para acessar de forma segura sites externos","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fclaude-fable-5-external-site-access-permission.webp",[45,609,610,614,615,618,619,624,625,579],{},[125,611],{"alt":612,"src":613},"Empresas concorrentes da SpaceX identificadas de maneira totalmente autônoma pelo Claude Fable 5","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fclaude-fable-5-spacex-comps-excel-memo.webp","\n*",[52,616,617],{},"Atenção:"," Este teste tem fins educacionais e de pesquisa e não constitui recomendação de investimento. Os arquivos originais gerados podem ser baixados aqui: ",[467,620,623],{"href":621,"rel":622},"https:\u002F\u002Ftechvoyage.dev\u002FSpaceX_Comps_Analysis_2026-06-10.xlsx",[471],"SpaceX_Comps_Analysis_2026-06-10.xlsx"," e ",[467,626,629],{"href":627,"rel":628},"https:\u002F\u002Ftechvoyage.dev\u002FSpaceX_Comps_Memo_2026-06-10.pdf",[471],"SpaceX_Comps_Memo_2026-06-10.pdf",[45,631,632,633,636,637,579],{},"Quando testamos a mesma habilidade usando o ",[52,634,635],{},"Qwen deep research",", tivemos que inserir manualmente as empresas concorrentes. Os dados numéricos apresentaram pequenas variações em relação ao ",[52,638,568],{},[45,640,641,645,649],{},[125,642],{"alt":643,"src":644},"Iniciando a análise comparativa financeira da SpaceX usando o Qwen deep research","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fqwen-deep-research-spacex-comps-initiation.webp",[125,646],{"alt":647,"src":648},"Inserção manual de empresas concorrentes no Qwen deep research para análise corporativa da SpaceX","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fqwen-deep-research-spacex-comps-running.webp",[125,650],{"alt":651,"src":652},"Visualização prévia do relatório financeiro de benchmarking da SpaceX gerado pelo Qwen","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fqwen-deep-research-spacex-comps-report-preview.webp",[45,654,655,656,579],{},"*O relatório gerado pelo Qwen pode ser baixado aqui: ",[467,657,660],{"href":658,"rel":659},"https:\u002F\u002Ftechvoyage.dev\u002FThe_SpaceX_Comp_Analysis_A_Statistical_Benchmark_of_Growth_Efficiency_and_Valuation_Against_Public_Peers.pdf",[471],"The_SpaceX_Comp_Analysis_A_Statistical_Benchmark_of_Growth_Efficiency_and_Valuation_Against_Public_Peers.pdf",[45,662,663,664,667,668,144,671,675],{},"Embora ambos os relatórios de Claude e Qwen tenham sido produzidos com base na mesma metodologia especificada na habilidade, os números divergiram porque Claude e Qwen extraíram dados de fontes diferentes. For exemplo, o Claude Fable 5 usou ",[52,665,666],{},"Stock Analysis",", enquanto o Qwen usou o ",[52,669,670],{},"SEC.gov",[125,672],{"alt":673,"src":674},"Dados financeiros corporativos extraídos do Stock Analysis pelo modelo Claude Fable 5","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fclaude-fable-5-data-source-stock-analysis.webp",[125,676],{"alt":677,"src":678},"Documentos oficiais da SEC e portal de dados do SEC.gov utilizados pelo Qwen deep research","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fqwen-deep-research-data-source-sec-gov.webp",[45,680,681],{},"O relatório do Qwen também continha muito mais informações sobre o modelo de negócios, estrutura de capital e operações corporativas.",[45,683,684,685,688,689],{},"Depois de comparar os relatórios, decidimos tentar novamente utilizando o comando ",[274,686,687],{},"\u002Fresearch"," no aplicativo de desktop do Claude.\n",[125,690],{"alt":691,"src":692},"Utilizando o novo comando de pesquisa no app de desktop do Claude para análise aprofundada de mercado","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fclaude-desktop-research-command-spacex.webp",[45,694,695,696,701],{},"O relatório de análise recém-gerado, ",[467,697,700],{"href":698,"rel":699},"https:\u002F\u002Ftechvoyage.dev\u002FSpaceX_Analysis.pdf",[471],"SpaceX_Analysis.pdf",", incluiu seções extras de recomendações e ressalvas. Comparado à pesquisa profunda do Qwen, ele ainda carecia de informações detalhadas da empresa, como as operações e a estrutura de capital.",[45,703,704],{},"Será que o Fable 5 vale o preço premium cobrado? Pode valer para tarefas complexas e longas e para codificação autônoma. No entanto, para certos trabalhos cognitivos, como análise de empresas, pode ainda não ser o melhor custo-benefício.",[45,706,707,708,710,711,144,714],{},"No final, testamos o quão bem o ",[52,709,568],{}," se desempenha em traduções. Estranhamente, o modelo reverteu automaticamente de volta para o ",[52,712,713],{},"Opus 4.8",[125,715],{"alt":716,"src":717},"O app de desktop do Claude revertendo automaticamente o modelo ativo de Fable 5 para Opus 4.8","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fclaude-fable-5-translation-opus-switching.webp",[45,719,720],{},"Será que isso significa que qualquer conversão de contexto longo será revertida para o Opus 4.8? Trata-se de uma instabilidade temporária durante o uso antes de 22 de junho? Ou o sistema é simplesmente inteligente o bastante para identificar que a tradução não requer um modelo tão potente?",{"title":488,"searchDepth":489,"depth":489,"links":722},[],"2026-06-11","Testamos o novo Claude Fable 5 da Anthropic contra o Qwen Deep Research para análise financeira. Será que essa atualização realmente vale o seu preço premium?","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002FPT-Testing-Claude-Fable-5-in-Financial-Analysis.webp","Claude Fable 5 vs Qwen: Teste de Análise Financeira de IA",{"tags":728,"schemaOrg":732,"robots":519,"sitemap":734},[537,729,730,731],"Análise Financeira","Qwen Deep Research","Benchmarks de IA",[733],{"@type":518,"headline":529,"description":724},{"lastmod":723},6,"\u002Fpt\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"title":726,"description":724,"ogTitle":529,"ogDescription":724,"twitterTitle":529,"twitterDescription":724},"pt\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis","rDwvk8PWA4_QhpzO33lzZQAevOa7iGJd_uQgK-MsQ4Q",{"id":741,"title":742,"author":40,"body":743,"category":40,"date":956,"description":957,"extension":506,"image":958,"imageAlt":959,"isPublished":509,"meta":960,"minRead":964,"navigation":509,"path":965,"seo":966,"stem":967,"__hash__":968},"article\u002Fpt\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2.md","Guia do Browser e do Scheduler no Google Antigravity 2",{"type":42,"value":744,"toc":951},[745,759,763,769,778,793,799,802,813,817,820,827,834,845,848,854,865,874,884,897,907,917,920,926,930,940],[45,746,747,748,624,751,754,755,758],{},"Os comandos ",[274,749,750],{},"\u002Fbrowser",[274,752,753],{},"\u002Fschedule"," no ",[52,756,757],{},"Google Antigravity 2"," redefinem a nossa forma de interagir com a IA. Estes dois comandos transformam o Antigravity numa plataforma de automação proativa que consegue interagir com a web em tempo real e executar fluxos de trabalho recorrentes.",[65,760,762],{"id":761},"browser-run","Browser Run",[45,764,765,766,768],{},"O comando ",[274,767,750],{}," força a utilização do navegador Chrome para concluir uma tarefa. Os utilizadores mantêm o controlo sobre quando e como os agentes acedem à web durante o fluxo de trabalho. São tiradas capturas de ecrã e gravações de vídeo durante o processo.",[45,770,771,774],{},[52,772,773],{},"Caso de Uso:",[125,775],{"alt":776,"src":777},"Usando o comando \u002Fbrowser para enviar uma licença médica","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fbrowser-command-sick-leave-prompt.webp",[45,779,780,781,785,789],{},"Abaixo estão os resultados apresentados pelo agente:\n",[125,782],{"alt":783,"src":784},"Subagente de automação do navegador iniciando a tarefa de envio de licença médica","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fbrowser-automation-subagent-delegation.webp",[125,786],{"alt":787,"src":788},"Automatizador de navegador configurando o Chrome com depuração remota e permissões","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fbrowser-automation-permissions-and-chrome-setup.webp",[125,790],{"alt":791,"src":792},"Subagente do navegador pausando em uma tela de login solicitando credenciais","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fbrowser-automation-login-wall-encountered.webp",[45,794,795],{},[125,796],{"alt":797,"src":798},"Subagente do navegador aguardando o usuário concluir o processo de login","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fbrowser-automation-waiting-for-user-login.webp",[45,800,801],{},"O Antigravity foi capaz de abrir a página e submeter o formulário. Quando é necessário iniciar sessão, o agente aguarda até que conclua o login no website.",[45,803,804,809,810,812],{},[805,806],"video",{"alt":807,"src":808,"controls":509},"Vídeo do subagente do navegador executando o processo de envio de licença médica","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fbrowser-automation-sick-leave-process.webm","\nO comando ",[274,811,750],{}," é útil quando precisamos da documentação mais recente da web, registos de alterações (changelogs), para testar aplicações web ou verificar o estado de APIs para concluir uma tarefa.",[65,814,816],{"id":815},"schedule-task","Schedule Task",[45,818,819],{},"O Antigravity 2 tem uma funcionalidade integrada para agendar tarefas. Iremos testá-la ao preencher automaticamente uma folha de horas (timesheet) a cada 10 minutos.",[45,821,822,823],{},"Clique em 'Scheduled Tasks' (Tarefas Agendadas):\n",[125,824],{"alt":825,"src":826},"Opção de menu Tarefas Agendadas na barra lateral","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fscheduled-tasks-menu-item.webp",[45,828,829,830],{},"Clique no botão '+ New' para criar uma nova tarefa agendada:\n",[125,831],{"alt":832,"src":833},"Visualização vazia de Tarefas Agendadas com um botão de nova tarefa","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fscheduled-tasks-empty-state-new-button.webp",[45,835,836,837,841],{},"Preencha o formulário e agende a tarefa para correr a cada 10 minutos:\n",[125,838],{"alt":839,"src":840},"Formulário de nova tarefa agendada preenchido para entrada automática no quadro de horários","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fscheduled-tasks-new-task-form.webp",[125,842],{"alt":843,"src":844},"Tarefa ativa de Entrada Automática no Quadro de Horários na lista de Tarefas Agendadas","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fscheduled-tasks-active-task-list.webp",[45,846,847],{},"A tarefa foi acionada, mas resultou num erro.",[45,849,850],{},[125,851],{"alt":852,"src":853},"Mensagem de erro indicando que não há modelos disponíveis para a camada flash","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fscheduled-tasks-error-no-models.webp",[45,855,856,857,860,861,864],{},"Tentámos adicionar valores 'env' ao ficheiro ",[274,858,859],{},"sidecar.json",", localizado em ",[274,862,863],{},".gemini\u002Fconfig\u002Fsidecars\u002Fauto-timesheet-entry",", mas continuámos a obter o mesmo erro.",[866,867,872],"pre",{"className":868,"code":870,"language":871},[869],"language-text","    \"env\": {\n        \"GEMINI_MODEL\": \"gemini-3.5-flash\",\n        \"GOOGLE_CLOUD_PROJECT\": \"your-gcp-project-id\"\n    }\n","text",[274,873,870],{"__ignoreMap":488},[45,875,876,877,880,881,579],{},"Inspecionando os logs das tarefas agendadas em ",[274,878,879],{},".gemini\u002Fantigravity\u002Fsidecar_data\u002F",", podemos ver ",[274,882,883],{},"[schedule] Triggering command: \"agentapi\" [new-conversation]",[45,885,886,887,892,893,896],{},"A resposta ao nosso problema publicado no ",[467,888,891],{"href":889,"rel":890},"https:\u002F\u002Fdiscuss.ai.google.dev\u002Ft\u002Fscheduled-tasks-in-antigravity-2-ended-with-errors\u002F168013",[471],"Fórum Build with Google AI"," sugere que é necessária uma chave de API para o ",[274,894,895],{},"agentapi",". Tentámos usar a chave de API, mas ainda assim sem sucesso.",[45,898,899,900,902,903],{},"Tentámos novamente utilizando o comando ",[274,901,753],{}," diretamente na caixa de conversação.\n",[125,904],{"alt":905,"src":906},"Usando o comando \u002Fschedule para solicitar a tarefa de automação do quadro de horários","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fschedule-command-timesheet-prompt.webp",[45,908,909,910,912,913],{},"As tarefas agendadas através do comando ",[274,911,753],{}," não aparecem na opção de menu 'Scheduled Tasks'.\n",[125,914],{"alt":915,"src":916},"A lista de Tarefas Agendadas não mostra as tarefas criadas pelo comando CLI","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fscheduled-tasks-list-missing-cli-task.webp",[45,918,919],{},"A tarefa cron foi devidamente acionada.",[45,921,922],{},[125,923],{"alt":924,"src":925},"Log da tarefa cron confirmando que ela foi acionada","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fcron-job-triggered-log.webp",[65,927,929],{"id":928},"considerações-finais","Considerações finais",[45,931,747,932,624,934,936,937,939],{},[274,933,750],{},[274,935,753],{}," no Antigravity 2 não são apenas funcionalidades isoladas; a sua combinação cria uma ferramenta extraordinária. Por exemplo, pode agendar um agente para usar o ",[274,938,750],{}," para aceder a websites de notícias e informação todas as segundas-feiras de manhã às 6:00, sintetizar os dados e apresentar um briefing diário completo.",[45,941,942,943,946,947,950],{},"Outros comandos, como o ",[274,944,945],{},"\u002Fgrill-me"," (mencionado no artigo ",[467,948,949],{"href":34},"Antigravity 2 em ação: agentes de IA, skills e o MCP","), podem ser usados ao planear novas tarefas agendadas. Este comando solicita ao agente que peça clarificações aos utilizadores sobre ambiguidades e detete casos limite antes de finalizar o planeamento.",{"title":488,"searchDepth":489,"depth":489,"links":952},[953,954,955],{"id":761,"depth":489,"text":762},{"id":815,"depth":489,"text":816},{"id":928,"depth":489,"text":929},"2026-06-07","Descubra como os comandos \u002Fbrowser e \u002Fschedule elevam o Google Antigravity 2 a uma poderosa plataforma de automação proativa com IA.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002FPT-Use-Browser-and-Scheduler-in-Antigravity-2.webp","Google Antigravity 2: Automação Web com Browser e Schedule",{"schemaOrg":961,"robots":519,"sitemap":963},[962],{"@type":518,"headline":959,"description":957},{"lastmod":956},5,"\u002Fpt\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"title":959,"description":957,"ogTitle":742,"ogDescription":957,"twitterTitle":742,"twitterDescription":957},"pt\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2","OsKd0cwP7T53fWd56ZcnRXV8yju3nY_1axJZC7UPPso",{"id":970,"title":949,"author":488,"body":971,"category":488,"date":1307,"description":1308,"extension":506,"image":1309,"imageAlt":1310,"isPublished":509,"meta":1311,"minRead":964,"navigation":509,"path":1315,"seo":1316,"stem":1317,"__hash__":1318},"article\u002Fpt\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2.md",{"type":42,"value":972,"toc":1297},[973,976,983,987,993,996,1000,1006,1009,1015,1021,1027,1038,1043,1048,1056,1060,1066,1072,1078,1081,1087,1093,1098,1103,1106,1110,1120,1126,1130,1136,1142,1148,1151,1155,1158,1162,1168,1174,1180,1183,1270,1276,1287,1290,1293],[45,974,975],{},"O Antigravity 2, como uma aplicação desktop focada em agentes, permite aos usuários orquestrar uma equipe de subagentes para gerar um resumo diário de e-mails e calendários, ou para construir, testar e implantar uma aplicação. Mas como isso realmente funciona na prática?",[45,977,978,979,982],{},"Vamos explorar o que o Antigravity 2 pode fazer por você — desde comandos e skills integrados até como integrações com servidores do Firebase Model Context Protocol (MCP) estão transformando desenvolvedores em arquitetos full-stack. Consulte este artigo, ",[467,980,981],{"href":18},"Google Antigravity 2: Instalação e Primeiras Impressões",", para saber como instalar e configurar as skills e os servidores MCP.",[65,984,986],{"id":985},"comandos-integrados","Comandos Integrados",[363,988,990],{"id":989},"goal",[274,991,992],{},"\u002Fgoal",[45,994,995],{},"Com este comando, você orienta o agente a rodar continuamente até que uma tarefa específica seja totalmente concluída.",[45,997,998],{},[52,999,773],{},[45,1001,1002],{},[125,1003],{"alt":1004,"src":1005},"Comando goal do Antigravity 2 para criar um jogo Textris","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-goal-command-prompt.webp",[45,1007,1008],{},"Quando solicitamos subagentes dinâmicos, três agentes são criados para realizar a tarefa.",[45,1010,1011],{},[125,1012],{"alt":1013,"src":1014},"Antigravity 2 gerando subagentes para concluir tarefas de forma autônoma","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-spawning-subagents-1.webp",[45,1016,1017],{},[125,1018],{"alt":1019,"src":1020},"Progresso detalhado dos subagentes do Antigravity 2 executando etapas","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-spawning-subagents-2.webp",[45,1022,1023],{},[125,1024],{"alt":1025,"src":1026},"Conclusão de tarefas autônomas pelos subagentes do Antigravity 2","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-spawning-subagents-3.webp",[45,1028,1029,1030,135,1034],{},"Para jogar o jogo Textris gerado em HTML, por favor clique neste ",[467,1031,1033],{"href":1032},"\u002Ftextris","link",[805,1035],{"alt":1036,"src":1037,"controls":509},"AI generated Textris game in HTML","https:\u002F\u002Fpub-9791558bbefc4bb59834a03ae5c44137.r2.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fai-generated-textri-game-html.webm",[45,1039,765,1040,1042],{},[274,1041,992],{}," cria um plano de ação, executa-o passo a passo e reporta o progresso a você em cada etapa. Além disso, o próprio agente gerencia a janela de contexto sem ultrapassar os limites de tokens. Isso é ideal para tarefas longas, como otimização de desempenho ou refatoração de módulos, que exigem várias rodadas de iteração.",[363,1044,1046],{"id":1045},"grill-me",[274,1047,945],{},[45,1049,1050,1051,1055],{},"Este comando ativa a skill ",[467,1052,1045],{"href":1053,"rel":1054},"https:\u002F\u002Fgithub.com\u002Fmattpocock\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fproductivity\u002Fgrill-me\u002FSKILL.md",[471],", desenvolvida por Matt Pocock. É uma ferramenta direta e altamente eficaz. O objetivo dela é questionar suas decisões de desenvolvimento sob múltiplos ângulos, esclarecer casos extremos, alinhar a estrutura e consolidar o plano antes do início da implementação.",[45,1057,1058],{},[52,1059,773],{},[45,1061,1062],{},[125,1063],{"alt":1064,"src":1065},"Acionando o comando grill-me para a arquitetura Cloudflare no Antigravity 2","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-grill-me-command-prompt.webp",[45,1067,1068],{},[125,1069],{"alt":1070,"src":1071},"Sessão interativa de perguntas usando a habilidade grill-me","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-grill-me-interaction-1.webp",[45,1073,1074],{},[125,1075],{"alt":1076,"src":1077},"Esclarecendo casos extremos e estruturando o plano com grill-me","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-grill-me-interaction-2.webp",[45,1079,1080],{},"Ele suporta seleção de múltiplas opções:",[45,1082,1083],{},[125,1084],{"alt":1085,"src":1086},"Usando recursos de múltipla escolha durante o processo grill-me","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-grill-me-multi-select-1.webp",[45,1088,1089],{},[125,1090],{"alt":1091,"src":1092},"Finalizando escolhas com o recurso de múltipla escolha do grill-me","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-grill-me-multi-select-2.webp",[45,1094,765,1095,1097],{},[274,1096,945],{}," é fascinante. Ele abrange quase todos os aspectos do design de arquitetura para implantação no Cloudflare. Isso o torna perfeito para o design de arquitetura de software, refatoração em vários domínios e outras tarefas de alta complexidade.",[363,1099,1100],{"id":488},[274,1101,1102],{},"@\u002F ",[45,1104,1105],{},"Este comando não aparece na lista pública, mas às vezes precisamos dele para gerenciar nossa janela de contexto. Ele é utilizado para incluir uma pasta ou arquivos específicos (não mídias) na caixa de conversa do chat.",[65,1107,1109],{"id":1108},"skills-habilidades","Skills (Habilidades)",[45,1111,1112,1113,1116,1117,579],{},"Podemos digitar ",[274,1114,1115],{},"\u002F"," para abrir o menu pop-up e escolher uma skill. Vamos testar a ",[274,1118,1119],{},"excalidraw-diagram",[45,1121,1122],{},[125,1123],{"alt":1124,"src":1125},"Selecionando a habilidade de diagrama Excalidraw na caixa pop-up do Antigravity","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-skill-selection-excalidraw.webp",[45,1127,1128],{},[52,1129,773],{},[45,1131,1132],{},[125,1133],{"alt":1134,"src":1135},"Fornecendo instruções para gerar um diagrama do Excalidraw","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-excalidraw-diagram-prompt.webp",[45,1137,1138],{},[125,1139],{"alt":1140,"src":1141},"Geração bem-sucedida de um diagrama de arquitetura do Excalidraw","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-excalidraw-diagram-generation.webp",[45,1143,1144],{},[125,1145],{"alt":1146,"src":1147},"Antigravity architecture diagram","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-architecture.webp",[45,1149,1150],{},"A skill foi executada com sucesso após algumas rodadas de confirmações de permissão de sistema.",[65,1152,1154],{"id":1153},"servidores-mcp","Servidores MCP",[45,1156,1157],{},"Quando o agente cria um backend, você normalmente precisa abrir um console web, criar um banco de dados, copiar chaves de API e colá-las de volta. Ao integrar servidores MCP diretamente no Antigravity, o agente ganha \"mãos\" para controlar sua infraestrutura de nuvem de forma autônoma.",[45,1159,1160],{},[52,1161,773],{},[45,1163,1164],{},[125,1165],{"alt":1166,"src":1167},"Instruindo o servidor MCP a criar um aplicativo da web Firebase","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-mcp-server-firebase-prompt.webp",[45,1169,1170],{},[125,1171],{"alt":1172,"src":1173},"Antigravity usando servidores MCP para manipular a infraestrutura do Firebase","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-mcp-server-firebase-execution-1.webp",[45,1175,1176],{},[125,1177],{"alt":1178,"src":1179},"Criação bem-sucedida de um aplicativo Firebase por meio de servidores MCP do Antigravity","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-mcp-server-firebase-execution-2.webp",[45,1181,1182],{},"O agente conseguiu criar o web app no Firebase usando servidores MCP com sucesso. Vamos checar o repositório.",[866,1184,1188],{"className":1185,"code":1186,"language":1187,"meta":488,"style":488},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","Create a new public GitHub repository called ‘to-do-app-techvoyage’. Then push all the current project files to it with the commit message ‘Initial commit — to-do-app’.\n","bash",[274,1189,1190],{"__ignoreMap":488},[1191,1192,1195,1199,1203,1206,1209,1212,1215,1218,1221,1224,1227,1230,1233,1236,1239,1242,1245,1248,1251,1253,1256,1259,1262,1264,1267],"span",{"class":1193,"line":1194},"line",1,[1191,1196,1198],{"class":1197},"sBMFI","Create",[1191,1200,1202],{"class":1201},"sfazB"," a",[1191,1204,1205],{"class":1201}," new",[1191,1207,1208],{"class":1201}," public",[1191,1210,1211],{"class":1201}," GitHub",[1191,1213,1214],{"class":1201}," repository",[1191,1216,1217],{"class":1201}," called",[1191,1219,1220],{"class":1201}," ‘to-do-app-techvoyage’.",[1191,1222,1223],{"class":1201}," Then",[1191,1225,1226],{"class":1201}," push",[1191,1228,1229],{"class":1201}," all",[1191,1231,1232],{"class":1201}," the",[1191,1234,1235],{"class":1201}," current",[1191,1237,1238],{"class":1201}," project",[1191,1240,1241],{"class":1201}," files",[1191,1243,1244],{"class":1201}," to",[1191,1246,1247],{"class":1201}," it",[1191,1249,1250],{"class":1201}," with",[1191,1252,1232],{"class":1201},[1191,1254,1255],{"class":1201}," commit",[1191,1257,1258],{"class":1201}," message",[1191,1260,1261],{"class":1201}," ‘Initial",[1191,1263,1255],{"class":1201},[1191,1265,1266],{"class":1201}," —",[1191,1268,1269],{"class":1201}," to-do-app’.\n",[45,1271,1272],{},[125,1273],{"alt":1274,"src":1275},"Agente enviando automaticamente arquivos de projeto para um novo repositório GitHub","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-github-repository-push.webp",[45,1277,1278,1279,1282,1283,579],{},"O repositório ",[274,1280,1281],{},"to-do-app-techvoyage"," está disponível no GitHub por este ",[467,1284,1033],{"href":1285,"rel":1286},"https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fto-do-app-techvoyage",[471],[65,1288,1289],{"id":928},"Considerações Finais",[45,1291,1292],{},"Embora o MCP e as Skills no Antigravity 2 — rodando com o ágil Gemini 3.5 Flash — entreguem uma velocidade surpreendente, o fluxo dos agentes atualmente sofre gargalos com constantes solicitações de permissão e falta de checkpoints de rollback. Até que um recurso de checkpoint seja lançado, commits de Git frequentes são sua rede de segurança indispensável.",[1294,1295,1296],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":488,"searchDepth":489,"depth":489,"links":1298},[1299,1304,1305,1306],{"id":985,"depth":489,"text":986,"children":1300},[1301,1302,1303],{"id":989,"depth":498,"text":992},{"id":1045,"depth":498,"text":945},{"id":488,"depth":498,"text":1102},{"id":1108,"depth":489,"text":1109},{"id":1153,"depth":489,"text":1154},{"id":928,"depth":489,"text":1289},"2026-06-06","Explore o Antigravity 2, um app desktop focado em agentes. Aprenda a orquestrar subagentes de IA, usar skills integradas e aproveitar servidores MCP.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002FPT-What-can-we-do-with-Antigravity-2.webp","Tutorial do Antigravity 2: agentes de IA, skills e servidores MCP",{"schemaOrg":1312,"robots":519,"sitemap":1314},[1313],{"@type":518,"headline":949,"description":1308},{"lastmod":1307},"\u002Fpt\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",{"title":1310,"description":1308,"ogTitle":949,"ogDescription":1308,"twitterTitle":949,"twitterDescription":1308},"pt\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2","v-k6PXRA0JeBDF2jAzE-wYdWDZOZ-opP2D3ZY73M2pU",{"id":1320,"title":981,"author":40,"body":1321,"category":40,"date":2050,"description":2051,"extension":506,"image":2052,"imageAlt":2053,"isPublished":509,"meta":2054,"minRead":1603,"navigation":509,"path":2058,"seo":2059,"stem":2060,"__hash__":2061},"article\u002Fpt\u002Farticle\u002Fsetup-antigravity-2.md",{"type":42,"value":1322,"toc":2041},[1323,1334,1338,1341,1352,1355,1359,1368,1374,1381,1387,1394,1404,1406,1410,1417,1423,1426,1432,1437,1440,1453,1467,1474,1487,1497,1511,1513,1517,1520,1535,1538,1883,1893,1899,1909,1915,1921,1927,1929,1933,1943,1957,1963,1969,1976,1995,1998,2004,2006,2010,2013,2019,2022,2028,2030,2032,2035,2038],[45,1324,1325,1326,1329,1330,1333],{},"No Google I\u002FO 2026, a Google anunciou o ",[52,1327,1328],{},"Antigravity 2",", um aplicativo de desktop independente que coloca o ",[52,1331,1332],{},"agente"," como a interface de usuário principal. Você simplesmente descreve o que deseja realizar, e o agente gera um plano, divide-o em subtarefas gerenciáveis e as executa.",[363,1335,1337],{"id":1336},"pré-requisitos","Pré-requisitos",[45,1339,1340],{},"Antes de começarmos, você precisará de:",[137,1342,1343,1346,1349],{},[104,1344,1345],{},"Um computador (usamos macOS neste guia)",[104,1347,1348],{},"Um navegador web moderno",[104,1350,1351],{},"Uma conta do Gmail",[1353,1354],"hr",{},[65,1356,1358],{"id":1357},"_1-instalar-o-antigravity-2","1. Instalar o Antigravity 2",[45,1360,1361,1362,1367],{},"Baixe o Antigravity 2 em ",[467,1363,1366],{"href":1364,"rel":1365},"https:\u002F\u002Fantigravity.google\u002Fdownload",[471],"antigravity.google"," e instale-o em seu computador. Na primeira inicialização, você será solicitado a fazer login com sua conta do Gmail.",[45,1369,1370],{},[125,1371],{"alt":1372,"src":1373},"Tela de login com conta Google na primeira inicialização do Antigravity 2","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-gmail-login.webp",[45,1375,1376,1377,1380],{},"Depois de fazer login, você notará um ",[52,1378,1379],{},"botão de voz"," no campo de entrada, permitindo gravar comandos de voz em vez de digitá-los.",[45,1382,1383],{},[125,1384],{"alt":1385,"src":1386},"Botão de gravação de voz no campo de texto do Antigravity 2","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-voice-input-field.webp",[45,1388,1389,1390,1393],{},"O Antigravity 2 também apresenta o conceito de ",[52,1391,1392],{},"Projeto"," (Project), que pode abranger várias pastas locais e operar com suas próprias configurações e permissões de agente específicas.",[45,1395,1396,1400],{},[125,1397],{"alt":1398,"src":1399},"Menu de seleção e configuração de projetos no Antigravity 2","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-project-menu.webp",[125,1401],{"alt":1402,"src":1403},"Criação de um novo projeto de IA com caminho de pasta no Antigravity 2","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-project-creation.webp",[1353,1405],{},[65,1407,1409],{"id":1408},"_2-configurar-servidores-mcp-e-plugins","2. Configurar Servidores MCP e Plugins",[45,1411,1412,1413,1416],{},"Todos os servidores de Model Context Protocol (MCP), plugins e habilidades (skills) são gerenciados na seção ",[52,1414,1415],{},"Customizations"," (Personalizações) no menu de configurações:",[45,1418,1419],{},[125,1420],{"alt":1421,"src":1422},"Guia de personalizações nas configurações para gerenciar servidores MCP","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-settings-customizations.webp",[45,1424,1425],{},"Atualmente, os únicos plugins disponíveis são da Google, mas esperamos que mais sejam lançados no futuro.",[45,1427,1428],{},[125,1429],{"alt":1430,"src":1431},"Lista de plugins oficiais do Google e integrações no Antigravity 2","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-google-plugins-list.webp",[1433,1434,1436],"h4",{"id":1435},"adicionando-um-servidor-mcp-disponível","Adicionando um Servidor MCP Disponível",[45,1438,1439],{},"Para instalar um servidor MCP pré-configurado (por exemplo, GitHub):",[101,1441,1442,1447],{},[104,1443,160,1444,579],{},[52,1445,1446],{},"Add MCP+",[104,1448,1449,1450,579],{},"Selecione o ",[52,1451,1452],{},"GitHub MCP Server",[45,1454,1455,1459,1463],{},[125,1456],{"alt":1457,"src":1458},"Adicionar um servidor MCP pré-configurado clicando no botão Add MCP plus","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-add-mcp-button.webp",[125,1460],{"alt":1461,"src":1462},"Seleção do GitHub MCP Server na lista de integrações disponíveis","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-select-github-mcp.webp",[125,1464],{"alt":1465,"src":1466},"Assistente de configuração e autorização do servidor MCP do GitHub","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-github-mcp-setup.webp",[45,1468,1469,1470],{},"A configuração do GitHub MCP Server terminou com um erro:\n",[125,1471],{"alt":1472,"src":1473},"Erro de configuração durante o processo de instalação do GitHub MCP Server","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-github-mcp-error.webp",[45,1475,1476,1477,1480,1481,1483,1484,1486],{},"Como já temos o ",[274,1478,1479],{},"git"," instalado no macOS, podemos contornar isso executando o comando ",[274,1482,1479],{}," diretamente na conversa. No entanto, primeiro precisamos adicionar explicitamente o comando ",[274,1485,1479],{}," às permissões do Antigravity.",[45,1488,1489,1493],{},[125,1490],{"alt":1491,"src":1492},"Caixa de diálogo para adicionar o comando git às permissões","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-add-git-permission-1.webp",[125,1494],{"alt":1495,"src":1496},"Concessão de permissão de execução do comando git no menu de configurações","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-add-git-permission-2.webp",[45,1498,1499,1500,1502,1503,1507],{},"Vamos testar o comando para ver se o ",[274,1501,1479],{}," agora funciona:\n",[125,1504],{"alt":1505,"src":1506},"Envio de solicitação de git status dentro da caixa de chat da IA","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-git-command-test-1.webp",[125,1508],{"alt":1509,"src":1510},"Execução bem-sucedida do comando git status diretamente no chat","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-git-command-test-2.webp",[1353,1512],{},[65,1514,1516],{"id":1515},"_3-adicionar-servidores-mcp-personalizados","3. Adicionar Servidores MCP Personalizados",[45,1518,1519],{},"Se o servidor MCP desejado não estiver na lista padrão, você poderá adicioná-lo editando o arquivo de configuração do MCP diretamente. A configuração está localizada em:",[866,1521,1523],{"className":1185,"code":1522,"language":1187,"meta":488,"style":488},"~\u002F.gemini\u002Fconfig\u002Fmcp_config.json\n",[274,1524,1525],{"__ignoreMap":488},[1191,1526,1527,1531],{"class":1193,"line":1194},[1191,1528,1530],{"class":1529},"sMK4o","~",[1191,1532,1534],{"class":1533},"sTEyZ","\u002F.gemini\u002Fconfig\u002Fmcp_config.json\n",[45,1536,1537],{},"Vamos adicionar alguns servidores MCP da Cloudflare como exemplo. Como a Cloudflare suporta registro dinâmico de clientes, precisamos apenas ativar o OAuth. Adicione o seguinte à sua configuração JSON:",[866,1539,1543],{"className":1540,"code":1541,"language":1542,"meta":488,"style":488},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","    \"cloudflare-api\": {\n      \"serverUrl\": \"https:\u002F\u002Fmcp.cloudflare.com\u002Fmcp\",\n      \"oauth\": {\n        \"enabled\": true\n      }\n    },\n    \"cloudflare-docs\": {\n      \"serverUrl\": \"https:\u002F\u002Fdocs.mcp.cloudflare.com\u002Fmcp\"\n    },\n    \"cloudflare-bindings\": {\n      \"serverUrl\": \"https:\u002F\u002Fbindings.mcp.cloudflare.com\u002Fmcp\",\n      \"oauth\": {\n        \"enabled\": true\n      }\n    },\n    \"cloudflare-builds\": {\n      \"serverUrl\": \"https:\u002F\u002Fbuilds.mcp.cloudflare.com\u002Fmcp\",\n      \"oauth\": {\n        \"enabled\": true\n      }\n    },\n    \"cloudflare-observability\": {\n      \"serverUrl\": \"https:\u002F\u002Fobservability.mcp.cloudflare.com\u002Fmcp\",\n      \"oauth\": {\n        \"enabled\": true\n      }\n    }\n","json",[274,1544,1545,1562,1587,1601,1617,1622,1629,1643,1662,1668,1682,1702,1715,1728,1733,1740,1754,1774,1787,1800,1805,1812,1826,1846,1859,1872,1877],{"__ignoreMap":488},[1191,1546,1547,1550,1553,1556,1559],{"class":1193,"line":1194},[1191,1548,1549],{"class":1529},"    \"",[1191,1551,1552],{"class":1201},"cloudflare-api",[1191,1554,1555],{"class":1529},"\"",[1191,1557,1558],{"class":1533},": ",[1191,1560,1561],{"class":1529},"{\n",[1191,1563,1564,1567,1571,1573,1576,1579,1582,1584],{"class":1193,"line":489},[1191,1565,1566],{"class":1529},"      \"",[1191,1568,1570],{"class":1569},"spNyl","serverUrl",[1191,1572,1555],{"class":1529},[1191,1574,1575],{"class":1529},":",[1191,1577,1578],{"class":1529}," \"",[1191,1580,1581],{"class":1201},"https:\u002F\u002Fmcp.cloudflare.com\u002Fmcp",[1191,1583,1555],{"class":1529},[1191,1585,1586],{"class":1529},",\n",[1191,1588,1589,1591,1594,1596,1598],{"class":1193,"line":498},[1191,1590,1566],{"class":1529},[1191,1592,1593],{"class":1569},"oauth",[1191,1595,1555],{"class":1529},[1191,1597,1575],{"class":1529},[1191,1599,1600],{"class":1529}," {\n",[1191,1602,1604,1607,1610,1612,1614],{"class":1193,"line":1603},4,[1191,1605,1606],{"class":1529},"        \"",[1191,1608,1609],{"class":1197},"enabled",[1191,1611,1555],{"class":1529},[1191,1613,1575],{"class":1529},[1191,1615,1616],{"class":1529}," true\n",[1191,1618,1619],{"class":1193,"line":964},[1191,1620,1621],{"class":1529},"      }\n",[1191,1623,1624,1627],{"class":1193,"line":735},[1191,1625,1626],{"class":1529},"    }",[1191,1628,1586],{"class":1533},[1191,1630,1632,1634,1637,1639,1641],{"class":1193,"line":1631},7,[1191,1633,1549],{"class":1529},[1191,1635,1636],{"class":1201},"cloudflare-docs",[1191,1638,1555],{"class":1529},[1191,1640,1558],{"class":1533},[1191,1642,1561],{"class":1529},[1191,1644,1646,1648,1650,1652,1654,1656,1659],{"class":1193,"line":1645},8,[1191,1647,1566],{"class":1529},[1191,1649,1570],{"class":1569},[1191,1651,1555],{"class":1529},[1191,1653,1575],{"class":1529},[1191,1655,1578],{"class":1529},[1191,1657,1658],{"class":1201},"https:\u002F\u002Fdocs.mcp.cloudflare.com\u002Fmcp",[1191,1660,1661],{"class":1529},"\"\n",[1191,1663,1664,1666],{"class":1193,"line":521},[1191,1665,1626],{"class":1529},[1191,1667,1586],{"class":1533},[1191,1669,1671,1673,1676,1678,1680],{"class":1193,"line":1670},10,[1191,1672,1549],{"class":1529},[1191,1674,1675],{"class":1201},"cloudflare-bindings",[1191,1677,1555],{"class":1529},[1191,1679,1558],{"class":1533},[1191,1681,1561],{"class":1529},[1191,1683,1685,1687,1689,1691,1693,1695,1698,1700],{"class":1193,"line":1684},11,[1191,1686,1566],{"class":1529},[1191,1688,1570],{"class":1569},[1191,1690,1555],{"class":1529},[1191,1692,1575],{"class":1529},[1191,1694,1578],{"class":1529},[1191,1696,1697],{"class":1201},"https:\u002F\u002Fbindings.mcp.cloudflare.com\u002Fmcp",[1191,1699,1555],{"class":1529},[1191,1701,1586],{"class":1529},[1191,1703,1705,1707,1709,1711,1713],{"class":1193,"line":1704},12,[1191,1706,1566],{"class":1529},[1191,1708,1593],{"class":1569},[1191,1710,1555],{"class":1529},[1191,1712,1575],{"class":1529},[1191,1714,1600],{"class":1529},[1191,1716,1718,1720,1722,1724,1726],{"class":1193,"line":1717},13,[1191,1719,1606],{"class":1529},[1191,1721,1609],{"class":1197},[1191,1723,1555],{"class":1529},[1191,1725,1575],{"class":1529},[1191,1727,1616],{"class":1529},[1191,1729,1731],{"class":1193,"line":1730},14,[1191,1732,1621],{"class":1529},[1191,1734,1736,1738],{"class":1193,"line":1735},15,[1191,1737,1626],{"class":1529},[1191,1739,1586],{"class":1533},[1191,1741,1743,1745,1748,1750,1752],{"class":1193,"line":1742},16,[1191,1744,1549],{"class":1529},[1191,1746,1747],{"class":1201},"cloudflare-builds",[1191,1749,1555],{"class":1529},[1191,1751,1558],{"class":1533},[1191,1753,1561],{"class":1529},[1191,1755,1757,1759,1761,1763,1765,1767,1770,1772],{"class":1193,"line":1756},17,[1191,1758,1566],{"class":1529},[1191,1760,1570],{"class":1569},[1191,1762,1555],{"class":1529},[1191,1764,1575],{"class":1529},[1191,1766,1578],{"class":1529},[1191,1768,1769],{"class":1201},"https:\u002F\u002Fbuilds.mcp.cloudflare.com\u002Fmcp",[1191,1771,1555],{"class":1529},[1191,1773,1586],{"class":1529},[1191,1775,1777,1779,1781,1783,1785],{"class":1193,"line":1776},18,[1191,1778,1566],{"class":1529},[1191,1780,1593],{"class":1569},[1191,1782,1555],{"class":1529},[1191,1784,1575],{"class":1529},[1191,1786,1600],{"class":1529},[1191,1788,1790,1792,1794,1796,1798],{"class":1193,"line":1789},19,[1191,1791,1606],{"class":1529},[1191,1793,1609],{"class":1197},[1191,1795,1555],{"class":1529},[1191,1797,1575],{"class":1529},[1191,1799,1616],{"class":1529},[1191,1801,1803],{"class":1193,"line":1802},20,[1191,1804,1621],{"class":1529},[1191,1806,1808,1810],{"class":1193,"line":1807},21,[1191,1809,1626],{"class":1529},[1191,1811,1586],{"class":1533},[1191,1813,1815,1817,1820,1822,1824],{"class":1193,"line":1814},22,[1191,1816,1549],{"class":1529},[1191,1818,1819],{"class":1201},"cloudflare-observability",[1191,1821,1555],{"class":1529},[1191,1823,1558],{"class":1533},[1191,1825,1561],{"class":1529},[1191,1827,1829,1831,1833,1835,1837,1839,1842,1844],{"class":1193,"line":1828},23,[1191,1830,1566],{"class":1529},[1191,1832,1570],{"class":1569},[1191,1834,1555],{"class":1529},[1191,1836,1575],{"class":1529},[1191,1838,1578],{"class":1529},[1191,1840,1841],{"class":1201},"https:\u002F\u002Fobservability.mcp.cloudflare.com\u002Fmcp",[1191,1843,1555],{"class":1529},[1191,1845,1586],{"class":1529},[1191,1847,1849,1851,1853,1855,1857],{"class":1193,"line":1848},24,[1191,1850,1566],{"class":1529},[1191,1852,1593],{"class":1569},[1191,1854,1555],{"class":1529},[1191,1856,1575],{"class":1529},[1191,1858,1600],{"class":1529},[1191,1860,1862,1864,1866,1868,1870],{"class":1193,"line":1861},25,[1191,1863,1606],{"class":1529},[1191,1865,1609],{"class":1197},[1191,1867,1555],{"class":1529},[1191,1869,1575],{"class":1529},[1191,1871,1616],{"class":1529},[1191,1873,1875],{"class":1193,"line":1874},26,[1191,1876,1621],{"class":1529},[1191,1878,1880],{"class":1193,"line":1879},27,[1191,1881,1882],{"class":1529},"    }\n",[45,1884,1885,1886,1888,1889,1892],{},"Volte para a seção ",[52,1887,1415],{}," no aplicativo e clique no botão ",[52,1890,1891],{},"Refresh"," (Atualizar). Agora você verá os servidores MCP da Cloudflare listados, pendentes de autorização.",[45,1894,1895],{},[125,1896],{"alt":1897,"src":1898},"Servidores MCP da Cloudflare listados pendentes de autorização","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-cloudflare-mcp-pending.webp",[45,1900,160,1901,1904,1905,1908],{},[52,1902,1903],{},"Authenticate"," ao lado do servidor MCP. Isso abrirá uma página de autenticação no seu navegador web. Depois de autenticado, um código de autorização (",[52,1906,1907],{},"auth code",") será gerado.",[45,1910,1911],{},[125,1912],{"alt":1913,"src":1914},"Navegador web exibindo o código de autorização OAuth dinâmico","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-cloudflare-auth-code.webp",[45,1916,1917,1918,579],{},"Copie esse código de autorização, cole-o de volta no campo de entrada de texto no Antigravity e clique em ",[52,1919,1920],{},"Submit",[45,1922,1923],{},[125,1924],{"alt":1925,"src":1926},"Envio do código de verificação OAuth na interface do Antigravity","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-cloudflare-auth-submit.webp",[1353,1928],{},[65,1930,1932],{"id":1931},"_4-adicionar-habilidades-personalizadas","4. Adicionar Habilidades Personalizadas",[45,1934,1935,1936,1939,1940,579],{},"Atualmente, a adição de habilidades personalizadas (skills) ",[52,1937,1938],{},"não pode"," ser feita diretamente pela interface do usuário do aplicativo de desktop. Em vez disso, elas devem ser adicionadas diretamente na pasta ",[274,1941,1942],{},"~\u002F.gemini\u002Fconfig\u002Fskills",[45,1944,1945,1946,1949,1950],{},"Como usamos a CLI ",[274,1947,1948],{},"npx skills"," para centralizar todas as habilidades de nossos agentes, qualquer nova habilidade adicionada pode ser disponibilizada para todos os agentes, incluindo o Antigravity. ",[120,1951,1952,1953,1956],{},"(Para saber mais sobre isso, consulte nosso artigo: ",[467,1954,1955],{"href":6},"Fim da fragmentação de habilidades de agentes usando npx skills",").",[45,1958,1959,1960,1962],{},"Inicialmente, ao digitar ",[274,1961,1115],{}," na caixa de conversa, a lista de habilidades aparece vazia:",[45,1964,1965],{},[125,1966],{"alt":1967,"src":1968},"Caixa de comandos exibindo lista de habilidades vazia ao digitar barra","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-empty-skills-list.webp",[45,1970,1971,1972,1975],{},"Parece que o Antigravity 2 não lê automaticamente a pasta global de habilidades (",[274,1973,1974],{},"~\u002F.agents\u002Fskills","). Para corrigir isso, precisamos criar um link simbólico apontando para o diretório de configuração do Antigravity:",[866,1977,1979],{"className":1185,"code":1978,"language":1187,"meta":488,"style":488},"ln -s ~\u002F.agents\u002Fskills\u002Fexcalidraw-diagram ~\u002F.gemini\u002Fconfig\u002Fskills\u002Fexcalidraw-diagram\n",[274,1980,1981],{"__ignoreMap":488},[1191,1982,1983,1986,1989,1992],{"class":1193,"line":1194},[1191,1984,1985],{"class":1197},"ln",[1191,1987,1988],{"class":1201}," -s",[1191,1990,1991],{"class":1201}," ~\u002F.agents\u002Fskills\u002Fexcalidraw-diagram",[1191,1993,1994],{"class":1201}," ~\u002F.gemini\u002Fconfig\u002Fskills\u002Fexcalidraw-diagram\n",[45,1996,1997],{},"Depois de vinculado, a habilidade fica disponível no aplicativo!",[45,1999,2000],{},[125,2001],{"alt":2002,"src":2003},"Habilidade de diagramas do Excalidraw aparecendo na lista de comandos","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-excalidraw-skill-available.webp",[1353,2005],{},[65,2007,2009],{"id":2008},"_5-testar-uma-tarefa-simples","5. Testar uma Tarefa Simples",[45,2011,2012],{},"Agora que tudo está configurado, vamos fazer um teste.",[45,2014,2015],{},[125,2016],{"alt":2017,"src":2018},"Envio de uma tarefa de teste para listar bancos de dados D1","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-test-simple-task-prompt.webp",[45,2020,2021],{},"Como mostrado abaixo, o modelo detecta e utiliza com sucesso o servidor MCP da Cloudflare recém-adicionado para lidar com a solicitação.",[45,2023,2024],{},[125,2025],{"alt":2026,"src":2027},"Agente de IA executando com sucesso a listagem de bancos de dados D1","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-test-task-success.webp",[1353,2029],{},[65,2031,1289],{"id":928},[45,2033,2034],{},"O Antigravity 2 representa uma grande mudança de uma IDE tradicional para um aplicativo de desktop acessível, capacitando os usuários comuns a atuarem como orquestradores de qualquer tarefa.",[45,2036,2037],{},"No entanto, o Antigravity 2 precisa de alguns ajustes. Quando as funcionalidades falham, a depuração pode ser frustrante devido ao tratamento de erros vago. Além disso, a documentação oficial parece pouco refinada — provavelmente gerada por IA —, já que várias referências e caminhos de arquivo estão incorretos no momento.",[1294,2039,2040],{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":488,"searchDepth":489,"depth":489,"links":2042},[2043,2044,2045,2046,2047,2048,2049],{"id":1336,"depth":498,"text":1337},{"id":1357,"depth":489,"text":1358},{"id":1408,"depth":489,"text":1409},{"id":1515,"depth":489,"text":1516},{"id":1931,"depth":489,"text":1932},{"id":2008,"depth":489,"text":2009},{"id":928,"depth":489,"text":1289},"2026-06-05","Descubra as novidades do Google Antigravity 2. Leia nosso guia prático para instalar o aplicativo, testar tarefas de agentes de IA e adicionar servidores MCP personalizados manualmente.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002FPT-Setup-Antigravity-2.0.webp","Análise e Configuração do Google Antigravity 2: Agentes de IA, MCPs e Plugins",{"schemaOrg":2055,"robots":519,"sitemap":2057},[2056],{"@type":518,"headline":2053,"description":2051},{"lastmod":2050},"\u002Fpt\u002Farticle\u002Fsetup-antigravity-2",{"title":2053,"description":2051,"ogTitle":981,"ogDescription":2051,"twitterTitle":981,"twitterDescription":2051},"pt\u002Farticle\u002Fsetup-antigravity-2","N8a0TiXaX04kPcM6BSaelIqeeO81TtC0LrLOgzU2y0o",{"id":2063,"title":1955,"author":40,"body":2064,"category":40,"date":2487,"description":2488,"extension":506,"image":2489,"imageAlt":2490,"isPublished":509,"meta":2491,"minRead":1603,"navigation":509,"path":2497,"seo":2498,"stem":2499,"__hash__":2500},"article\u002Fpt\u002Farticle\u002Fcentralised-the-skills-for-agents.md",{"type":42,"value":2065,"toc":2477},[2066,2077,2080,2103,2119,2123,2133,2149,2159,2166,2169,2194,2200,2211,2229,2238,2248,2252,2259,2280,2283,2289,2299,2305,2308,2328,2337,2341,2347,2422,2428,2432,2468,2474],[45,2067,2068,2069,2072,2073,2076],{},"Se você executa múltiplos agentes de IA ou CLIs em seu computador — seja Hermes, Claude Code, Codex, Antigravity, Kimi ou outras ferramentas compatíveis —, provavelmente já enfrentou um problema frustrante: ",[52,2070,2071],{},"a fragmentação de habilidades"," (skills). Cada agente ou CLI mantém sua própria pasta ",[274,2074,2075],{},"skills"," separada, o que leva a instalações duplicadas, divergência de versões e sobrecarga de gerenciamento.",[45,2078,2079],{},"Em nosso trabalho diário com agentes de IA, frequentemente nos deparávamos com os seguintes problemas:",[137,2081,2082,2088,2094],{},[104,2083,2084,2087],{},[52,2085,2086],{},"Múltiplas instalações",": Instalar uma nova habilidade para um agente e depois ter que instalá-la novamente para cada um dos outros.",[104,2089,2090,2093],{},[52,2091,2092],{},"Divergência de versões"," (version drift): Personalizar ou corrigir uma habilidade para um agente, esquecer de atualizar o restante e acabar com agentes se comportando de forma diferente.",[104,2095,2096,2099,2100,2102],{},[52,2097,2098],{},"Gerenciamento de habilidades",": Ter que vasculhar cada pasta ",[274,2101,2075],{}," de cada agente no sistema apenas para ver quais habilidades estavam realmente instaladas.",[45,2104,71,2105,2107,2108,2110,2111,579],{},[274,2106,1948],{}," CLI, uma ferramenta de linha de comando de código aberto desenvolvida pela Vercel, resolve esse problema permitindo que você gerencie uma única pasta ",[274,2109,2075],{}," centralizada e a compartilhe entre todos os seus agentes. Você pode conferir o ",[467,2112,2115,2116,2118],{"href":2113,"rel":2114},"https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fskills",[471],"repositório do ",[274,2117,1948],{}," no GitHub",[65,2120,2122],{"id":2121},"pasta-centralizada","Pasta Centralizada",[45,2124,2125,2126,2128,2129,2132],{},"O conceito é simples: se apontarmos a pasta ",[274,2127,2075],{}," de cada agente para a ",[52,2130,2131],{},"mesma pasta física",", o problema da fragmentação desaparece por completo.",[45,2134,2135,2136,2138,2139,2141,2142,2145,2146,2148],{},"Quando você instala uma habilidade usando o ",[274,2137,1948],{}," CLI, ela é baixada para a pasta centralizada em sua máquina (",[274,2140,1974],{},"). Em seguida, o CLI cria um ",[52,2143,2144],{},"link simbólico"," (symlink, que funciona como um atalho direto) da pasta ",[274,2147,2075],{}," de cada agente de volta para essa pasta centralizada.",[45,2150,2151,2152,2155,2156,2158],{},"Por exemplo, quando o Claude Code procura por habilidades em ",[274,2153,2154],{},"~\u002F.claude\u002Fskills\u002F",", ele é redirecionado de forma transparente para ",[274,2157,1974],{},". Se você fizer um ajuste em uma habilidade dentro dessa pasta centralizada, cada agente verá a atualização instantaneamente. Sem cópias manuais, sem scripts de sincronização e sem desperdício de espaço em disco.",[65,2160,2162,2163,2165],{"id":2161},"instalando-o-npx-skills-e-adicionando-uma-habilidade","Instalando o ",[274,2164,1948],{}," e Adicionando uma Habilidade",[45,2167,2168],{},"Execute o seguinte comando para começar e adicionar nossa primeira habilidade:",[866,2170,2172],{"className":1185,"code":2171,"language":1187,"meta":488,"style":488},"npx skills add https:\u002F\u002Fgithub.com\u002Fcoleam00\u002Fexcalidraw-diagram-skill --skill excalidraw-diagram\n",[274,2173,2174],{"__ignoreMap":488},[1191,2175,2176,2179,2182,2185,2188,2191],{"class":1193,"line":1194},[1191,2177,2178],{"class":1197},"npx",[1191,2180,2181],{"class":1201}," skills",[1191,2183,2184],{"class":1201}," add",[1191,2186,2187],{"class":1201}," https:\u002F\u002Fgithub.com\u002Fcoleam00\u002Fexcalidraw-diagram-skill",[1191,2189,2190],{"class":1201}," --skill",[1191,2192,2193],{"class":1201}," excalidraw-diagram\n",[45,2195,2196],{},[125,2197],{"alt":2198,"src":2199},"Usando o comando npx skills add para instalar uma habilidade do GitHub","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002Fnpx-skills-add-command.webp",[45,2201,2202,2203,2206,2207],{},"O CLI perguntará se deseja configurar isso para um projeto específico ou globalmente. Geralmente recomendamos escolher ",[52,2204,2205],{},"global"," para que todos os agentes compatíveis possam acessá-la:\n",[125,2208],{"alt":2209,"src":2210},"Selecionando a opção de instalação global na CLI npx skills","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002Fnpx-skills-install-global-prompt.webp",[45,2212,2213,2214,2217,2218,135,2221,2225],{},"Em seguida, certifique-se de selecionar ",[274,2215,2216],{},"Symlink"," para garantir uma ",[52,2219,2220],{},"única fonte da verdade",[125,2222],{"alt":2223,"src":2224},"Escolhendo o método symlink para sincronização de habilidades","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002Fnpx-skills-symlink-option.webp",[125,2226],{"alt":2227,"src":2228},"Confirmação de instalação bem-sucedida e criação de symlink na CLI","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002Fnpx-skills-installation-completed.webp",[45,2230,2231,2232,135,2234],{},"Feito isso, podemos verificar que a habilidade está instalada na pasta centralizada em ",[274,2233,1974],{},[125,2235],{"alt":2236,"src":2237},"Verificando as habilidades instaladas no diretório centralizado","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002Fnpx-skills-directory-verification.webp",[45,2239,2240,2241,2243,2244],{},"Abra o Kimi CLI (ou qualquer outro agente) e a habilidade ",[274,2242,1119],{}," estará disponível e pronta para uso!\n",[125,2245],{"alt":2246,"src":2247},"Kimi CLI mostrando as habilidades centralizadas carregadas e prontas","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002Fkimi-cli-skills-integration.webp",[65,2249,2251],{"id":2250},"criando-uma-habilidade-do-zero","Criando uma Habilidade do Zero",[45,2253,2254,2255,2258],{},"Para criar suas próprias habilidades, você pode usar a ferramenta ",[274,2256,2257],{},"skill-creator"," da Anthropic. Instale-a assim:",[866,2260,2262],{"className":1185,"code":2261,"language":1187,"meta":488,"style":488},"npx skills add https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fskills --skill skill-creator\n",[274,2263,2264],{"__ignoreMap":488},[1191,2265,2266,2268,2270,2272,2275,2277],{"class":1193,"line":1194},[1191,2267,2178],{"class":1197},[1191,2269,2181],{"class":1201},[1191,2271,2184],{"class":1201},[1191,2273,2274],{"class":1201}," https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fskills",[1191,2276,2190],{"class":1201},[1191,2278,2279],{"class":1201}," skill-creator\n",[45,2281,2282],{},"Agora, no Kimi ou em qualquer outro agente, insira o seguinte comando (prompt):",[866,2284,2287],{"className":2285,"code":2286,"language":871},[869],"Use the skill-creator to help me build a skill for creating a product landing page\n",[274,2288,2286],{"__ignoreMap":488},[45,2290,2291,2292,2294,2295],{},"O Kimi ou o seu agente detectará automaticamente o ",[274,2293,2257],{}," e guiará você passo a passo pelo processo:\n",[125,2296],{"alt":2297,"src":2298},"Assistente interativo skill-creator em execução na Kimi CLI","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002Fkimi-cli-skill-creator-setup.webp",[65,2300,2302,2303],{"id":2301},"outros-comandos-úteis-do-npx-skills","Outros Comandos Úteis do ",[274,2304,1948],{},[45,2306,2307],{},"Aqui estão alguns outros comandos práticos:",[137,2309,2310,2316,2322],{},[104,2311,2312,2315],{},[274,2313,2314],{},"npx skills ls -g",": Lista todas as habilidades instaladas globalmente",[104,2317,2318,2321],{},[274,2319,2320],{},"npx skills update",": Mantém todas as habilidades atualizadas com um único comando",[104,2323,2324,2327],{},[274,2325,2326],{},"npx skills remove",": Desinstala\u002Fremove uma habilidade de forma interativa",[45,2329,2330,2331,2336],{},"Consulte o ",[467,2332,2115,2334,2118],{"href":2113,"rel":2333},[471],[274,2335,1948],{}," para ver mais comandos e referências.",[65,2338,2340],{"id":2339},"indo-mais-longe","Indo Mais Longe",[45,2342,2343,2344,2346],{},"Como todas as habilidades agora estão em um único lugar (",[274,2345,1974],{},"), podemos inicializar essa pasta como um repositório Git e enviá-la para o GitHub ou GitLab.",[866,2348,2350],{"className":1185,"code":2349,"language":1187,"meta":488,"style":488},"cd ~\u002F.agents\u002Fskills\ngit init\ngit add .\ngit commit -m \"Initial skills folder\"\ngit remote add origin https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fskills\ngit push -u origin main\n",[274,2351,2352,2361,2368,2377,2393,2408],{"__ignoreMap":488},[1191,2353,2354,2358],{"class":1193,"line":1194},[1191,2355,2357],{"class":2356},"s2Zo4","cd",[1191,2359,2360],{"class":1201}," ~\u002F.agents\u002Fskills\n",[1191,2362,2363,2365],{"class":1193,"line":489},[1191,2364,1479],{"class":1197},[1191,2366,2367],{"class":1201}," init\n",[1191,2369,2370,2372,2374],{"class":1193,"line":498},[1191,2371,1479],{"class":1197},[1191,2373,2184],{"class":1201},[1191,2375,2376],{"class":1201}," .\n",[1191,2378,2379,2381,2383,2386,2388,2391],{"class":1193,"line":1603},[1191,2380,1479],{"class":1197},[1191,2382,1255],{"class":1201},[1191,2384,2385],{"class":1201}," -m",[1191,2387,1578],{"class":1529},[1191,2389,2390],{"class":1201},"Initial skills folder",[1191,2392,1661],{"class":1529},[1191,2394,2395,2397,2400,2402,2405],{"class":1193,"line":964},[1191,2396,1479],{"class":1197},[1191,2398,2399],{"class":1201}," remote",[1191,2401,2184],{"class":1201},[1191,2403,2404],{"class":1201}," origin",[1191,2406,2407],{"class":1201}," https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fskills\n",[1191,2409,2410,2412,2414,2417,2419],{"class":1193,"line":735},[1191,2411,1479],{"class":1197},[1191,2413,1226],{"class":1201},[1191,2415,2416],{"class":1201}," -u",[1191,2418,2404],{"class":1201},[1191,2420,2421],{"class":1201}," main\n",[45,2423,2424,2425,579],{},"Agora, temos um histórico completo de todas as alterações de habilidades, o que significa que podemos reverter facilmente se uma atualização quebrar algo. Além disso, podemos sincronizar perfeitamente as habilidades entre várias máquinas (como um notebook e um computador desktop) executando um rápido ",[274,2426,2427],{},"git pull",[65,2429,2431],{"id":2430},"alguns-pontos-de-atenção-segurança-e-riscos","Alguns Pontos de Atenção (Segurança e Riscos)",[137,2433,2434,2440,2446,2456,2462],{},[104,2435,2436,2439],{},[52,2437,2438],{},"A compatibilidade varia",": Nem todas as plataformas de agentes oferecem suporte a todos os recursos ainda (como ganchos personalizados ou ferramentas permitidas específicas). Uma habilidade pode funcionar muito bem em um agente, mas falhar em outro.",[104,2441,2442,2445],{},[52,2443,2444],{},"Confie na fonte",": Instale apenas habilidades de fontes confiáveis.",[104,2447,2448,2451,2452,2455],{},[52,2449,2450],{},"Revise antes de executar",": Se estiver usando uma habilidade personalizada ou de terceiros, revise os arquivos (especialmente na pasta ",[274,2453,2454],{},"scripts\u002F",") antes de permitir que o seu agente a execute.",[104,2457,2458,2461],{},[52,2459,2460],{},"Menor privilégio",": Tente não conceder a uma habilidade mais permissões de ferramentas ou acessos do que ela realmente precisa para funcionar.",[104,2463,2464,2467],{},[52,2465,2466],{},"Nunca codifique segredos",": Mantenha suas chaves de API e segredos fora dos arquivos de suas habilidades.",[45,2469,2470,2471,2473],{},"Configurar uma \"única fonte da verdade\" centralizada com o ",[274,2472,1948],{}," poupou nossa equipe de frustrações e trabalho duplicado. Recomendamos muito que faça o teste — os recursos de IA aumentam à medida que suas habilidades crescem!",[1294,2475,2476],{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}",{"title":488,"searchDepth":489,"depth":489,"links":2478},[2479,2480,2482,2483,2485,2486],{"id":2121,"depth":489,"text":2122},{"id":2161,"depth":489,"text":2481},"Instalando o npx skills e Adicionando uma Habilidade",{"id":2250,"depth":489,"text":2251},{"id":2301,"depth":489,"text":2484},"Outros Comandos Úteis do npx skills",{"id":2339,"depth":489,"text":2340},{"id":2430,"depth":489,"text":2431},"2026-06-04","Usa vários agentes de IA como Claude Code ou Kimi? Aprenda a gerenciar uma pasta centralizada de habilidades compartilhada usando o npx skills CLI.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002FFim-da-fragmenta%C3%A7%C3%A3o-de-habilidades-de-agentes-usando-npx-skills.webp","Centralizando habilidades de agentes de IA com npx skills CLI",{"schemaOrg":2492,"robots":519,"sitemap":2495},[2493],{"@type":518,"headline":2494,"description":2488},"Como resolver a fragmentação de habilidades de agentes de IA",{"lastmod":2496},"2026-06-03","\u002Fpt\u002Farticle\u002Fcentralised-the-skills-for-agents",{"title":2494,"description":2488,"ogTitle":1955,"ogDescription":2488,"twitterTitle":1955,"twitterDescription":2488},"pt\u002Farticle\u002Fcentralised-the-skills-for-agents","IHdOzBx0SZ9MJTnTa5274ZNG1bN-izT23pFCh4HBTS0",{"id":2502,"title":2503,"author":40,"body":2504,"category":40,"date":2734,"description":2735,"extension":506,"image":2736,"imageAlt":2737,"isPublished":509,"meta":2738,"minRead":1645,"navigation":509,"path":2743,"seo":2744,"stem":2745,"__hash__":2746},"article\u002Fpt\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare.md","Đừng public NodeWarden: Bảo mật qua Cloudflare",{"type":42,"value":2505,"toc":2730},[2506,2509,2512,2526,2530,2537,2539,2543,2546,2550,2580,2584,2587,2654,2658,2661,2725,2727],[45,2507,2508],{},"No momento em que o seu NodeWarden é exposto publicamente na internet, ele começa a atrair milhares de bots automatizados em busca de vulnerabilidades 24 horas por dia, 7 dias por semana. Para proteger seus dados confidenciais, você precisa colocar sua instância do NodeWarden sob o nível máximo de bloqueio possível.",[45,2510,2511],{},"Para proteger sua instância do NodeWarden, você pode usar um dos dois recursos da Cloudflare:",[137,2513,2514,2520],{},[104,2515,2516,2519],{},[52,2517,2518],{},"Cloudflare IP Access Rules (Regras de Acesso por IP):"," Permite bloquear, desafiar (challenge) ou permitir o tráfego com base em endereços IP ou países específicos.",[104,2521,2522,2525],{},[52,2523,2524],{},"Cloudflare Zero Trust (Recomendado):"," Atua como um gateway seguro que torna sua instância do NodeWarden completamente invisível para o público, permitindo a passagem apenas de usuários autorizados.",[1433,2527,2529],{"id":2528},"por-que-recomendamos-o-cloudflare-zero-trust","Por que recomendamos o Cloudflare Zero Trust",[45,2531,2532,2533,2536],{},"Aconselhamos fortemente o uso do Cloudflare Zero Trust, pois as regras de acesso por IP estão vinculadas a endereços IP ou países, o que significa que você precisa atualizar manualmente suas regras toda vez que viajar ou se tiver um IP dinâmico. Por outro lado, o Cloudflare Zero Trust se baseia na sua ",[52,2534,2535],{},"identidade",", e não na sua localização — proporcionando um acesso contínuo e seguro ao NodeWarden.",[1353,2538],{},[65,2540,2542],{"id":2541},"guia-de-configuração","Guia de Configuração",[45,2544,2545],{},"Siga estas etapas para configurar o Cloudflare Zero Trust para o NodeWarden.",[1433,2547,2549],{"id":2548},"fase-1-primeiros-passos","Fase 1: Primeiros passos",[101,2551,2552,2559,2566,2573],{},[104,2553,2554,2555],{},"No seu painel da Cloudflare, clique em 'Zero Trust' no menu à esquerda.\n",[125,2556],{"alt":2557,"src":2558},"Barra lateral do painel da Cloudflare mostrando a opção Zero Trust selecionada no menu de navegação.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-dashboard-zero-trust-sidebar.webp",[104,2560,2561,2562],{},"Clique em 'Access controls' e depois em 'Applications'.\n",[125,2563],{"alt":2564,"src":2565},"Menu de navegação do Cloudflare Zero Trust com a seção de Controles de acesso expandida.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-zero-trust-access-controls-menu.webp",[104,2567,2568,2569],{},"Pode ser solicitado que você escolha um plano ('Choose a plan').\n",[125,2570],{"alt":2571,"src":2572},"Tela de configuração da conta Cloudflare Zero Trust solicitando que o usuário escolha um plano de assinatura.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-zero-trust-choose-plan-setup.webp",[104,2574,2575,2576],{},"Clique no botão 'Choose a plan' e escolha o plano 'Zero Trust Free'.\n",[125,2577],{"alt":2578,"src":2579},"A página de detalhes do plano Zero Trust Free na Cloudflare, destacando o botão Selecionar plano.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-zero-trust-free-plan-selection.webp",[1433,2581,2583],{"id":2582},"fase-2-proteja-sua-interface-web","Fase 2: Proteja sua interface Web",[45,2585,2586],{},"Primeiro, vamos criar uma aplicação para proteger o painel web do NodeWarden.",[101,2588,2589,2596,2603,2610,2617,2624,2631,2634,2641,2644],{},[104,2590,2591,2592],{},"Clique em 'Create new application' para criar a primeira aplicação.\n",[125,2593],{"alt":2594,"src":2595},"Painel de aplicativos do Cloudflare Access com o botão Criar novo aplicativo.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-create-new-application.webp",[104,2597,2598,2599],{},"Escolha 'Self-hosted and private'.\n",[125,2600],{"alt":2601,"src":2602},"O modal Adicionar um aplicativo no Cloudflare Access com o tipo de aplicativo Auto-hospedado e privado selecionado.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-add-self-hosted-application.webp",[104,2604,2605,2606],{},"Insira o nome de domínio do NodeWarden.\n",[125,2607],{"alt":2608,"src":2609},"Tela de configuração do aplicativo Cloudflare Access mostrando o hostname público configurado como warden.techvoyage.dev.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-application-public-hostname.webp",[104,2611,2612,2613],{},"Clique em 'Create new policy' para criar uma política.\n",[125,2614],{"alt":2615,"src":2616},"Página de políticas do Cloudflare Access mostrando que nenhuma política foi adicionada e um botão para criar uma nova política.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-no-policies-create-button.webp",[104,2618,2619,2620],{},"Selecione 'Emails' e insira um e-mail na seção 'Policy rules'.\n",[125,2621],{"alt":2622,"src":2623},"Tela de configuração da regra de política do Cloudflare Access com um endereço de e-mail especificado como critério de inclusão.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-policy-rule-email.webp",[104,2625,2626,2627],{},"Insira um nome e selecione 'Allow' na seção 'Policy details'.\n",[125,2628],{"alt":2629,"src":2630},"Tela de detalhes da política do Cloudflare Access mostrando o nome da política NodeWarden-Web e a ação definida como Permitir.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-policy-details-allow.webp",[104,2632,2633],{},"Clique em 'Save Policy' para criar a política.",[104,2635,2636,2637],{},"Insira um nome e selecione '1 month' na seção 'Details'.\n",[125,2638],{"alt":2639,"src":2640},"Resumo final de la configuración para um aplicativo Cloudflare Access chamado NodeWarden-Web com duração de sessão de um mês.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-application-final-details.webp",[104,2642,2643],{},"Clique em 'Create' para criar a aplicação.",[104,2645,2646,2649,2650],{},[52,2647,2648],{},"Teste:"," Abra o domínio no navegador da web; você verá o 'Cloudflare Access' solicitando o e-mail.\n",[125,2651],{"alt":2652,"src":2653},"Uma visualização da tela de login do Cloudflare Access para NodeWarden-Web, solicitando um endereço de e-mail.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-login-screen-preview.webp",[1433,2655,2657],{"id":2656},"fase-3-permitir-a-sincronização-dos-clientes-bitwarden-bypass-de-api","Fase 3: Permitir a Sincronização dos Clientes BitWarden (Bypass de API)",[45,2659,2660],{},"Os aplicativos de desktop e mobile do BitWarden não conseguem processar a tela de login por e-mail da Cloudflare, por isso precisamos criar uma segunda aplicação que permita que o tráfego ignore (bypass) a tela de login especificamente para a sincronização da API.",[101,2662,2663,2674,2689,2694,2701,2708,2711,2718],{},[104,2664,2665,2666,2669,2670,2673],{},"Volte para Applications e clique em ",[52,2667,2668],{},"Create new application",", escolhendo ",[52,2671,2672],{},"Self-hosted and private"," novamente.",[104,2675,2676,2677,2680,2681,2684,2685],{},"Insira 'api\u002F",[120,2678,2679],{},"', 'identity\u002F","', 'notifications\u002F",[120,2682,2683],{},"' e 'icons\u002F","' na seção Destinations.\n",[125,2686],{"alt":2687,"src":2688},"Configurando múltiplos hostnames públicos para bypass de API no Cloudflare Access, incluindo os caminhos api, identity, notifications e icons.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-api-bypass-destinations.webp",[104,2690,2691,2692],{},"Clique em 'Create new policy' para criar a política.\n",[125,2693],{"alt":2615,"src":2616},[104,2695,2696,2697],{},"Selecione 'Everyone' em 'Policy rules'.\n",[125,2698],{"alt":2699,"src":2700},"Configuração da regra de política do Cloudflare Access com Todos selecionado para permitir acesso amplo a caminhos específicos.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-policy-rule-everyone.webp",[104,2702,2703,2704],{},"Insira un nome e selecione 'Bypass' em 'Policy details'.\n",[125,2705],{"alt":2706,"src":2707},"Detalhes da política do Cloudflare Access para NodeWarden-API com la acción definida como Bypass.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-policy-details-bypass.webp",[104,2709,2710],{},"Clique em 'Save Policy' para salvar.",[104,2712,2713,2714],{},"Insira um nome e selecione '1 month' para 'Session Duration'.\n",[125,2715],{"alt":2716,"src":2717},"Tela de configuração final para o aplicativo NodeWarden-API no Cloudflare Access.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-api-application-final-details.webp",[104,2719,2720,2721],{},"Você deverá ter 2 aplicações criadas no final.\n",[125,2722],{"alt":2723,"src":2724},"O painel de aplicativos do Cloudflare Access mostrando os aplicativos Web e API criados com sucesso.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-applications-list-final.webp",[65,2726,929],{"id":928},[45,2728,2729],{},"Lembre-se apenas de que a Cloudflare é o seu escudo de proteção externo. Para manter um cofre (vault) verdadeiramente seguro, certifique-se de continuar usando uma senha mestra forte, de utilizar a Autenticação de Dois Fatores (2FA) e de manter a sua conta da Cloudflare segura.",{"title":488,"searchDepth":489,"depth":489,"links":2731},[2732,2733],{"id":2541,"depth":489,"text":2542},{"id":928,"depth":489,"text":929},"2026-05-27","No momento em que o seu NodeWarden é exposto publicamente na internet, ele começa a atrair milhares de bots automatizados em busca de vulnerabilidades 24 horas por dia, 7 dias por semana.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fproteja-nodewarden-integracao-cloudflare-guia.webp","Miniatura de um guia passo a passo para proteger um cofre NodeWarden com integração Cloudflare, mostrando um cofre digital acorrentado e um rack de servidores protegido.",{"schemaOrg":2739,"robots":519,"sitemap":2742},[2740],{"@type":518,"headline":2741,"description":2735},"Pare de expor seu cofre: Proteja o NodeWarden com Cloudflare",{"lastmod":2734},"\u002Fpt\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare",{"title":2741,"description":2735,"ogTitle":2741,"ogDescription":2735,"twitterTitle":2741,"twitterDescription":2735},"pt\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare","KDW5QwzozbPLfreaxGoJcxNVRwMxtCZq7VzXSko0uds",{"id":2748,"title":2749,"author":40,"body":2750,"category":40,"date":3324,"description":3325,"extension":506,"image":3326,"imageAlt":3327,"isPublished":509,"meta":3328,"minRead":1645,"navigation":509,"path":3333,"seo":3334,"stem":3335,"__hash__":3336},"article\u002Fpt\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare.md","Como auto-hospedar um cofre de senhas tipo BitWarden",{"type":42,"value":2751,"toc":3312},[2752,2755,2762,2766,2956,2960,2976,2980,3011,3015,3045,3049,3083,3087,3131,3135,3171,3175,3178,3182,3211,3215,3238,3242,3245,3262,3267,3270,3273,3287,3291,3304,3307],[45,2753,2754],{},"Suas senhas são a sua propriedade digital mais crítica, e mantê-las seguras significa tê-las em suas próprias mãos. Ao fazer o self-hosting do seu gerenciador de senhas, você assume o controle da sua própria segurança.",[45,2756,2757,2758,2761],{},"O ",[52,2759,2760],{},"BitWarden","​ é amplamente considerado um dos mais confiáveis no domínio de gerenciamento de senhas e seu código-fonte é disponibilizado sob a licença AGPL-3.0. O NodeWarden é um servidor não oficial compatível com o BitWarden, escrito em BitWarden, que pode ser feito deploy gratuitamente na Cloudflare.",[65,2763,2765],{"id":2764},"comparação-de-funcionalidades-com-o-servidor-oficial-do-bitwarden","Comparação de Funcionalidades com o Servidor Oficial do BitWarden",[2767,2768,2769,2787],"table",{},[2770,2771,2772],"thead",{},[2773,2774,2775,2779,2781,2784],"tr",{},[2776,2777,2778],"th",{},"Funcionalidade",[2776,2780,2760],{},[2776,2782,2783],{},"NodeWarden",[2776,2785,2786],{},"Notas",[2788,2789,2790,2807,2822,2834,2846,2861,2878,2893,2908,2920,2932,2945],"tbody",{},[2773,2791,2792,2796,2799,2801],{},[2793,2794,2795],"td",{},"Cofre Web (Web Vault)",[2793,2797,2798],{},"✅",[2793,2800,2798],{},[2793,2802,2803,2806],{},[52,2804,2805],{},"Interface original do Web Vault","​",[2773,2808,2809,2815,2817,2819],{},[2793,2810,2811,2812],{},"Sincronização completa ",[274,2813,2814],{},"\u002Fapi\u002Fsync",[2793,2816,2798],{},[2793,2818,2798],{},[2793,2820,2821],{},"Compatibilidade otimizada para clientes oficiais",[2773,2823,2824,2827,2829,2831],{},[2793,2825,2826],{},"Upload \u002F download de anexos",[2793,2828,2798],{},[2793,2830,2798],{},[2793,2832,2833],{},"Cloudflare R2 ou KV",[2773,2835,2836,2839,2841,2843],{},[2793,2837,2838],{},"Send (Enviar)",[2793,2840,2798],{},[2793,2842,2798],{},[2793,2844,2845],{},"Suporta envio de textos e de arquivos",[2773,2847,2848,2851,2853,2855],{},[2793,2849,2850],{},"Importar \u002F Exportar",[2793,2852,2798],{},[2793,2854,2798],{},[2793,2856,2857,2858,2806],{},"Suporta importação do BitWarden JSON \u002F CSV \u002F ",[52,2859,2860],{},"ZIP com anexos",[2773,2862,2863,2868,2871,2873],{},[2793,2864,2865,2806],{},[52,2866,2867],{},"Central de Backup em Nuvem",[2793,2869,2870],{},"❌",[2793,2872,2798],{},[2793,2874,2875,2806],{},[52,2876,2877],{},"Backup agendado para WebDAV \u002F E3",[2773,2879,2880,2883,2886,2888],{},[2793,2881,2882],{},"Dica de senha (web)",[2793,2884,2885],{},"⚠️ Limitado",[2793,2887,2798],{},[2793,2889,2890,2806],{},[52,2891,2892],{},"Não exige e-mail",[2773,2894,2895,2898,2900,2902],{},[2793,2896,2897],{},"TOTP \u002F Steam TOTP",[2793,2899,2798],{},[2793,2901,2798],{},[2793,2903,2904,2905],{},"Inclui suporte a ",[274,2906,2907],{},"steam:\u002F\u002F",[2773,2909,2910,2913,2915,2917],{},[2793,2911,2912],{},"Multiusuário",[2793,2914,2798],{},[2793,2916,2798],{},[2793,2918,2919],{},"Registro baseado em convite",[2773,2921,2922,2925,2927,2929],{},[2793,2923,2924],{},"Organizações \u002F Coleções \u002F Papéis",[2793,2926,2798],{},[2793,2928,2870],{},[2793,2930,2931],{},"Não implementado",[2773,2933,2934,2937,2939,2942],{},[2793,2935,2936],{},"Login com 2FA",[2793,2938,2798],{},[2793,2940,2941],{},"⚠️ Parcial",[2793,2943,2944],{},"Atualmente apenas TOTP em nível de usuário",[2773,2946,2947,2950,2952,2954],{},[2793,2948,2949],{},"SSO \u002F SCIM \u002F Diretório corporativo",[2793,2951,2798],{},[2793,2953,2870],{},[2793,2955,2931],{},[65,2957,2959],{"id":2958},"o-que-precisamos","O que precisamos:",[101,2961,2962,2967,2973],{},[104,2963,2964],{},[52,2965,2966],{},"Uma conta no GitHub",[104,2968,2969,2972],{},[52,2970,2971],{},"Uma conta na Cloudflare","​ (Gratuita) com o Cloudflare R2 Storage ativado.",[104,2974,2975],{},"_Opcional:_Um nome de domínio personalizado gerenciado na Cloudflare.",[363,2977,2979],{"id":2978},"fase-1-preparar-o-código","Fase 1: Preparar o Código",[101,2981,2982,3002],{},[104,2983,2984,2985,2989,2990,2994,2995,2998],{},"Faça um _fork_do repositório do NodeWarden acessando ",[467,2986,2987],{"href":2987,"rel":2988},"https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fnodewarden",[471]," do repositório original ",[467,2991,2992],{"href":2992,"rel":2993},"https:\u002F\u002Fgithub.com\u002Fshuaiplus\u002Fnodewarden",[471]," GitHub.",[2996,2997],"br",{},[125,2999],{"alt":3000,"src":3001},"Fazendo um fork do repositório NodeWarden no GitHub","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Ffork-nodewarden-repo.webp",[104,3003,3004,3005,3007],{},"Ative o Workflow \"Sync Upstream\".",[2996,3006],{},[125,3008],{"alt":3009,"src":3010},"Ativando o fluxo de trabalho Sync Upstream no GitHub Actions","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fenable-sync-upstream.webp",[363,3012,3014],{"id":3013},"fase-2-fazer-o-deploy-na-cloudflare","Fase 2: Fazer o Deploy na Cloudflare",[101,3016,3017,3026,3039],{},[104,3018,3019,3020,3022],{},"Crie uma aplicação Worker na Cloudflare.",[2996,3021],{},[125,3023],{"alt":3024,"src":3025},"Criando um novo aplicativo Worker no painel do Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fcreate-cloudflare-worker.webp",[104,3027,3028,3029,3031,3035],{},"Selecione 'Continue with GitHub' para fazer o deploy do app.",[2996,3030],{},[125,3032],{"alt":3033,"src":3034},"Implantando o aplicativo NodeWarden conectando ao GitHub","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fdeploy-github-repo.webp",[125,3036],{"alt":3037,"src":3038},"Progresso de compilação e implantação do Cloudflare Worker","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-deploy-status.webp",[104,3040,3041,3042,579],{},"Aguarde alguns instantes até a Cloudflare fazer a build e o deploy do seu app. Ele fornecerá uma URL padrão terminada em ",[274,3043,3044],{},"worker.dev",[363,3046,3048],{"id":3047},"opcional-adicionar-um-domínio-personalizado","(Opcional) Adicionar um Domínio Personalizado:",[137,3050,3051,3057,3070],{},[104,3052,3053,3054,579],{},"Nas configurações do seu Cloudflare Worker, vá para a aba ",[52,3055,3056],{},"Settings",[104,3058,3059,3060,3063,3064,3063,3067,579],{},"Clique em ",[52,3061,3062],{},"Triggers","​ -> ",[52,3065,3066],{},"Custom Domains",[52,3068,3069],{},"+ Add Custom Domain",[104,3071,3072,3073,3075,3079],{},"Digite seu domínio de preferência e siga as instruções.",[2996,3074],{},[125,3076],{"alt":3077,"src":3078},"Navegando para as configurações de domínio personalizado no Cloudflare Worker","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fworker-settings-custom-domain.webp",[125,3080],{"alt":3081,"src":3082},"Adicionando um domínio personalizado ao Cloudflare Worker","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fadd-custom-domain.webp",[363,3084,3086],{"id":3085},"fase-3-proteger-seu-servidor-o-segredo-jwt","Fase 3: Proteger Seu Servidor (O Segredo JWT)",[101,3088,3089,3092,3104,3125],{},[104,3090,3091],{},"Vá até o seu navegador de internet e insira o nome do seu domínio personalizado ou o domínio 'worker.dev' gerado.",[104,3093,3094,3095,579,3098,3100],{},"Você receberá o aviso '",[52,3096,3097],{},"JWT_SECRET is missing'",[2996,3099],{},[125,3101],{"alt":3102,"src":3103},"Mensagem de erro JWT_SECRET is missing no servidor NodeWarden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fjwt-secret-missing-error.webp",[104,3105,3106,3107,3110,3111,3114,3115,3117,3121],{},"Copie a chave secreta (secret key) gerada, volte para a aba de Settings no seu NodeWarden Worker e clique no botão '",[52,3108,3109],{},"+ Add","' na seção '",[52,3112,3113],{},"Variables and Secrets","'.",[2996,3116],{},[125,3118],{"alt":3119,"src":3120},"Seção de Variáveis e Segredos nas configurações do Cloudflare Worker","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fworker-variables-secrets.webp",[125,3122],{"alt":3123,"src":3124},"Adicionando o segredo JWT gerado às variáveis do Cloudflare Worker","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fadd-jwt-secret.webp",[104,3126,3127,3128,3114],{},"Insira o segredo gerado e clique no botão '",[52,3129,3130],{},"Deploy \u002F Save",[363,3132,3134],{"id":3133},"fase-4-criar-sua-conta-de-administrador","Fase 4: Criar sua Conta de Administrador",[101,3136,3137,3146,3159,3168],{},[104,3138,3139,3140,3142],{},"Volte ao navegador web e recarregue a página; você verá a seguinte tela de login.",[2996,3141],{},[125,3143],{"alt":3144,"src":3145},"Página de login do servidor NodeWarden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fnodewarden-login.webp",[104,3147,3148,3149,3152,3153,3155],{},"Clique em '",[52,3150,3151],{},"Create Account","' para criar a conta de administrador.",[2996,3154],{},[125,3156],{"alt":3157,"src":3158},"Clicando no botão Create Account na página de login do NodeWarden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fcreate-account-button.webp",[104,3160,3161,3162,3164],{},"Faça login usando a conta admin recém-criada para acessar o Dashboard.",[2996,3163],{},[125,3165],{"alt":3166,"src":3167},"Visão geral do painel de administração do NodeWarden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fnodewarden-dashboard.webp",[104,3169,3170],{},"Agora temos o servidor rodando e operante. Vamos começar a configurar os clientes do BitWarden.",[363,3172,3174],{"id":3173},"fase-5-conectar-seus-dispositivos","Fase 5: Conectar Seus Dispositivos",[45,3176,3177],{},"Você pode usar os aplicativos oficiais do BitWarden em todos os seus dispositivos.",[1433,3179,3181],{"id":3180},"extensão-do-chrome","Extensão do Chrome",[101,3183,3184,3187,3190,3199,3208],{},[104,3185,3186],{},"Instale a extensão do BitWarden no Chrome.",[104,3188,3189],{},"Abra a extensão.",[104,3191,3192,3193,3195],{},"Clique no link ao lado de 'Accessing:' na parte inferior da janelinha popup.",[2996,3194],{},[125,3196],{"alt":3197,"src":3198},"Selecionando a opção auto-hospedado na extensão do Bitwarden para Chrome","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fbitwarden-extension-self-hosted.webp",[104,3200,3201,3202,3204],{},"Insira o nome de domínio do servidor NodeWarden.",[2996,3203],{},[125,3205],{"alt":3206,"src":3207},"Inserindo a URL do servidor na extensão do Bitwarden para Chrome","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fbitwarden-extension-domain.webp",[104,3209,3210],{},"Salve as configurações e faça o login com sua conta.",[1433,3212,3214],{"id":3213},"app-para-ios","App para iOS",[101,3216,3217,3220,3229],{},[104,3218,3219],{},"Instale o app do BitWarden através da App Store.",[104,3221,3222,3223,3225],{},"Abra o app e clique em '' ao lado de 'Logging in on:'.",[2996,3224],{},[125,3226],{"alt":3227,"src":3228},"Acessando as configurações de auto-hospedado no aplicativo Bitwarden para iOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fbitwarden-ios-self-hosted.webp",[104,3230,3231,3232,3234],{},"Insira o nome de domínio do servidor NodeWarden e clique no botão '✓'.",[2996,3233],{},[125,3235],{"alt":3236,"src":3237},"Configurando a URL do servidor no aplicativo Bitwarden para iOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fbitwarden-ios-domain.webp",[363,3239,3241],{"id":3240},"outros-clientes","Outros Clientes",[45,3243,3244],{},"O NodeWarden foi testado e confirmou-se compatível com estes clientes oficiais do BitWarden:",[137,3246,3247,3250,3253,3256,3259],{},[104,3248,3249],{},"✅ Windows (desktop)",[104,3251,3252],{},"✅ Apps mobile Android\u002FiOS",[104,3254,3255],{},"✅ Extensões de navegador",[104,3257,3258],{},"✅ Linux (desktop)",[104,3260,3261],{},"⚠️ macOS desktop (não verificado totalmente)",[3263,3264,3266],"h1",{"id":3265},"backup-do-cofre-vault","Backup do Cofre (Vault)",[45,3268,3269],{},"O NodeWarden permite fazer backup do seu cofre no seu computador local ou em um armazenamento remoto (armazenamento compatível com S3 ou WebDAV).",[45,3271,3272],{},"Para automatizar backups remotos:",[137,3274,3275,3278],{},[104,3276,3277],{},"Configure os detalhes do armazenamento remoto dentro do painel do NodeWarden.",[104,3279,3280,3281,3283],{},"Certifique-se de que a tarefa Cron esteja configurada nas configurações do seu Cloudflare Worker para o backup remoto automático.",[2996,3282],{},[125,3284],{"alt":3285,"src":3286},"Configurando gatilhos Cron para backups automáticos do cofre no Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-worker-cron.webp",[3263,3288,3290],{"id":3289},"recomendações-finais-de-segurança","Recomendações Finais de Segurança",[137,3292,3293,3296,3299],{},[104,3294,3295],{},"Proteja o acesso da sua conta na Cloudflare, caso contrário, os dados podem ser comprometidos. Ative a Autenticação de Dois Fatores (2FA) ou o Passkey em sua conta da Cloudflare imediatamente.",[104,3297,3298],{},"Hospede o NodeWarden em uma conta da Cloudflare dedicada. Não compartilhe os recursos com outras aplicações web para minimizar os riscos de segurança.",[104,3300,3301],{},[467,3302,3303],{"href":10},"Proteger o NodeWarden com a Cloudflare",[3263,3305,3306],{"id":460},"Referências",[137,3308,3309],{},[104,3310,3311],{},"Guia Oficial de Início do NodeWarden",{"title":488,"searchDepth":489,"depth":489,"links":3313},[3314,3315],{"id":2764,"depth":489,"text":2765},{"id":2958,"depth":489,"text":2959,"children":3316},[3317,3318,3319,3320,3321,3322,3323],{"id":2978,"depth":498,"text":2979},{"id":3013,"depth":498,"text":3014},{"id":3047,"depth":498,"text":3048},{"id":3085,"depth":498,"text":3086},{"id":3133,"depth":498,"text":3134},{"id":3173,"depth":498,"text":3174},{"id":3240,"depth":498,"text":3241},"2026-05-25","Suas senhas são a sua propriedade digital mais crítica, e mantê-las seguras significa tê-las em suas próprias mãos.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fservidor-auto-hospedado-bitwarden.webp","Miniatura do tutorial de hospedagem de um servidor compatível com Bitwarden, exibindo um cofre digital e um rack de servidores seguro.",{"schemaOrg":3329,"robots":519,"sitemap":3332},[3330],{"@type":518,"headline":3331,"description":3325},"Como proteger suas senhas no seu próprio cofre hospedando um servidor compatível com BitWarden",{"lastmod":3324},"\u002Fpt\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare",{"title":3331,"description":3325,"ogTitle":3331,"ogDescription":3325,"twitterTitle":3331,"twitterDescription":3325},"pt\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare","2IcJ4KMC_VmA53wDba9qLEj02rTqiIX2JLp0vuAHB3k",1781435115638]