OSS · CLI en Python
domain-pre-flight
Los dominios malos se disfrazan de buenas ideas.
Revisa el dominio antes de registrarlo. Estructura, riesgo de abuso del TLD, historial de contenido, similitud con 120 marcas, sentido negativo en 11 idiomas y aptitud LLMO: un comando, un veredicto de 0 a 100.
- Un veredicto antes de comprar 0 a 100 en GREEN / YELLOW / ORANGE / RED
- Atrapa las trampas silenciosas Abuso de TLD, dueño anterior, homoglyphs, choque de marca
- Detecta typosquats 120 marcas, Levenshtein + bigramas + confusables
- Se llama desde agentes Servidor MCP incluido: 4 tools, stdio
- Open Source · MIT
- PyPI + MCP
- 11 subcomandos
- Creado por Ken Imoto
Tres pasos
-
domain-pre-flight check <dominio>Corre todas las verificaciones habilitadas y devuelve un veredicto puntuado en segundos, casi todo offline. -
--check-handles / --check-trademarkVerificaciones online opcionales: mismo handle en 5 plataformas y escaneo de deep-links de marcas. -
--json ↳ exit 0 / 1 / 2Salida legible por máquina y código de salida alineado con la banda, listo para engancharse en CI.
Para quién es
- Indie hackers y solo makers validan el nombre antes de comprar: un comando en vez de cinco pestañas del navegador
- Fundadores de startup y PMs triarán la shortlist de nombres de empresa o producto contra las trampas que consumen semanas después del lanzamiento
- Equipos de growth y marketing ponderan nombres por pronunciación, memorización y aptitud LLMO antes de cerrar uno
- Ingenieros de automatización lo enganchan al CI para que un mal dominio nunca llegue al paso del registrador
Cuándo usarlo
- Al nombrar un producto o proyecto paralelo: mide los tres candidatos favoritos con la misma regla
- Al considerar un SLD corto o con muchos dígitos: las deducciones muestran cuánto cuesta el patrón
- Al comprar un dominio de segunda mano: la sonda del Wayback muestra qué vivía en él antes
- Al automatizar la adquisición de dominios: engánchalo al flujo y deja que el exit code decida si el pipeline sigue
Instalación
pip install domain-pre-flight
# CLI + MCP server
pip install "domain-pre-flight[mcp]" El extra opcional incluye un servidor MCP, así agentes como Claude llaman las mismas verificaciones como herramientas vía stdio.
Qué verifica
- Estructura: longitud, guiones, dígitos, IDN/punycode, validez RFC 1035 — totalmente offline
- Riesgo de abuso del TLD: estadísticas Spamhaus y SURBL por TLD, hasta -70 en los peores
- Historial de contenido: cantidad de snapshots del Wayback Machine y período archivado, hasta -25
- Typosquat y similitud de marca: distancia de Levenshtein y solapamiento de bigramas contra ~120 marcas conocidas, hasta -60
- Sentido negativo: match en 11 idiomas (EN, ES, PT, JA, KO, ZH, HI, AR, VI, TH, ID), hasta -70
- Aptitud LLMO: heurísticas de pronunciación y memorización, nota 0 a 20 (experimental)
- Homoglyphs: detección visual de sósias en IDN contra confusables conocidos, hasta -75
- Handles con el mismo nombre (opt-in): verificación en GitHub, npm, PyPI, X, Instagram
Veredictos reales
Pasan (banda GREEN)
| dominio | banda | nota | principales deducciones |
|---|---|---|---|
| example.com | GREEN | 100/100 | (none) |
| llmoscore.com | GREEN | 100/100 | (none) |
Rechazados (bandas ORANGE / RED)
| dominio | banda | nota | principales deducciones |
|---|---|---|---|
| google.com | ORANGE | 40/100 | brand match: google (−60) |
| my-app123.tk | RED | 10/100 | .tk TLD (−70), digits (−15), hyphen (−5) |
Un nombre limpio en .com, sin choque de marca, cierra en 100. Cambia el TLD a .tk y agrega dígitos: 90 puntos se van antes de verificar nada más. Un nombre que coincide exactamente con una marca existente pierde 60 puntos solo por riesgo de marca. El veredicto no dice qué nombre elegir; dice cuáles no elegir.
Cuánto mueve la nota una sola elección
Mismo SLD, solo cambió el factor mostrado. Deducciones reales de la herramienta.
Elección del TLD
.tk vs .com → brecha de 70 puntos
.tk lleva la deducción máxima de riesgo de TLD (-70) porque Spamhaus y SURBL lo ubican en la peor banda; .com no suma deducción. Mismo SLD, setenta puntos de diferencia.
Choque de marca
Levenshtein 0 vs 3 → brecha de 60 puntos
Un SLD idéntico a una marca conocida cuesta 60 puntos (riesgo UDRP). Distancia 3 a la misma marca queda como nota, sin deducción. La regla se traza en "alguien te va a confundir con ellos".
Uso
# verificación completa (estructura + historial + veredicto)
domain-pre-flight check example.com
# solo offline: omite la consulta a Wayback
domain-pre-flight check example.com --no-history
# agrega verificación de handles en 5 plataformas
domain-pre-flight check example.com --check-handles
# salida JSON para CI (el exit code coincide con la banda)
domain-pre-flight check example.com --json Qué devuelven las ejecuciones reales
Tres patrones comunes, todos medidos con configuración por defecto. Las strings de razón vienen literales de la herramienta.
- my-app123.tk → RED (10/100): .tk TLD risk -70, 3 dígitos -15, 1 guion -5. Tres banderas rojas apiladas en un nombre que "parece bien"
- google.com → ORANGE (40/100): identical to known brand "google" -60. Al veredicto no le importa que el TLD esté limpio: el riesgo de marca carga la deducción entera
- llmoscore.com → GREEN (100/100): sin choque de marca, sin match de sentido negativo en 11 idiomas. Cómo se ve un candidato limpio
La herramienta no elige el nombre. Saca a la luz, antes de comprar, el patrón enterrado en un nombre que casi confirmabas.
Estado: experimental. Los pesos y umbrales todavía se están calibrando con decisiones reales de dominio. El veredicto es uno de los criterios, no el único: al Wayback se le escapan cosas, y los ataques por homoglyph contra una marca en producción necesitan monitoreo aparte.
Por qué existe esta herramienta
Las decisiones de dominio son de una sola vía. Una vez que compras, el nombre vive en tu producto, en cada URL, en cada "se escribe así —". Las señales que la habrían marcado (un TLD muy abusado, una marca dentro de distancia 1, una palabra en inglés que suena a insulto en otro idioma, una URL que ya alojó algo que no querrías heredar) son todas baratas de verificar antes del registro y caras de esquivar después. Esta herramienta las cubre todas, a la vez, en un comando.
Junto a dnstwist y Namechk
Son preguntas distintas. dnstwist genera las permutaciones que un atacante podría registrar contra tu marca; Namechk verifica disponibilidad de handle en redes sociales. domain-pre-flight queda una capa antes que ambas: ¿este nombre debería registrarse, y con qué criterios?
| domain-pre-flight | dnstwist | Namechk | |
|---|---|---|---|
| Qué responde | ¿Debería registrar este dominio? | ¿Qué sósias pueden apuntar a mi marca? | ¿Este handle está libre en todos lados? |
| Veredicto agregado 0 a 100 | ✓ 4 bandas con exit code de CI | — | — |
| Historial de contenido | ✓ Sonda de Wayback | — | — |
| Sentido negativo (multi-idioma) | ✓ 11 idiomas | — | — |
| Generación de typosquats | vía list_typo_permutations (MCP) | ✓ más de 20 algoritmos | — |
| Verificación de handle homónimo | ✓ 5 plataformas | — | ✓ 90+ plataformas |
| Licencia | MIT | Apache-2.0 | Propietaria (SaaS) |
La raya indica ausencia de mención en los docs oficiales a julio de 2026. Las tres herramientas son complementarias: usa domain-pre-flight para decidir si comprar, dnstwist para ver quién puede comprar en contra tuya, y Namechk cuando los handles en muchas redes sean el criterio decisivo.
FAQ
¿Cómo se calcula la nota?
Cada verificación produce una deducción desde una nota inicial de 100. El total cae en una de cuatro bandas: GREEN (90-100), YELLOW (70-89), ORANGE (40-69), RED (0-39). El exit code sigue la banda (0 / 0 / 1 / 2), así que los scripts pueden gate ahí. Todos los pesos viven en un único módulo de puntuación del repo: auditable, editable, versionado.
¿Necesita claves de API?
No. Todas las verificaciones corren contra datos públicos. El Wayback usa la API CDX gratuita, el riesgo de TLD lee estadísticas Spamhaus / SURBL empaquetadas, y el escaneo de sentido negativo usa listas de palabras vendorizadas. Con --no-history la herramienta corre totalmente offline.
¿Qué tan confiable es la nota de aptitud LLMO?
La nota de aptitud LLMO es una heurística experimental — clusters de consonantes, razón de vocales, longitud, repeticiones de substrings, en escala 0 a 20. Su sesgo hacia la pronunciación en inglés está documentado en el ADR 0008. Tómala como señal, no como veredicto.
¿En qué se diferencia de dnstwist?
dnstwist genera permutaciones de un dominio que atacantes podrían usar contra él. domain-pre-flight decide si el dominio que estás considerando vale la pena registrar. La herramienta incluye un tool MCP llamado list_typo_permutations que usa la misma idea con otro propósito: verificar si el nombre que quieres es un typo del nombre de alguien más.
¿Verifica marcas registradas?
Genera deep-links precargados a USPTO, EUIPO y J-PlatPat para que verifiques a mano — decisión registrada en el ADR 0009, porque las consultas automáticas contra esos registros son poco confiables y son la señal equivocada para la pregunta "¿debería registrar esto?". La verificación de typosquat marca solapamiento con 120 marcas conocidas, que ya atrapa la mayoría de las colisiones antes de abrir un registro.
¿Se puede llamar desde un agente?
Sí. Instala con pip install "domain-pre-flight[mcp]" y corre domain-pre-flight-mcp; el servidor MCP expone cuatro tools (check_domain, check_handles, check_trademark, list_typo_permutations) por stdio. Claude, Cursor y cualquier otro agente compatible con MCP llama a las mismas verificaciones que corre el CLI.
¿Puedo agregar mi lista de marcas o términos negativos?
Sí. Las raíces de marca viven en data/known_brands.txt y los términos de sentido negativo en data/negative_meanings/<lang>.txt. Ambos son texto plano y se recargan en cada ejecución, así que un fork o un PR alcanza para tunearlos.
¿Qué queda fuera del alcance?
Valuación de dominios, scraping de WHOIS, monitoreo en lote de dominios que ya tienes y señales pagas de calidad de backlinks. La herramienta es una verificación de pre-flight para el momento antes del registro, no un gestor de portfolio de dominios.
Sobre el autor
Creado por Ken Imoto: más de 300 artículos técnicos en Zenn, Qiita, Dev.to y este sitio, más de 40 libros en 4 idiomas, más de 400 mil páginas vistas en Zenn y Qiita, 4 artículos de investigación en Zenodo y creador del LLMO Framework.
Relacionado
La nota de aptitud LLMO implementa parte del LLMO Framework — un conjunto más amplio de prácticas para hacer que el contenido sea descubrible por LLMs. Lee el framework para el contexto más amplio.
Herramientas relacionadas para devs
- opencut-mcp Servidor MCP que maneja OpenCut classic desde cualquier cliente MCP. Playwright mantiene la sesión del editor; doce herramientas exponen la línea de tiempo, assets y pipeline de export. Corre contra un fork de OpenCut classic.
- mcp-scorecard Pre-flight checks for MCP servers: passive token footprint, use-case scoping, security, and name safety. LLM-facing quality scorecard.
- 404 Games Ten single-file canvas mini games for your 404 page, inspired by famous error pages. Vanilla JS, zero dependencies, theme-aware. Live on this site's 404.
- historymap Turn a YAML file into a corporate-style product-history timeline. Ten layouts, switchable right on the page. Static, self-contained, iframe-embeddable.