Crear una extensión de Chrome con Manifest V3 y permisos mínimos
Genera una extensión de navegador completa con Manifest V3: manifest.json con permisos mínimos, service worker, content script, popup, mensajería, almacenamiento y checklist para la Chrome Web Store. Pensado para ChatGPT, Claude, Gemini y Microsoft Copilot. Incluye 4 variables personalizables y se copia gratis en un clic.
Intermedio · Código · Pendiente de revisión editorial
Prompt
Actúa como desarrollador especializado en extensiones de navegador basadas en Chromium con Manifest V3.
Contexto:
- Qué debe hacer la extensión: {{proposito}}
- Sitios donde funciona: {{sitios}}
- Interfaz y puntos de entrada: {{interfaz}}
- Datos que guarda y si deben sincronizarse entre dispositivos: {{datos}}
Entregables:
1. Arquitectura: qué hace el service worker, el content script y el popup u opciones, y cómo se comunican (chrome.runtime.sendMessage, puertos), con un diagrama sencillo.
2. manifest.json completo con los permisos mínimos necesarios: justifica cada permiso y host_permissions; usa activeTab u optional_permissions cuando sea posible.
3. Código de cada archivo (service worker, content script, popup HTML/CSS/JS, opciones si hacen falta) en JavaScript moderno, sin código remoto ni eval, respetando la política de seguridad de contenido de MV3.
4. Persistencia con chrome.storage (local o sync según {{datos}}), teniendo en cuenta que el service worker puede detenerse en cualquier momento y no guarda estado en memoria.
5. Accesibilidad básica del popup (etiquetas, foco, contraste) y textos preparados para traducción con _locales.
6. Cómo probarla: cargar descomprimida en chrome://extensions, depurar el service worker y el content script, y casos de prueba.
7. Checklist de publicación en la Chrome Web Store: descripción de uso de permisos, política de privacidad si trata datos, capturas e iconos.
Restricciones:
- Nada de recogida de datos ni rastreo que el usuario no haya pedido; si la extensión maneja datos personales, indica qué debe declarar en la política de privacidad.
- Si una API puede variar entre versiones, márcala como [VERIFICAR en la documentación de Chrome Extensions].
- Si no queda claro qué debe hacer la extensión en cada sitio, pregúntame antes.
Formato: secciones numeradas, árbol de archivos y un bloque de código por archivo.Cómo usarlo
Describe el comportamiento con un ejemplo concreto («al seleccionar texto, clic derecho y…»). Crea los archivos en una carpeta, cárgala como extensión descomprimida y prueba cada caso antes de pensar en publicarla.
Ejemplo de uso
Propósito: resaltar en amarillo las palabras clave que elija en cualquier artículo · Sitios: todos, solo al pulsar el icono · Interfaz: popup y menú contextual · Datos: lista de palabras sincronizada.
Resultado de ejemplo
1. Arquitectura
Solo hace falta un popup: al abrirlo, activeTab da acceso temporal a la pestaña actual. No se necesita service worker ni content script, lo que reduce permisos y superficie de ataque.
2. manifest.json
{
"manifest_version": 3,
"name": "__MSG_extName__",
"version": "1.0.0",
"default_locale": "es",
"action": { "default_popup": "popup.html", "default_title": "__MSG_saveTitle__" },
"permissions": ["activeTab", "storage"]
}
activeTab: lee título y URL solo cuando el usuario pulsa el icono.storage: guarda la lista enchrome.storage.sync.
3. popup.js
const list = document.querySelector('#list');
async function render() {
const { links = [] } = await chrome.storage.sync.get('links');
list.replaceChildren(...links.map(({ title, url }) => {
const a = Object.assign(document.createElement('a'), { href: url, textContent: title, target: '_blank' });
const li = document.createElement('li');
li.append(a); // textContent: nunca innerHTML con datos de la página
return li;
}));
}
document.querySelector('#save').addEventListener('click', async () => {
const [tab] = await chrome.tabs.query({ active: true, currentWindow: true });
if (!tab?.url) return;
const { links = [] } = await chrome.storage.sync.get('links');
if (!links.some((l) => l.url === tab.url)) {
links.unshift({ title: tab.title || tab.url, url: tab.url, savedAt: Date.now() });
await chrome.storage.sync.set({ links });
}
render();
});
render();
Ojo: storage.sync tiene un límite de tamaño por elemento; con una sola clave links la lista se llenará pronto. Guarda cada enlace en su propia clave o pasa a storage.local a partir de cierto tamaño [VERIFICAR cuotas en la documentación de Chrome Extensions]…
Datos clave
- Categoría
- Programación y desarrollo · Plugins
- Tipo de resultado
- Código
- Nivel
- Intermedio
- Pensado para
- ChatGPT, Claude, Gemini y Microsoft Copilot
- Verificado en
- Pendiente de verificación editorial
- Variables
- Propósito, Sitios, Interfaz y Datos y sincronización
- Idioma
- Español
- Precio
- Gratis, sin registro
- Actualizado
- 07/11/2026
Preguntas frecuentes
¿Funcionará en Edge, Brave u Opera?
En general sí, porque usan Chromium y admiten Manifest V3, aunque algunas APIs o políticas de sus tiendas pueden variar. Pruébala en cada navegador antes de publicarla allí.
¿Por qué pedir el mínimo de permisos?
Porque los permisos amplios generan avisos que asustan a los usuarios y alargan la revisión en la Chrome Web Store. Además, reducen el daño posible si la extensión tuviera un fallo de seguridad.
¿Para qué sirve este prompt?
Genera una extensión de navegador completa con Manifest V3: manifest.json con permisos mínimos, service worker, content script, popup, mensajería, almacenamiento y checklist para la Chrome Web Store.
¿Con qué herramientas de IA funciona?
Está pensado para ChatGPT, Claude, Gemini y Microsoft Copilot. Todavía no lo hemos verificado en estas herramientas, por lo que los resultados pueden variar entre ellas.
¿Cómo personalizo el prompt?
Pulsa «Personalizar» y rellena las variables (Propósito, Sitios, Interfaz y Datos y sincronización). El texto se actualiza al instante y después puedes copiarlo con un clic. Los valores se guardan solo en tu navegador.
¿Necesito experiencia para usarlo?
Es de nivel intermedio: conviene que conozcas el tema para aportar buen contexto y revisar el resultado con criterio.
¿Este prompt es gratis?
Sí. Todos los prompts de HomeCasa Prompts son gratuitos, sin registro ni suscripción. Puedes usarlos también en proyectos profesionales.
¿Puedo fiarme del resultado de la IA?
Úsalo como un borrador de calidad: revisa siempre datos, cifras y afirmaciones importantes antes de publicarlos o tomar decisiones.