[{"data":1,"prerenderedAt":1366},["ShallowReactive",2],{"search-navigation":3,"\u002Fpt\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare":36,"\u002Fpt\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare-surround":303},[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",{"id":37,"title":38,"author":39,"body":40,"category":39,"date":285,"description":286,"extension":287,"image":288,"imageAlt":289,"isPublished":290,"meta":291,"minRead":298,"navigation":290,"path":299,"seo":300,"stem":301,"__hash__":302},"article\u002Fpt\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare.md","Đừng public NodeWarden: Bảo mật qua Cloudflare",null,{"type":41,"value":42,"toc":279},"minimark",[43,47,50,67,72,79,82,87,90,94,126,130,133,200,204,207,272,276],[44,45,46],"p",{},"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.",[44,48,49],{},"Para proteger sua instância do NodeWarden, você pode usar um dos dois recursos da Cloudflare:",[51,52,53,61],"ul",{},[54,55,56,60],"li",{},[57,58,59],"strong",{},"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.",[54,62,63,66],{},[57,64,65],{},"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.",[68,69,71],"h4",{"id":70},"por-que-recomendamos-o-cloudflare-zero-trust","Por que recomendamos o Cloudflare Zero Trust",[44,73,74,75,78],{},"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 ",[57,76,77],{},"identidade",", e não na sua localização — proporcionando um acesso contínuo e seguro ao NodeWarden.",[80,81],"hr",{},[83,84,86],"h2",{"id":85},"guia-de-configuração","Guia de Configuração",[44,88,89],{},"Siga estas etapas para configurar o Cloudflare Zero Trust para o NodeWarden.",[68,91,93],{"id":92},"fase-1-primeiros-passos","Fase 1: Primeiros passos",[95,96,97,105,112,119],"ol",{},[54,98,99,100],{},"No seu painel da Cloudflare, clique em 'Zero Trust' no menu à esquerda.\n",[101,102],"img",{"alt":103,"src":104},"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",[54,106,107,108],{},"Clique em 'Access controls' e depois em 'Applications'.\n",[101,109],{"alt":110,"src":111},"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",[54,113,114,115],{},"Pode ser solicitado que você escolha um plano ('Choose a plan').\n",[101,116],{"alt":117,"src":118},"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",[54,120,121,122],{},"Clique no botão 'Choose a plan' e escolha o plano 'Zero Trust Free'.\n",[101,123],{"alt":124,"src":125},"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",[68,127,129],{"id":128},"fase-2-proteja-sua-interface-web","Fase 2: Proteja sua interface Web",[44,131,132],{},"Primeiro, vamos criar uma aplicação para proteger o painel web do NodeWarden.",[95,134,135,142,149,156,163,170,177,180,187,190],{},[54,136,137,138],{},"Clique em 'Create new application' para criar a primeira aplicação.\n",[101,139],{"alt":140,"src":141},"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",[54,143,144,145],{},"Escolha 'Self-hosted and private'.\n",[101,146],{"alt":147,"src":148},"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",[54,150,151,152],{},"Insira o nome de domínio do NodeWarden.\n",[101,153],{"alt":154,"src":155},"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",[54,157,158,159],{},"Clique em 'Create new policy' para criar uma política.\n",[101,160],{"alt":161,"src":162},"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",[54,164,165,166],{},"Selecione 'Emails' e insira um e-mail na seção 'Policy rules'.\n",[101,167],{"alt":168,"src":169},"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",[54,171,172,173],{},"Insira um nome e selecione 'Allow' na seção 'Policy details'.\n",[101,174],{"alt":175,"src":176},"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",[54,178,179],{},"Clique em 'Save Policy' para criar a política.",[54,181,182,183],{},"Insira um nome e selecione '1 month' na seção 'Details'.\n",[101,184],{"alt":185,"src":186},"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",[54,188,189],{},"Clique em 'Create' para criar a aplicação.",[54,191,192,195,196],{},[57,193,194],{},"Teste:"," Abra o domínio no navegador da web; você verá o 'Cloudflare Access' solicitando o e-mail.\n",[101,197],{"alt":198,"src":199},"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",[68,201,203],{"id":202},"fase-3-permitir-a-sincronização-dos-clientes-bitwarden-bypass-de-api","Fase 3: Permitir a Sincronização dos Clientes BitWarden (Bypass de API)",[44,205,206],{},"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.",[95,208,209,220,236,241,248,255,258,265],{},[54,210,211,212,215,216,219],{},"Volte para Applications e clique em ",[57,213,214],{},"Create new application",", escolhendo ",[57,217,218],{},"Self-hosted and private"," novamente.",[54,221,222,223,227,228,231,232],{},"Insira 'api\u002F",[224,225,226],"em",{},"', 'identity\u002F","', 'notifications\u002F",[224,229,230],{},"' e 'icons\u002F","' na seção Destinations.\n",[101,233],{"alt":234,"src":235},"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",[54,237,238,239],{},"Clique em 'Create new policy' para criar a política.\n",[101,240],{"alt":161,"src":162},[54,242,243,244],{},"Selecione 'Everyone' em 'Policy rules'.\n",[101,245],{"alt":246,"src":247},"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",[54,249,250,251],{},"Insira un nome e selecione 'Bypass' em 'Policy details'.\n",[101,252],{"alt":253,"src":254},"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",[54,256,257],{},"Clique em 'Save Policy' para salvar.",[54,259,260,261],{},"Insira um nome e selecione '1 month' para 'Session Duration'.\n",[101,262],{"alt":263,"src":264},"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",[54,266,267,268],{},"Você deverá ter 2 aplicações criadas no final.\n",[101,269],{"alt":270,"src":271},"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",[83,273,275],{"id":274},"considerações-finais","Considerações finais",[44,277,278],{},"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":280,"searchDepth":281,"depth":281,"links":282},"",2,[283,284],{"id":85,"depth":281,"text":86},{"id":274,"depth":281,"text":275},"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.","md","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.",true,{"schemaOrg":292,"robots":296,"sitemap":297},[293],{"@type":294,"headline":295,"description":286},"TechArticle","Pare de expor seu cofre: Proteja o NodeWarden com Cloudflare","index, follow",{"lastmod":285},8,"\u002Fpt\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare",{"title":295,"description":286,"ogTitle":295,"ogDescription":286,"twitterTitle":295,"twitterDescription":286},"pt\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare","KDW5QwzozbPLfreaxGoJcxNVRwMxtCZq7VzXSko0uds",[304,901],{"id":305,"title":306,"author":39,"body":307,"category":39,"date":888,"description":889,"extension":287,"image":890,"imageAlt":891,"isPublished":290,"meta":892,"minRead":298,"navigation":290,"path":897,"seo":898,"stem":899,"__hash__":900},"article\u002Fpt\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare.md","Como auto-hospedar um cofre de senhas tipo BitWarden",{"type":41,"value":308,"toc":875},[309,312,319,323,514,518,534,539,572,576,607,611,645,649,693,697,733,737,740,744,773,777,800,804,807,824,829,832,835,849,853,866,870],[44,310,311],{},"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.",[44,313,314,315,318],{},"O ",[57,316,317],{},"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.",[83,320,322],{"id":321},"comparação-de-funcionalidades-com-o-servidor-oficial-do-bitwarden","Comparação de Funcionalidades com o Servidor Oficial do BitWarden",[324,325,326,344],"table",{},[327,328,329],"thead",{},[330,331,332,336,338,341],"tr",{},[333,334,335],"th",{},"Funcionalidade",[333,337,317],{},[333,339,340],{},"NodeWarden",[333,342,343],{},"Notas",[345,346,347,364,380,392,404,419,436,451,466,478,490,503],"tbody",{},[330,348,349,353,356,358],{},[350,351,352],"td",{},"Cofre Web (Web Vault)",[350,354,355],{},"✅",[350,357,355],{},[350,359,360,363],{},[57,361,362],{},"Interface original do Web Vault","​",[330,365,366,373,375,377],{},[350,367,368,369],{},"Sincronização completa ",[370,371,372],"code",{},"\u002Fapi\u002Fsync",[350,374,355],{},[350,376,355],{},[350,378,379],{},"Compatibilidade otimizada para clientes oficiais",[330,381,382,385,387,389],{},[350,383,384],{},"Upload \u002F download de anexos",[350,386,355],{},[350,388,355],{},[350,390,391],{},"Cloudflare R2 ou KV",[330,393,394,397,399,401],{},[350,395,396],{},"Send (Enviar)",[350,398,355],{},[350,400,355],{},[350,402,403],{},"Suporta envio de textos e de arquivos",[330,405,406,409,411,413],{},[350,407,408],{},"Importar \u002F Exportar",[350,410,355],{},[350,412,355],{},[350,414,415,416,363],{},"Suporta importação do BitWarden JSON \u002F CSV \u002F ",[57,417,418],{},"ZIP com anexos",[330,420,421,426,429,431],{},[350,422,423,363],{},[57,424,425],{},"Central de Backup em Nuvem",[350,427,428],{},"❌",[350,430,355],{},[350,432,433,363],{},[57,434,435],{},"Backup agendado para WebDAV \u002F E3",[330,437,438,441,444,446],{},[350,439,440],{},"Dica de senha (web)",[350,442,443],{},"⚠️ Limitado",[350,445,355],{},[350,447,448,363],{},[57,449,450],{},"Não exige e-mail",[330,452,453,456,458,460],{},[350,454,455],{},"TOTP \u002F Steam TOTP",[350,457,355],{},[350,459,355],{},[350,461,462,463],{},"Inclui suporte a ",[370,464,465],{},"steam:\u002F\u002F",[330,467,468,471,473,475],{},[350,469,470],{},"Multiusuário",[350,472,355],{},[350,474,355],{},[350,476,477],{},"Registro baseado em convite",[330,479,480,483,485,487],{},[350,481,482],{},"Organizações \u002F Coleções \u002F Papéis",[350,484,355],{},[350,486,428],{},[350,488,489],{},"Não implementado",[330,491,492,495,497,500],{},[350,493,494],{},"Login com 2FA",[350,496,355],{},[350,498,499],{},"⚠️ Parcial",[350,501,502],{},"Atualmente apenas TOTP em nível de usuário",[330,504,505,508,510,512],{},[350,506,507],{},"SSO \u002F SCIM \u002F Diretório corporativo",[350,509,355],{},[350,511,428],{},[350,513,489],{},[83,515,517],{"id":516},"o-que-precisamos","O que precisamos:",[95,519,520,525,531],{},[54,521,522],{},[57,523,524],{},"Uma conta no GitHub",[54,526,527,530],{},[57,528,529],{},"Uma conta na Cloudflare","​ (Gratuita) com o Cloudflare R2 Storage ativado.",[54,532,533],{},"_Opcional:_Um nome de domínio personalizado gerenciado na Cloudflare.",[535,536,538],"h3",{"id":537},"fase-1-preparar-o-código","Fase 1: Preparar o Código",[95,540,541,563],{},[54,542,543,544,550,551,555,556,559],{},"Faça um _fork_do repositório do NodeWarden acessando ",[545,546,547],"a",{"href":547,"rel":548},"https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fnodewarden",[549],"nofollow"," do repositório original ",[545,552,553],{"href":553,"rel":554},"https:\u002F\u002Fgithub.com\u002Fshuaiplus\u002Fnodewarden",[549]," GitHub.",[557,558],"br",{},[101,560],{"alt":561,"src":562},"Fazendo um fork do repositório NodeWarden no GitHub","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Ffork-nodewarden-repo.webp",[54,564,565,566,568],{},"Ative o Workflow \"Sync Upstream\".",[557,567],{},[101,569],{"alt":570,"src":571},"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",[535,573,575],{"id":574},"fase-2-fazer-o-deploy-na-cloudflare","Fase 2: Fazer o Deploy na Cloudflare",[95,577,578,587,600],{},[54,579,580,581,583],{},"Crie uma aplicação Worker na Cloudflare.",[557,582],{},[101,584],{"alt":585,"src":586},"Criando um novo aplicativo Worker no painel do Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fcreate-cloudflare-worker.webp",[54,588,589,590,592,596],{},"Selecione 'Continue with GitHub' para fazer o deploy do app.",[557,591],{},[101,593],{"alt":594,"src":595},"Implantando o aplicativo NodeWarden conectando ao GitHub","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fdeploy-github-repo.webp",[101,597],{"alt":598,"src":599},"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",[54,601,602,603,606],{},"Aguarde alguns instantes até a Cloudflare fazer a build e o deploy do seu app. Ele fornecerá uma URL padrão terminada em ",[370,604,605],{},"worker.dev",".",[535,608,610],{"id":609},"opcional-adicionar-um-domínio-personalizado","(Opcional) Adicionar um Domínio Personalizado:",[51,612,613,619,632],{},[54,614,615,616,606],{},"Nas configurações do seu Cloudflare Worker, vá para a aba ",[57,617,618],{},"Settings",[54,620,621,622,625,626,625,629,606],{},"Clique em ",[57,623,624],{},"Triggers","​ -> ",[57,627,628],{},"Custom Domains",[57,630,631],{},"+ Add Custom Domain",[54,633,634,635,637,641],{},"Digite seu domínio de preferência e siga as instruções.",[557,636],{},[101,638],{"alt":639,"src":640},"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",[101,642],{"alt":643,"src":644},"Adicionando um domínio personalizado ao Cloudflare Worker","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fadd-custom-domain.webp",[535,646,648],{"id":647},"fase-3-proteger-seu-servidor-o-segredo-jwt","Fase 3: Proteger Seu Servidor (O Segredo JWT)",[95,650,651,654,666,687],{},[54,652,653],{},"Vá até o seu navegador de internet e insira o nome do seu domínio personalizado ou o domínio 'worker.dev' gerado.",[54,655,656,657,606,660,662],{},"Você receberá o aviso '",[57,658,659],{},"JWT_SECRET is missing'",[557,661],{},[101,663],{"alt":664,"src":665},"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",[54,667,668,669,672,673,676,677,679,683],{},"Copie a chave secreta (secret key) gerada, volte para a aba de Settings no seu NodeWarden Worker e clique no botão '",[57,670,671],{},"+ Add","' na seção '",[57,674,675],{},"Variables and Secrets","'.",[557,678],{},[101,680],{"alt":681,"src":682},"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",[101,684],{"alt":685,"src":686},"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",[54,688,689,690,676],{},"Insira o segredo gerado e clique no botão '",[57,691,692],{},"Deploy \u002F Save",[535,694,696],{"id":695},"fase-4-criar-sua-conta-de-administrador","Fase 4: Criar sua Conta de Administrador",[95,698,699,708,721,730],{},[54,700,701,702,704],{},"Volte ao navegador web e recarregue a página; você verá a seguinte tela de login.",[557,703],{},[101,705],{"alt":706,"src":707},"Página de login do servidor NodeWarden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fnodewarden-login.webp",[54,709,710,711,714,715,717],{},"Clique em '",[57,712,713],{},"Create Account","' para criar a conta de administrador.",[557,716],{},[101,718],{"alt":719,"src":720},"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",[54,722,723,724,726],{},"Faça login usando a conta admin recém-criada para acessar o Dashboard.",[557,725],{},[101,727],{"alt":728,"src":729},"Visão geral do painel de administração do NodeWarden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fnodewarden-dashboard.webp",[54,731,732],{},"Agora temos o servidor rodando e operante. Vamos começar a configurar os clientes do BitWarden.",[535,734,736],{"id":735},"fase-5-conectar-seus-dispositivos","Fase 5: Conectar Seus Dispositivos",[44,738,739],{},"Você pode usar os aplicativos oficiais do BitWarden em todos os seus dispositivos.",[68,741,743],{"id":742},"extensão-do-chrome","Extensão do Chrome",[95,745,746,749,752,761,770],{},[54,747,748],{},"Instale a extensão do BitWarden no Chrome.",[54,750,751],{},"Abra a extensão.",[54,753,754,755,757],{},"Clique no link ao lado de 'Accessing:' na parte inferior da janelinha popup.",[557,756],{},[101,758],{"alt":759,"src":760},"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",[54,762,763,764,766],{},"Insira o nome de domínio do servidor NodeWarden.",[557,765],{},[101,767],{"alt":768,"src":769},"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",[54,771,772],{},"Salve as configurações e faça o login com sua conta.",[68,774,776],{"id":775},"app-para-ios","App para iOS",[95,778,779,782,791],{},[54,780,781],{},"Instale o app do BitWarden através da App Store.",[54,783,784,785,787],{},"Abra o app e clique em '' ao lado de 'Logging in on:'.",[557,786],{},[101,788],{"alt":789,"src":790},"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",[54,792,793,794,796],{},"Insira o nome de domínio do servidor NodeWarden e clique no botão '✓'.",[557,795],{},[101,797],{"alt":798,"src":799},"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",[535,801,803],{"id":802},"outros-clientes","Outros Clientes",[44,805,806],{},"O NodeWarden foi testado e confirmou-se compatível com estes clientes oficiais do BitWarden:",[51,808,809,812,815,818,821],{},[54,810,811],{},"✅ Windows (desktop)",[54,813,814],{},"✅ Apps mobile Android\u002FiOS",[54,816,817],{},"✅ Extensões de navegador",[54,819,820],{},"✅ Linux (desktop)",[54,822,823],{},"⚠️ macOS desktop (não verificado totalmente)",[825,826,828],"h1",{"id":827},"backup-do-cofre-vault","Backup do Cofre (Vault)",[44,830,831],{},"O NodeWarden permite fazer backup do seu cofre no seu computador local ou em um armazenamento remoto (armazenamento compatível com S3 ou WebDAV).",[44,833,834],{},"Para automatizar backups remotos:",[51,836,837,840],{},[54,838,839],{},"Configure os detalhes do armazenamento remoto dentro do painel do NodeWarden.",[54,841,842,843,845],{},"Certifique-se de que a tarefa Cron esteja configurada nas configurações do seu Cloudflare Worker para o backup remoto automático.",[557,844],{},[101,846],{"alt":847,"src":848},"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",[825,850,852],{"id":851},"recomendações-finais-de-segurança","Recomendações Finais de Segurança",[51,854,855,858,861],{},[54,856,857],{},"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.",[54,859,860],{},"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.",[54,862,863],{},[545,864,865],{"href":10},"Proteger o NodeWarden com a Cloudflare",[825,867,869],{"id":868},"referências","Referências",[51,871,872],{},[54,873,874],{},"Guia Oficial de Início do NodeWarden",{"title":280,"searchDepth":281,"depth":281,"links":876},[877,878],{"id":321,"depth":281,"text":322},{"id":516,"depth":281,"text":517,"children":879},[880,882,883,884,885,886,887],{"id":537,"depth":881,"text":538},3,{"id":574,"depth":881,"text":575},{"id":609,"depth":881,"text":610},{"id":647,"depth":881,"text":648},{"id":695,"depth":881,"text":696},{"id":735,"depth":881,"text":736},{"id":802,"depth":881,"text":803},"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":893,"robots":296,"sitemap":896},[894],{"@type":294,"headline":895,"description":889},"Como proteger suas senhas no seu próprio cofre hospedando um servidor compatível com BitWarden",{"lastmod":888},"\u002Fpt\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare",{"title":895,"description":889,"ogTitle":895,"ogDescription":889,"twitterTitle":895,"twitterDescription":889},"pt\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare","2IcJ4KMC_VmA53wDba9qLEj02rTqiIX2JLp0vuAHB3k",{"id":902,"title":903,"author":39,"body":904,"category":39,"date":1352,"description":1353,"extension":287,"image":1354,"imageAlt":1355,"isPublished":290,"meta":1356,"minRead":1235,"navigation":290,"path":1362,"seo":1363,"stem":1364,"__hash__":1365},"article\u002Fpt\u002Farticle\u002Fcentralised-the-skills-for-agents.md","Fim da fragmentação de habilidades de agentes usando npx skills",{"type":41,"value":905,"toc":1342},[906,917,920,943,961,965,975,992,1002,1009,1012,1045,1051,1062,1081,1090,1101,1105,1112,1133,1136,1144,1154,1160,1163,1183,1192,1196,1202,1286,1292,1296,1332,1338],[44,907,908,909,912,913,916],{},"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: ",[57,910,911],{},"a fragmentação de habilidades"," (skills). Cada agente ou CLI mantém sua própria pasta ",[370,914,915],{},"skills"," separada, o que leva a instalações duplicadas, divergência de versões e sobrecarga de gerenciamento.",[44,918,919],{},"Em nosso trabalho diário com agentes de IA, frequentemente nos deparávamos com os seguintes problemas:",[51,921,922,928,934],{},[54,923,924,927],{},[57,925,926],{},"Múltiplas instalações",": Instalar uma nova habilidade para um agente e depois ter que instalá-la novamente para cada um dos outros.",[54,929,930,933],{},[57,931,932],{},"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.",[54,935,936,939,940,942],{},[57,937,938],{},"Gerenciamento de habilidades",": Ter que vasculhar cada pasta ",[370,941,915],{}," de cada agente no sistema apenas para ver quais habilidades estavam realmente instaladas.",[44,944,945,946,949,950,952,953,606],{},"O ",[370,947,948],{},"npx skills"," CLI, uma ferramenta de linha de comando de código aberto desenvolvida pela Vercel, resolve esse problema permitindo que você gerencie uma única pasta ",[370,951,915],{}," centralizada e a compartilhe entre todos os seus agentes. Você pode conferir o ",[545,954,957,958,960],{"href":955,"rel":956},"https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fskills",[549],"repositório do ",[370,959,948],{}," no GitHub",[83,962,964],{"id":963},"pasta-centralizada","Pasta Centralizada",[44,966,967,968,970,971,974],{},"O conceito é simples: se apontarmos a pasta ",[370,969,915],{}," de cada agente para a ",[57,972,973],{},"mesma pasta física",", o problema da fragmentação desaparece por completo.",[44,976,977,978,980,981,984,985,988,989,991],{},"Quando você instala uma habilidade usando o ",[370,979,948],{}," CLI, ela é baixada para a pasta centralizada em sua máquina (",[370,982,983],{},"~\u002F.agents\u002Fskills","). Em seguida, o CLI cria um ",[57,986,987],{},"link simbólico"," (symlink, que funciona como um atalho direto) da pasta ",[370,990,915],{}," de cada agente de volta para essa pasta centralizada.",[44,993,994,995,998,999,1001],{},"Por exemplo, quando o Claude Code procura por habilidades em ",[370,996,997],{},"~\u002F.claude\u002Fskills\u002F",", ele é redirecionado de forma transparente para ",[370,1000,983],{},". 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.",[83,1003,1005,1006,1008],{"id":1004},"instalando-o-npx-skills-e-adicionando-uma-habilidade","Instalando o ",[370,1007,948],{}," e Adicionando uma Habilidade",[44,1010,1011],{},"Execute o seguinte comando para começar e adicionar nossa primeira habilidade:",[1013,1014,1018],"pre",{"className":1015,"code":1016,"language":1017,"meta":280,"style":280},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx skills add https:\u002F\u002Fgithub.com\u002Fcoleam00\u002Fexcalidraw-diagram-skill --skill excalidraw-diagram\n","bash",[370,1019,1020],{"__ignoreMap":280},[1021,1022,1025,1029,1033,1036,1039,1042],"span",{"class":1023,"line":1024},"line",1,[1021,1026,1028],{"class":1027},"sBMFI","npx",[1021,1030,1032],{"class":1031},"sfazB"," skills",[1021,1034,1035],{"class":1031}," add",[1021,1037,1038],{"class":1031}," https:\u002F\u002Fgithub.com\u002Fcoleam00\u002Fexcalidraw-diagram-skill",[1021,1040,1041],{"class":1031}," --skill",[1021,1043,1044],{"class":1031}," excalidraw-diagram\n",[44,1046,1047],{},[101,1048],{"alt":1049,"src":1050},"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",[44,1052,1053,1054,1057,1058],{},"O CLI perguntará se deseja configurar isso para um projeto específico ou globalmente. Geralmente recomendamos escolher ",[57,1055,1056],{},"global"," para que todos os agentes compatíveis possam acessá-la:\n",[101,1059],{"alt":1060,"src":1061},"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",[44,1063,1064,1065,1068,1069,1072,1073,1077],{},"Em seguida, certifique-se de selecionar ",[370,1066,1067],{},"Symlink"," para garantir uma ",[57,1070,1071],{},"única fonte da verdade",":\n",[101,1074],{"alt":1075,"src":1076},"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",[101,1078],{"alt":1079,"src":1080},"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",[44,1082,1083,1084,1072,1086],{},"Feito isso, podemos verificar que a habilidade está instalada na pasta centralizada em ",[370,1085,983],{},[101,1087],{"alt":1088,"src":1089},"Verificando as habilidades instaladas no diretório centralizado","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002Fnpx-skills-directory-verification.webp",[44,1091,1092,1093,1096,1097],{},"Abra o Kimi CLI (ou qualquer outro agente) e a habilidade ",[370,1094,1095],{},"excalidraw-diagram"," estará disponível e pronta para uso!\n",[101,1098],{"alt":1099,"src":1100},"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",[83,1102,1104],{"id":1103},"criando-uma-habilidade-do-zero","Criando uma Habilidade do Zero",[44,1106,1107,1108,1111],{},"Para criar suas próprias habilidades, você pode usar a ferramenta ",[370,1109,1110],{},"skill-creator"," da Anthropic. Instale-a assim:",[1013,1113,1115],{"className":1015,"code":1114,"language":1017,"meta":280,"style":280},"npx skills add https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fskills --skill skill-creator\n",[370,1116,1117],{"__ignoreMap":280},[1021,1118,1119,1121,1123,1125,1128,1130],{"class":1023,"line":1024},[1021,1120,1028],{"class":1027},[1021,1122,1032],{"class":1031},[1021,1124,1035],{"class":1031},[1021,1126,1127],{"class":1031}," https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fskills",[1021,1129,1041],{"class":1031},[1021,1131,1132],{"class":1031}," skill-creator\n",[44,1134,1135],{},"Agora, no Kimi ou em qualquer outro agente, insira o seguinte comando (prompt):",[1013,1137,1142],{"className":1138,"code":1140,"language":1141},[1139],"language-text","Use the skill-creator to help me build a skill for creating a product landing page\n","text",[370,1143,1140],{"__ignoreMap":280},[44,1145,1146,1147,1149,1150],{},"O Kimi ou o seu agente detectará automaticamente o ",[370,1148,1110],{}," e guiará você passo a passo pelo processo:\n",[101,1151],{"alt":1152,"src":1153},"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",[83,1155,1157,1158],{"id":1156},"outros-comandos-úteis-do-npx-skills","Outros Comandos Úteis do ",[370,1159,948],{},[44,1161,1162],{},"Aqui estão alguns outros comandos práticos:",[51,1164,1165,1171,1177],{},[54,1166,1167,1170],{},[370,1168,1169],{},"npx skills ls -g",": Lista todas as habilidades instaladas globalmente",[54,1172,1173,1176],{},[370,1174,1175],{},"npx skills update",": Mantém todas as habilidades atualizadas com um único comando",[54,1178,1179,1182],{},[370,1180,1181],{},"npx skills remove",": Desinstala\u002Fremove uma habilidade de forma interativa",[44,1184,1185,1186,1191],{},"Consulte o ",[545,1187,957,1189,960],{"href":955,"rel":1188},[549],[370,1190,948],{}," para ver mais comandos e referências.",[83,1193,1195],{"id":1194},"indo-mais-longe","Indo Mais Longe",[44,1197,1198,1199,1201],{},"Como todas as habilidades agora estão em um único lugar (",[370,1200,983],{},"), podemos inicializar essa pasta como um repositório Git e enviá-la para o GitHub ou GitLab.",[1013,1203,1205],{"className":1015,"code":1204,"language":1017,"meta":280,"style":280},"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",[370,1206,1207,1216,1224,1233,1254,1270],{"__ignoreMap":280},[1021,1208,1209,1213],{"class":1023,"line":1024},[1021,1210,1212],{"class":1211},"s2Zo4","cd",[1021,1214,1215],{"class":1031}," ~\u002F.agents\u002Fskills\n",[1021,1217,1218,1221],{"class":1023,"line":281},[1021,1219,1220],{"class":1027},"git",[1021,1222,1223],{"class":1031}," init\n",[1021,1225,1226,1228,1230],{"class":1023,"line":881},[1021,1227,1220],{"class":1027},[1021,1229,1035],{"class":1031},[1021,1231,1232],{"class":1031}," .\n",[1021,1234,1236,1238,1241,1244,1248,1251],{"class":1023,"line":1235},4,[1021,1237,1220],{"class":1027},[1021,1239,1240],{"class":1031}," commit",[1021,1242,1243],{"class":1031}," -m",[1021,1245,1247],{"class":1246},"sMK4o"," \"",[1021,1249,1250],{"class":1031},"Initial skills folder",[1021,1252,1253],{"class":1246},"\"\n",[1021,1255,1257,1259,1262,1264,1267],{"class":1023,"line":1256},5,[1021,1258,1220],{"class":1027},[1021,1260,1261],{"class":1031}," remote",[1021,1263,1035],{"class":1031},[1021,1265,1266],{"class":1031}," origin",[1021,1268,1269],{"class":1031}," https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fskills\n",[1021,1271,1273,1275,1278,1281,1283],{"class":1023,"line":1272},6,[1021,1274,1220],{"class":1027},[1021,1276,1277],{"class":1031}," push",[1021,1279,1280],{"class":1031}," -u",[1021,1282,1266],{"class":1031},[1021,1284,1285],{"class":1031}," main\n",[44,1287,1288,1289,606],{},"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 ",[370,1290,1291],{},"git pull",[83,1293,1295],{"id":1294},"alguns-pontos-de-atenção-segurança-e-riscos","Alguns Pontos de Atenção (Segurança e Riscos)",[51,1297,1298,1304,1310,1320,1326],{},[54,1299,1300,1303],{},[57,1301,1302],{},"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.",[54,1305,1306,1309],{},[57,1307,1308],{},"Confie na fonte",": Instale apenas habilidades de fontes confiáveis.",[54,1311,1312,1315,1316,1319],{},[57,1313,1314],{},"Revise antes de executar",": Se estiver usando uma habilidade personalizada ou de terceiros, revise os arquivos (especialmente na pasta ",[370,1317,1318],{},"scripts\u002F",") antes de permitir que o seu agente a execute.",[54,1321,1322,1325],{},[57,1323,1324],{},"Menor privilégio",": Tente não conceder a uma habilidade mais permissões de ferramentas ou acessos do que ela realmente precisa para funcionar.",[54,1327,1328,1331],{},[57,1329,1330],{},"Nunca codifique segredos",": Mantenha suas chaves de API e segredos fora dos arquivos de suas habilidades.",[44,1333,1334,1335,1337],{},"Configurar uma \"única fonte da verdade\" centralizada com o ",[370,1336,948],{}," 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!",[1339,1340,1341],"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);}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":280,"searchDepth":281,"depth":281,"links":1343},[1344,1345,1347,1348,1350,1351],{"id":963,"depth":281,"text":964},{"id":1004,"depth":281,"text":1346},"Instalando o npx skills e Adicionando uma Habilidade",{"id":1103,"depth":281,"text":1104},{"id":1156,"depth":281,"text":1349},"Outros Comandos Úteis do npx skills",{"id":1194,"depth":281,"text":1195},{"id":1294,"depth":281,"text":1295},"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":1357,"robots":296,"sitemap":1360},[1358],{"@type":294,"headline":1359,"description":1353},"Como resolver a fragmentação de habilidades de agentes de IA",{"lastmod":1361},"2026-06-03","\u002Fpt\u002Farticle\u002Fcentralised-the-skills-for-agents",{"title":1359,"description":1353,"ogTitle":903,"ogDescription":1353,"twitterTitle":903,"twitterDescription":1353},"pt\u002Farticle\u002Fcentralised-the-skills-for-agents","IHdOzBx0SZ9MJTnTa5274ZNG1bN-izT23pFCh4HBTS0",1781435125881]