[{"data":1,"prerenderedAt":1370},["ShallowReactive",2],{"search-navigation":3,"\u002Fes\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare":36,"\u002Fes\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare-surround":302},[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":297,"navigation":290,"path":298,"seo":299,"stem":300,"__hash__":301},"article\u002Fes\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare.md","Deja de exponer tu bóveda: Protege NodeWarden con 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",{},"El momento en que tu instancia de NodeWarden se expone al público en Internet, comienza a atraer a miles de bots automatizados que buscan vulnerabilidades las 24 horas del día, los 7 días de la semana. Para proteger tus datos confidenciales, necesitas aplicar el nivel máximo de bloqueo posible en tu instancia de NodeWarden.",[44,48,49],{},"Para asegurar tu instancia de NodeWarden, puedes usar una de estas dos funciones de Cloudflare:",[51,52,53,61],"ul",{},[54,55,56,60],"li",{},[57,58,59],"strong",{},"Cloudflare IP Access Rules (Reglas de acceso por IP):"," Te permite bloquear, solicitar un desafío de seguridad (challenge) o permitir el tráfico en función de direcciones IP o países específicos.",[54,62,63,66],{},[57,64,65],{},"Cloudflare Zero Trust (Recomendado):"," Actúa como una pasarela segura que hace que tu instancia de NodeWarden sea completamente invisible al público, permitiendo el acceso únicamente a los usuarios autorizados.",[68,69,71],"h4",{"id":70},"por-qué-recomendamos-cloudflare-zero-trust","Por qué recomendamos Cloudflare Zero Trust",[44,73,74,75,78],{},"Aconsejamos encarecidamente usar Cloudflare Zero Trust porque las reglas de acceso por IP están vinculadas a direcciones IP o países, lo que significa que tendrías que actualizar manualmente tus reglas cada vez que viajes o si tienes una IP dinámica. Cloudflare Zero Trust, por el contrario, se basa en tu ",[57,76,77],{},"identidad",", no en tu ubicación, ofreciéndote un acceso fluido y seguro a NodeWarden.",[80,81],"hr",{},[83,84,86],"h2",{"id":85},"guía-de-configuración","Guía de Configuración",[44,88,89],{},"Sigue estos pasos para configurar Cloudflare Zero Trust para NodeWarden.",[68,91,93],{"id":92},"fase-1-primeros-pasos","Fase 1: Primeros pasos",[95,96,97,105,112,119],"ol",{},[54,98,99,100],{},"En tu panel de control de Cloudflare, haz clic en 'Zero Trust' en el menú de la izquierda.\n",[101,102],"img",{"alt":103,"src":104},"Barra lateral del panel de Cloudflare que muestra la opción Zero Trust seleccionada en el menú de navegación.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-dashboard-zero-trust-sidebar.webp",[54,106,107,108],{},"Haz clic en 'Access controls' y luego en 'Applications'.\n",[101,109],{"alt":110,"src":111},"Menú de navegación de Cloudflare Zero Trust con la sección de Controles de acceso expandida.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-zero-trust-access-controls-menu.webp",[54,113,114,115],{},"Es posible que se te pida elegir un plan ('Choose a plan').\n",[101,116],{"alt":117,"src":118},"Pantalla de configuración de la cuenta de Cloudflare Zero Trust que solicita al usuario elegir un plan de suscripción.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-zero-trust-choose-plan-setup.webp",[54,120,121,122],{},"Haz clic en el botón 'Choose a plan' y selecciona 'Zero Trust Free'.\n",[101,123],{"alt":124,"src":125},"La página de detalles del plan Zero Trust Free en Cloudflare, destacando el botón Seleccionar plan.","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-protege-tu-interfaz-web","Fase 2: Protege tu interfaz web",[44,131,132],{},"Primero, crearemos una aplicación para proteger el panel de control web de NodeWarden.",[95,134,135,142,149,156,163,170,177,180,187,190],{},[54,136,137,138],{},"Haz clic en 'Create new application' para crear la primera aplicación.\n",[101,139],{"alt":140,"src":141},"Panel de aplicaciones de Cloudflare Access con el botón Crear nueva aplicación.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-create-new-application.webp",[54,143,144,145],{},"Elige 'Self-hosted and private'.\n",[101,146],{"alt":147,"src":148},"El modal Añadir una aplicación en Cloudflare Access con el tipo de aplicación Autohospedada y privada seleccionado.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-add-self-hosted-application.webp",[54,150,151,152],{},"Introduce el nombre de dominio de NodeWarden.\n",[101,153],{"alt":154,"src":155},"Pantalla de configuración de la aplicación de Cloudflare Access que muestra el nombre de host 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],{},"Haz clic en 'Create new policy' para crear una política.\n",[101,160],{"alt":161,"src":162},"Página de políticas de Cloudflare Access que muestra que no se han añadido políticas y un botón para crear una nueva 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],{},"Selecciona 'Emails' e introduce un correo electrónico en 'Policy rules'.\n",[101,167],{"alt":168,"src":169},"Pantalla de configuración de la regla de política de Cloudflare Access con una dirección de correo electrónico especificada como criterio de inclusión.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-policy-rule-email.webp",[54,171,172,173],{},"Introduce un nombre y selecciona 'Allow' en 'Policy details'.\n",[101,174],{"alt":175,"src":176},"Pantalla de detalles de la política de Cloudflare Access que muestra el nombre de la política NodeWarden-Web y la acción configurada en Permitir.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-policy-details-allow.webp",[54,178,179],{},"Haz clic en 'Save Policy' para guardar la política.",[54,181,182,183],{},"Introduce un nombre y selecciona '1 month' en la sección 'Details'.\n",[101,184],{"alt":185,"src":186},"Resumen final de la configuración para una aplicación de Cloudflare Access llamada NodeWarden-Web con una duración de sesión de un mes.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-application-final-details.webp",[54,188,189],{},"Haz clic en 'Create' para crear la aplicación.",[54,191,192,195,196],{},[57,193,194],{},"Pruébalo:"," Abre el dominio en el navegador web; verás que 'Cloudflare Access' te pide un correo electrónico.\n",[101,197],{"alt":198,"src":199},"Una vista previa de la pantalla de inicio de sesión de Cloudflare Access para NodeWarden-Web, solicitando una dirección de correo electrónico.","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-la-sincronización-de-clientes-bitwarden-omitir-api","Fase 3: Permitir la sincronización de clientes BitWarden (Omitir API)",[44,205,206],{},"Las aplicaciones móviles y de escritorio de BitWarden no pueden procesar la pantalla de inicio de sesión por correo de Cloudflare, por lo que necesitamos crear una segunda aplicación que permita al tráfico omitir (bypass) la pantalla de inicio de sesión específicamente para la sincronización de la API.",[95,208,209,220,236,241,248,255,258,265],{},[54,210,211,212,215,216,219],{},"Vuelve a Applications y haz clic en ",[57,213,214],{},"Create new application",", eligiendo ",[57,217,218],{},"Self-hosted and private"," nuevamente.",[54,221,222,223,227,228,231,232],{},"Introduce 'api\u002F",[224,225,226],"em",{},"', 'identity\u002F","', 'notifications\u002F",[224,229,230],{},"' e 'icons\u002F","' en Destinations.\n",[101,233],{"alt":234,"src":235},"Configuración de múltiples nombres de host públicos para omitir la API en Cloudflare Access, incluyendo las rutas 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],{},"Haz clic en 'Create new policy' para crear la política.\n",[101,240],{"alt":161,"src":162},[54,242,243,244],{},"Selecciona 'Everyone' en 'Policy rules'.\n",[101,245],{"alt":246,"src":247},"Configuración de la regla de política de Cloudflare Access con Todos seleccionado para permitir un acceso amplio a rutas específicas.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-policy-rule-everyone.webp",[54,249,250,251],{},"Introduce un nombre y selecciona 'Bypass' en 'Policy details'.\n",[101,252],{"alt":253,"src":254},"Detalles de la política de Cloudflare Access para NodeWarden-API con la acción configurada en Omitir.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-policy-details-bypass.webp",[54,256,257],{},"Haz clic en 'Save Policy' para guardarla.",[54,259,260,261],{},"Introduce un nombre y selecciona '1 month' en 'Session Duration'.\n",[101,262],{"alt":263,"src":264},"Pantalla de configuración final para la aplicación NodeWarden-API en 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],{},"Ahora deberías tener 2 aplicaciones creadas.\n",[101,269],{"alt":270,"src":271},"El panel de aplicaciones de Cloudflare Access que muestra las aplicaciones Web y API creadas con éxito.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-applications-list-final.webp",[83,273,275],{"id":274},"consideraciones-finales","Consideraciones finales",[44,277,278],{},"Solo recuerda que Cloudflare es tu escudo exterior. Para mantener una bóveda (vault) verdaderamente segura, asegúrate de seguir utilizando una contraseña maestra fuerte, habilitar la Autenticación de Dos Factores (2FA) y mantener segura tu cuenta de Cloudflare.",{"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","El momento en que tu instancia de NodeWarden se expone al público en Internet, comienza a atraer a miles de bots automatizados que buscan vulnerabilidades las 24 horas del día, los 7 días de la semana.","md","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fasegurar-nodewarden-integracion-cloudflare-guia.webp","Miniatura de una guía paso a paso para asegurar una bóveda de NodeWarden con integración de Cloudflare, que muestra una caja fuerte digital con candado y un rack de servidores protegido.",true,{"schemaOrg":292,"robots":295,"sitemap":296},[293],{"@type":294,"headline":38,"description":286},"TechArticle","index, follow",{"lastmod":285},8,"\u002Fes\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare",{"title":38,"description":286,"ogTitle":38,"ogDescription":286,"twitterTitle":38,"twitterDescription":286},"es\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare","MC2N3JO7U7YcBakLu6bcAT8cjo_IogYFV2UPXwCv85s",[303,906],{"id":304,"title":305,"author":39,"body":306,"category":39,"date":893,"description":894,"extension":287,"image":895,"imageAlt":896,"isPublished":290,"meta":897,"minRead":297,"navigation":290,"path":902,"seo":903,"stem":904,"__hash__":905},"article\u002Fes\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare.md","Cómo alojar tu gestor de contraseñas tipo BitWarden",{"type":41,"value":307,"toc":881},[308,315,321,325,516,520,536,541,578,582,613,617,644,648,691,695,735,739,742,746,775,779,802,806,809,826,831,834,837,851,855,872,876],[44,309,310,311,314],{},"Tus contraseñas son tu propiedad digital más importante, y mantenerlas seguras significa tenerlas en tus propias manos. Al autoalojar (",[224,312,313],{},"self-hosting",") tu propio gestor de contraseñas, tomas el control de tu propia seguridad. ",[44,316,317,320],{},[57,318,319],{},"BitWarden","​ es ampliamente considerado como uno de los más confiables en el ámbito de la gestión de contraseñas y su código fuente está disponible bajo la licencia AGPL-3.0. NodeWarden es un servidor no oficial compatible con BitWarden, escrito en Typescript, que se puede desplegar de forma gratuita en Cloudflare.",[83,322,324],{"id":323},"comparación-de-características-con-el-servidor-oficial-de-bitwarden","Comparación de características con el servidor oficial de BitWarden",[326,327,328,346],"table",{},[329,330,331],"thead",{},[332,333,334,338,340,343],"tr",{},[335,336,337],"th",{},"Capacidad",[335,339,319],{},[335,341,342],{},"NodeWarden",[335,344,345],{},"Notas",[347,348,349,366,382,394,406,421,438,453,468,480,492,505],"tbody",{},[332,350,351,355,358,360],{},[352,353,354],"td",{},"Bóveda Web (Web Vault)",[352,356,357],{},"✅",[352,359,357],{},[352,361,362,365],{},[57,363,364],{},"Interfaz original de la Bóveda Web","​",[332,367,368,375,377,379],{},[352,369,370,371],{},"Sincronización completa ",[372,373,374],"code",{},"\u002Fapi\u002Fsync",[352,376,357],{},[352,378,357],{},[352,380,381],{},"Compatibilidad optimizada para clientes oficiales",[332,383,384,387,389,391],{},[352,385,386],{},"Subir \u002F descargar archivos adjuntos",[352,388,357],{},[352,390,357],{},[352,392,393],{},"Cloudflare R2 o KV",[332,395,396,399,401,403],{},[352,397,398],{},"Send (Enviar)",[352,400,357],{},[352,402,357],{},[352,404,405],{},"Soporta envíos de texto y de archivos",[332,407,408,411,413,415],{},[352,409,410],{},"Importar \u002F Exportar",[352,412,357],{},[352,414,357],{},[352,416,417,418,365],{},"Soporta importación de BitWarden JSON \u002F CSV \u002F ",[57,419,420],{},"ZIP con adjuntos",[332,422,423,428,431,433],{},[352,424,425],{},[57,426,427],{},"Centro de copias de seguridad en la nube",[352,429,430],{},"❌",[352,432,357],{},[352,434,435,365],{},[57,436,437],{},"Copias de seguridad programadas a WebDAV \u002F S3",[332,439,440,443,446,448],{},[352,441,442],{},"Pista de contraseña (web)",[352,444,445],{},"⚠️ Limitado",[352,447,357],{},[352,449,450,365],{},[57,451,452],{},"No requiere correo electrónico",[332,454,455,458,460,462],{},[352,456,457],{},"TOTP \u002F Steam TOTP",[352,459,357],{},[352,461,357],{},[352,463,464,465],{},"Incluye soporte para ",[372,466,467],{},"steam:\u002F\u002F",[332,469,470,473,475,477],{},[352,471,472],{},"Multiusuario",[352,474,357],{},[352,476,357],{},[352,478,479],{},"Registro mediante invitación",[332,481,482,485,487,489],{},[352,483,484],{},"Organizaciones \u002F Colecciones \u002F Roles",[352,486,357],{},[352,488,430],{},[352,490,491],{},"No implementado",[332,493,494,497,499,502],{},[352,495,496],{},"Inicio de sesión con 2FA",[352,498,357],{},[352,500,501],{},"⚠️ Parcial",[352,503,504],{},"Actualmente solo TOTP a nivel de usuario",[332,506,507,510,512,514],{},[352,508,509],{},"SSO \u002F SCIM \u002F Directorio corporativo",[352,511,357],{},[352,513,430],{},[352,515,491],{},[83,517,519],{"id":518},"lo-que-necesitamos","Lo que necesitamos:",[95,521,522,527,533],{},[54,523,524],{},[57,525,526],{},"Una cuenta de GitHub",[54,528,529,532],{},[57,530,531],{},"Una cuenta de Cloudflare","​ (Gratuita) con el almacenamiento R2 activado.",[54,534,535],{},"_Opcional:_Un nombre de dominio personalizado gestionado en Cloudflare.",[537,538,540],"h3",{"id":539},"fase-1-preparar-el-código","Fase 1: Preparar el código",[95,542,543,565],{},[54,544,545,546,552,553,557,558,561],{},"Haz un _fork_del repositorio de NodeWarden desde ",[547,548,549],"a",{"href":549,"rel":550},"https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fnodewarden",[551],"nofollow"," del repositorio original ",[547,554,555],{"href":555,"rel":556},"https:\u002F\u002Fgithub.com\u002Fshuaiplus\u002Fnodewarden",[551]," GitHub.",[559,560],"br",{},[101,562],{"alt":563,"src":564},"Bifurcando el repositorio de NodeWarden en GitHub","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Ffork-nodewarden-repo.webp",[54,566,567,568,571,572,574],{},"Habilita el ",[224,569,570],{},"workflow","\"Sync Upstream\".",[559,573],{},[101,575],{"alt":576,"src":577},"Habilitando el flujo de trabajo de sincronización ascendente en GitHub Actions","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fenable-sync-upstream.webp",[537,579,581],{"id":580},"fase-2-desplegar-en-cloudflare","Fase 2: Desplegar en Cloudflare",[95,583,584,593,606],{},[54,585,586,587,589],{},"Crea una aplicación Worker en Cloudflare.",[559,588],{},[101,590],{"alt":591,"src":592},"Creando una nueva aplicación Worker en el panel de Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fcreate-cloudflare-worker.webp",[54,594,595,596,598,602],{},"Selecciona 'Continue with GitHub' para desplegar la aplicación.",[559,597],{},[101,599],{"alt":600,"src":601},"Desplegando la aplicación NodeWarden conectando con GitHub","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fdeploy-github-repo.webp",[101,603],{"alt":604,"src":605},"Progreso de construcción y despliegue del Worker de Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-deploy-status.webp",[54,607,608,609,612],{},"Espera unos momentos a que Cloudflare construya y despliegue tu app. Te dará una URL por defecto tipo ",[372,610,611],{},"worker.dev",".",[537,614,616],{"id":615},"opcional-añadir-un-dominio-personalizado","(Opcional) Añadir un dominio personalizado:",[51,618,619,625,631],{},[54,620,621,622,612],{},"En la configuración de tu Cloudflare Worker, ve a la pestaña ",[57,623,624],{},"Settings",[54,626,627,628,612],{},"Haz clic en ",[57,629,630],{},"+ Add",[54,632,633,634,636,640],{},"Escribe el dominio que prefieras y sigue las instrucciones.",[559,635],{},[101,637],{"alt":638,"src":639},"Navegando a la configuración de dominio personalizado en el Worker de Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fworker-settings-custom-domain.webp",[101,641],{"alt":642,"src":643},"Añadiendo un dominio personalizado al Worker de Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fadd-custom-domain.webp",[537,645,647],{"id":646},"fase-3-proteger-tu-servidor-el-secreto-jwt","Fase 3: Proteger tu servidor (El secreto JWT)",[95,649,650,653,665,685],{},[54,651,652],{},"Ve al navegador web e ingresa tu dominio personalizado o el dominio 'worker.dev' generado.",[54,654,655,656,612,659,661],{},"Te aparecerá el mensaje '",[57,657,658],{},"JWT_SECRET is missing'",[559,660],{},[101,662],{"alt":663,"src":664},"Mensaje de error JWT_SECRET is missing en el servidor NodeWarden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fjwt-secret-missing-error.webp",[54,666,667,668,670,671,674,675,677,681],{},"Copia la clave secreta generada y vuelve a la pestaña de Settings (Configuración) de tu Worker de NodeWarden, luego haz clic en el botón '",[57,669,630],{},"' en la sección '",[57,672,673],{},"Variables and Secrets","'.",[559,676],{},[101,678],{"alt":679,"src":680},"Sección de Variables y Secretos en la configuración del Worker de Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fworker-variables-secrets.webp",[101,682],{"alt":683,"src":684},"Añadiendo el secreto JWT generado a las variables del Worker de Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fadd-jwt-secret.webp",[54,686,687,688,674],{},"Pega el secreto generado y haz clic en el botón '",[57,689,690],{},"Deploy \u002F Save",[537,692,694],{"id":693},"fase-4-crear-tu-cuenta-de-administrador","Fase 4: Crear tu cuenta de administrador",[95,696,697,706,719,732],{},[54,698,699,700,702],{},"Vuelve al navegador web y actualiza la página; verás la siguiente página de inicio de sesión.",[559,701],{},[101,703],{"alt":704,"src":705},"Página de inicio de sesión del servidor NodeWarden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fnodewarden-login.webp",[54,707,708,709,712,713,715],{},"Haz clic en '",[57,710,711],{},"Create Account","' para crear la cuenta de administrador.",[559,714],{},[101,716],{"alt":717,"src":718},"Haciendo clic en el botón Create Account en la página de inicio de sesión de NodeWarden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fcreate-account-button.webp",[54,720,721,722,725,726,728],{},"Inicia sesión con la cuenta de administrador que acabas de crear para acceder al panel de control (",[224,723,724],{},"Dashboard",").",[559,727],{},[101,729],{"alt":730,"src":731},"Vista general del panel de administración de NodeWarden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fnodewarden-dashboard.webp",[54,733,734],{},"Ahora ya tenemos el servidor desplegado y en funcionamiento. Empezaremos a configurar los clientes de BitWarden.",[537,736,738],{"id":737},"fase-5-conectar-tus-dispositivos","Fase 5: Conectar tus dispositivos",[44,740,741],{},"Puedes usar las aplicaciones oficiales de BitWarden en todos tus dispositivos.",[68,743,745],{"id":744},"extensión-para-chrome","Extensión para Chrome",[95,747,748,751,754,763,772],{},[54,749,750],{},"Instala la extensión de Bitwarden para Chrome.",[54,752,753],{},"Abre la extensión.",[54,755,756,757,759],{},"Haz clic en el enlace junto a 'Accessing:' (Accediendo a:) en la parte inferior del menú emergente.",[559,758],{},[101,760],{"alt":761,"src":762},"Seleccionando la opción de autoalojado en la extensión de Bitwarden para Chrome","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fbitwarden-extension-self-hosted.webp",[54,764,765,766,768],{},"Ingresa el nombre de dominio de tu servidor NodeWarden.",[559,767],{},[101,769],{"alt":770,"src":771},"Ingresando la URL del servidor en la extensión de Bitwarden para Chrome","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fbitwarden-extension-domain.webp",[54,773,774],{},"Guarda la configuración e inicia sesión con tu cuenta.",[68,776,778],{"id":777},"app-para-ios","App para iOS",[95,780,781,784,793],{},[54,782,783],{},"Instala la app de BitWarden desde la App Store.",[54,785,786,787,789],{},"Abre la app y haz clic en '' junto a 'Logging in on:' (Iniciando sesión en:).",[559,788],{},[101,790],{"alt":791,"src":792},"Accediendo a la configuración de autoalojado en la aplicación de Bitwarden para iOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fbitwarden-ios-self-hosted.webp",[54,794,795,796,798],{},"Ingresa el nombre de dominio del servidor NodeWarden y haz clic en el botón '✓'.",[559,797],{},[101,799],{"alt":800,"src":801},"Configurando la URL del servidor en la aplicación de Bitwarden para iOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fbitwarden-ios-domain.webp",[68,803,805],{"id":804},"otros-clientes","Otros Clientes",[44,807,808],{},"NodeWarden ha sido probado y se ha confirmado que es compatible con estos clientes oficiales de BitWarden:",[51,810,811,814,817,820,823],{},[54,812,813],{},"✅ Windows de escritorio",[54,815,816],{},"✅ Apps móviles Android\u002FiOS",[54,818,819],{},"✅ Extensiones de navegador",[54,821,822],{},"✅ Linux de escritorio",[54,824,825],{},"⚠️ macOS de escritorio (no verificado completamente)",[827,828,830],"h1",{"id":829},"copia-de-seguridad-de-la-bóveda","Copia de seguridad de la bóveda",[44,832,833],{},"NodeWarden te permite hacer copias de seguridad de tu bóveda en una computadora local o en almacenamiento remoto (almacenamiento compatible con S3 o WebDAV).",[44,835,836],{},"Para automatizar las copias de seguridad remotas:",[51,838,839,842],{},[54,840,841],{},"Configura los detalles del almacenamiento remoto dentro del panel de control de NodeWarden.",[54,843,844,845,847],{},"Asegúrate de que la tarea Cron esté configurada en los ajustes de Cloudflare Worker para la copia de seguridad remota automática.",[559,846],{},[101,848],{"alt":849,"src":850},"Configurando disparadores Cron para copias de seguridad automáticas en Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-worker-cron.webp",[827,852,854],{"id":853},"consideraciones-finales-de-seguridad","Consideraciones finales de seguridad",[51,856,857,864,867],{},[54,858,859,860,863],{},"Protege el acceso a tu cuenta de Cloudflare, de lo contrario los datos podrían verse comprometidos. Habilita la autenticación de dos factores (2FA) o una ",[224,861,862],{},"Passkey","(Clave de acceso) en tu cuenta de Cloudflare de inmediato.",[54,865,866],{},"Aloja NodeWarden en una cuenta de Cloudflare dedicada. No compartas recursos con otras aplicaciones web para minimizar los riesgos de seguridad.",[54,868,869],{},[547,870,871],{"href":10},"Protege NodeWarden con Cloudflare",[827,873,875],{"id":874},"referencias","Referencias",[51,877,878],{},[54,879,880],{},"Guía de inicio oficial de NodeWarden",{"title":280,"searchDepth":281,"depth":281,"links":882},[883,884],{"id":323,"depth":281,"text":324},{"id":518,"depth":281,"text":519,"children":885},[886,888,889,890,891,892],{"id":539,"depth":887,"text":540},3,{"id":580,"depth":887,"text":581},{"id":615,"depth":887,"text":616},{"id":646,"depth":887,"text":647},{"id":693,"depth":887,"text":694},{"id":737,"depth":887,"text":738},"2026-05-25","Tus contraseñas son tu propiedad digital más importante, y mantenerlas seguras significa tenerlas en tus propias manos.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fservidor-autoalojado-bitwarden.webp","Miniatura del tutorial sobre cómo autoaloja un servidor compatible con Bitwarden, mostrando una bóveda digital y un rack de servidores.",{"schemaOrg":898,"robots":295,"sitemap":901},[899],{"@type":294,"headline":900,"description":894},"Cómo proteger tus contraseñas en tu propia bóveda autoalojando un servidor compatible con Bitwarden",{"lastmod":893},"\u002Fes\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare",{"title":900,"description":894,"ogTitle":900,"ogDescription":894,"twitterTitle":900,"twitterDescription":894},"es\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare","bcgRM3afKeKIDEhWg1JGO_uOrR0iG2q2yf91FnAci4E",{"id":907,"title":908,"author":39,"body":909,"category":39,"date":1356,"description":1357,"extension":287,"image":1358,"imageAlt":1359,"isPublished":290,"meta":1360,"minRead":1239,"navigation":290,"path":1366,"seo":1367,"stem":1368,"__hash__":1369},"article\u002Fes\u002Farticle\u002Fcentralised-the-skills-for-agents.md","Evita fragmentar habilidades de agentes usando npx skills",{"type":41,"value":910,"toc":1346},[911,922,925,948,965,969,979,996,1006,1013,1016,1049,1055,1066,1085,1094,1105,1109,1116,1137,1140,1148,1158,1164,1167,1187,1196,1200,1206,1290,1296,1300,1336,1342],[44,912,913,914,917,918,921],{},"Si ejecutas varios agentes de IA o herramientas de línea de comandos (CLIs) en tu ordenador —ya sea Hermes, Claude Code, Codex, Antigravity, Kimi u otras herramientas compatibles—, es muy probable que te hayas topado con un problema bastante frustrante: ",[57,915,916],{},"la fragmentación de habilidades"," (skills). Cada agente o CLI mantiene su propia carpeta ",[372,919,920],{},"skills"," independiente, lo que provoca duplicidad de instalaciones, desfase de versiones y una gran carga de gestión.",[44,923,924],{},"En nuestro trabajo diario con agentes de IA, solíamos enfrentarnos a los siguientes problemas:",[51,926,927,933,939],{},[54,928,929,932],{},[57,930,931],{},"Múltiples instalaciones",": Instalar una nueva habilidad para un agente y luego tener que instalarla una y otra vez para los demás.",[54,934,935,938],{},[57,936,937],{},"Desfase de versiones"," (version drift): Personalizar o corregir una habilidad para un agente, olvidarse de actualizar los demás y acabar con agentes que se comportan de forma diferente.",[54,940,941,944,945,947],{},[57,942,943],{},"Gestión de habilidades",": Tener que revisar la carpeta ",[372,946,920],{}," de cada agente en todo el sistema para saber qué habilidades estaban realmente instaladas.",[44,949,950,951,954,955,957,958,612],{},"La herramienta de línea de comandos ",[372,952,953],{},"npx skills",", un CLI de código abierto desarrollado por Vercel, soluciona este problema permitiéndote gestionar una única carpeta ",[372,956,920],{}," centralizada y compartirla con todos tus agentes. Puedes echar un vistazo al ",[547,959,962,963],{"href":960,"rel":961},"https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fskills",[551],"repositorio de GitHub de ",[372,964,953],{},[83,966,968],{"id":967},"carpeta-centralizada","Carpeta centralizada",[44,970,971,972,974,975,978],{},"La idea es sencilla: si apuntamos la carpeta ",[372,973,920],{}," de cada agente a la ",[57,976,977],{},"misma carpeta física",", el problema de la fragmentación desaparece por completo.",[44,980,981,982,984,985,988,989,992,993,995],{},"Al instalar una habilidad mediante el CLI de ",[372,983,953],{},", esta se descarga en la carpeta centralizada de tu equipo (",[372,986,987],{},"~\u002F.agents\u002Fskills","). A continuación, el CLI crea un ",[57,990,991],{},"enlace simbólico"," (symlink, que funciona como un puntero directo) desde la carpeta ",[372,994,920],{}," de cada agente hacia esa carpeta centralizada.",[44,997,998,999,1002,1003,1005],{},"Por ejemplo, cuando Claude Code busca habilidades en ",[372,1000,1001],{},"~\u002F.claude\u002Fskills\u002F",", se le redirige de forma transparente a ",[372,1004,987],{},". Si realizas cualquier ajuste en una habilidad dentro de esa carpeta centralizada, todos los agentes verán la actualización de forma instantánea. Sin copias manuales, sin scripts de sincronización y sin desperdiciar espacio en el disco.",[83,1007,1009,1010,1012],{"id":1008},"instalación-de-npx-skills-y-adición-de-una-habilidad","Instalación de ",[372,1011,953],{}," y adición de una habilidad",[44,1014,1015],{},"Ejecuta el siguiente comando para empezar y añadir nuestra primera habilidad:",[1017,1018,1022],"pre",{"className":1019,"code":1020,"language":1021,"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",[372,1023,1024],{"__ignoreMap":280},[1025,1026,1029,1033,1037,1040,1043,1046],"span",{"class":1027,"line":1028},"line",1,[1025,1030,1032],{"class":1031},"sBMFI","npx",[1025,1034,1036],{"class":1035},"sfazB"," skills",[1025,1038,1039],{"class":1035}," add",[1025,1041,1042],{"class":1035}," https:\u002F\u002Fgithub.com\u002Fcoleam00\u002Fexcalidraw-diagram-skill",[1025,1044,1045],{"class":1035}," --skill",[1025,1047,1048],{"class":1035}," excalidraw-diagram\n",[44,1050,1051],{},[101,1052],{"alt":1053,"src":1054},"Uso del comando npx skills add para instalar una habilidad desde GitHub","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002Fnpx-skills-add-command.webp",[44,1056,1057,1058,1061,1062],{},"El CLI te preguntará si deseas configurar esto para un proyecto específico o de forma global. Por lo general, recomendamos elegir ",[57,1059,1060],{},"global"," para que todos los agentes compatibles puedan acceder a ella:\n",[101,1063],{"alt":1064,"src":1065},"Selección de la opción de instalación global en la CLI de npx skills","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002Fnpx-skills-install-global-prompt.webp",[44,1067,1068,1069,1072,1073,1076,1077,1081],{},"A continuación, asegúrate de seleccionar ",[372,1070,1071],{},"Symlink"," para garantizar una ",[57,1074,1075],{},"única fuente de verdad",":\n",[101,1078],{"alt":1079,"src":1080},"Elección del método de enlace simbólico para sincronizar habilidades","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002Fnpx-skills-symlink-option.webp",[101,1082],{"alt":1083,"src":1084},"Confirmación de instalación exitosa y creación de enlace simbólico en la CLI","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002Fnpx-skills-installation-completed.webp",[44,1086,1087,1088,1076,1090],{},"Una vez hecho esto, podemos verificar que la habilidad se ha instalado en la carpeta centralizada en ",[372,1089,987],{},[101,1091],{"alt":1092,"src":1093},"Verificación de habilidades instaladas en el directorio centralizado","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002Fnpx-skills-directory-verification.webp",[44,1095,1096,1097,1100,1101],{},"¡Abre el CLI de Kimi (o cualquier otro agente) y la habilidad ",[372,1098,1099],{},"excalidraw-diagram"," estará disponible y lista para usar!\n",[101,1102],{"alt":1103,"src":1104},"Kimi CLI mostrando las habilidades centralizadas cargadas y listas","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002Fkimi-cli-skills-integration.webp",[83,1106,1108],{"id":1107},"creación-de-una-habilidad-desde-cero","Creación de una habilidad desde cero",[44,1110,1111,1112,1115],{},"Para crear tus propias habilidades, puedes utilizar la herramienta ",[372,1113,1114],{},"skill-creator"," de Anthropic. Instálala de la siguiente manera:",[1017,1117,1119],{"className":1019,"code":1118,"language":1021,"meta":280,"style":280},"npx skills add https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fskills --skill skill-creator\n",[372,1120,1121],{"__ignoreMap":280},[1025,1122,1123,1125,1127,1129,1132,1134],{"class":1027,"line":1028},[1025,1124,1032],{"class":1031},[1025,1126,1036],{"class":1035},[1025,1128,1039],{"class":1035},[1025,1130,1131],{"class":1035}," https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fskills",[1025,1133,1045],{"class":1035},[1025,1135,1136],{"class":1035}," skill-creator\n",[44,1138,1139],{},"Ahora, en Kimi o en cualquier otro agente, introduce la siguiente instrucción (prompt):",[1017,1141,1146],{"className":1142,"code":1144,"language":1145},[1143],"language-text","Use the skill-creator to help me build a skill for creating a product landing page\n","text",[372,1147,1144],{"__ignoreMap":280},[44,1149,1150,1151,1153,1154],{},"¡Kimi o tu agente detectará automáticamente el ",[372,1152,1114],{}," y te guiará paso a paso por todo el proceso!\n",[101,1155],{"alt":1156,"src":1157},"Ejecución del asistente interactivo skill-creator en Kimi CLI","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002Fkimi-cli-skill-creator-setup.webp",[83,1159,1161,1162],{"id":1160},"otros-comandos-útiles-de-npx-skills","Otros comandos útiles de ",[372,1163,953],{},[44,1165,1166],{},"Aquí tienes algunos otros comandos prácticos:",[51,1168,1169,1175,1181],{},[54,1170,1171,1174],{},[372,1172,1173],{},"npx skills ls -g",": Muestra todas las habilidades instaladas globalmente",[54,1176,1177,1180],{},[372,1178,1179],{},"npx skills update",": Mantén todas tus habilidades actualizadas con un solo comando",[54,1182,1183,1186],{},[372,1184,1185],{},"npx skills remove",": Desinstala o elimina una habilidad de forma interactiva",[44,1188,1189,1190,1195],{},"Por favor, consulta el ",[547,1191,962,1193],{"href":960,"rel":1192},[551],[372,1194,953],{}," para ver más comandos y referencias.",[83,1197,1199],{"id":1198},"yendo-un-paso-más-allá","Yendo un paso más allá",[44,1201,1202,1203,1205],{},"Dado que ahora todas las habilidades se encuentran en un único lugar (",[372,1204,987],{},"), podemos inicializarlo como un repositorio Git y subirlo a GitHub o GitLab.",[1017,1207,1209],{"className":1019,"code":1208,"language":1021,"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",[372,1210,1211,1220,1228,1237,1258,1274],{"__ignoreMap":280},[1025,1212,1213,1217],{"class":1027,"line":1028},[1025,1214,1216],{"class":1215},"s2Zo4","cd",[1025,1218,1219],{"class":1035}," ~\u002F.agents\u002Fskills\n",[1025,1221,1222,1225],{"class":1027,"line":281},[1025,1223,1224],{"class":1031},"git",[1025,1226,1227],{"class":1035}," init\n",[1025,1229,1230,1232,1234],{"class":1027,"line":887},[1025,1231,1224],{"class":1031},[1025,1233,1039],{"class":1035},[1025,1235,1236],{"class":1035}," .\n",[1025,1238,1240,1242,1245,1248,1252,1255],{"class":1027,"line":1239},4,[1025,1241,1224],{"class":1031},[1025,1243,1244],{"class":1035}," commit",[1025,1246,1247],{"class":1035}," -m",[1025,1249,1251],{"class":1250},"sMK4o"," \"",[1025,1253,1254],{"class":1035},"Initial skills folder",[1025,1256,1257],{"class":1250},"\"\n",[1025,1259,1261,1263,1266,1268,1271],{"class":1027,"line":1260},5,[1025,1262,1224],{"class":1031},[1025,1264,1265],{"class":1035}," remote",[1025,1267,1039],{"class":1035},[1025,1269,1270],{"class":1035}," origin",[1025,1272,1273],{"class":1035}," https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fskills\n",[1025,1275,1277,1279,1282,1285,1287],{"class":1027,"line":1276},6,[1025,1278,1224],{"class":1031},[1025,1280,1281],{"class":1035}," push",[1025,1283,1284],{"class":1035}," -u",[1025,1286,1270],{"class":1035},[1025,1288,1289],{"class":1035}," main\n",[44,1291,1292,1293,612],{},"De este modo, dispondremos de un historial completo de todos los cambios en las habilidades, lo que significa que podremos revertirlos fácilmente si una actualización rompe algo. Además, podemos sincronizar las habilidades sin problemas entre varios equipos (como un portátil y un ordenador de sobremesa) ejecutando un rápido ",[372,1294,1295],{},"git pull",[83,1297,1299],{"id":1298},"aspectos-a-tener-en-cuenta-seguridad-y-riesgos","Aspectos a tener en cuenta (Seguridad y riesgos)",[51,1301,1302,1308,1314,1324,1330],{},[54,1303,1304,1307],{},[57,1305,1306],{},"La compatibilidad varía",": No todas las plataformas de agentes admiten aún todas las funciones (como hooks personalizados o herramientas permitidas específicas). Una habilidad puede funcionar de maravilla en un agente pero quedarse corta en otro.",[54,1309,1310,1313],{},[57,1311,1312],{},"Confía en la fuente",": Instala únicamente habilidades procedentes de fuentes de confianza.",[54,1315,1316,1319,1320,1323],{},[57,1317,1318],{},"Revisa antes de ejecutar",": Si utilizas una habilidad personalizada o de terceros, revisa los archivos (especialmente en la carpeta ",[372,1321,1322],{},"scripts\u002F",") antes de permitir que tu agente la ejecute.",[54,1325,1326,1329],{},[57,1327,1328],{},"Principio de mínimo privilegio",": Intenta no conceder a una habilidad más permisos de herramientas o acceso del que sea estrictamente necesario para realizar su trabajo.",[54,1331,1332,1335],{},[57,1333,1334],{},"Nunca expongas credenciales",": Mantén tus claves API y secretos fuera de los archivos de tus habilidades.",[44,1337,1338,1339,1341],{},"Configurar una \"fuente única de verdad\" centralizada con ",[372,1340,953],{}," ha evitado frustraciones y duplicidad de trabajo a nuestro equipo. Te recomendamos encarecidamente que lo pruebes; ¡las capacidades de la IA se multiplican a medida que crecen tus habilidades!",[1343,1344,1345],"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":1347},[1348,1349,1351,1352,1354,1355],{"id":967,"depth":281,"text":968},{"id":1008,"depth":281,"text":1350},"Instalación de npx skills y adición de una habilidad",{"id":1107,"depth":281,"text":1108},{"id":1160,"depth":281,"text":1353},"Otros comandos útiles de npx skills",{"id":1198,"depth":281,"text":1199},{"id":1298,"depth":281,"text":1299},"2026-06-04","¿Usas varios agentes de IA como Claude Code o Kimi? Aprende a solucionar la fragmentación de habilidades con una sola carpeta centralizada usando npx skills.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002FEvita-fragmentar-habilidades-de-agentes-usando-npx-skills.webp","Cómo centralizar habilidades de agentes de IA usando npx skills CLI",{"schemaOrg":1361,"robots":295,"sitemap":1364},[1362],{"@type":294,"headline":1363,"description":1357},"Cómo solucionar la fragmentación de habilidades de agentes con npx skills",{"lastmod":1365},"2026-06-03","\u002Fes\u002Farticle\u002Fcentralised-the-skills-for-agents",{"title":1363,"description":1357,"ogTitle":908,"ogDescription":1357,"twitterTitle":908,"twitterDescription":1357},"es\u002Farticle\u002Fcentralised-the-skills-for-agents","VrUv-QeONpCS6-Z7scCLHRmX55DthSHm8mgJMWPTPt0",1781435121450]