Código abierto · MIT · v1.0.0

Escribe tu API y mírala tomar forma

Edita especificaciones OpenAPI en YAML o JSON con la documentación de Swagger UI actualizándose a tu lado, detecta los errores mientras escribes y prueba los endpoints sin pelearte con CORS.

Windows · macOS · Linux — tus archivos se quedan en tu equipo

Ventana de OpenAPI Swagger Editor con el YAML de la especificación a la izquierda y la vista previa de Swagger UI a la derecha
  • 2formatos: YAML y JSON
  • 3formatos de exportación
  • 10 minentre autoguardados
  • MITlicencia libre

Cómo funciona

  1. 1

    Abre o empieza

    Abre un .yaml, .yml o .json, o parte de la plantilla OpenAPI 3.0 que trae el botón Nuevo.

  2. 2

    Edita y comprueba

    La vista previa de Swagger UI se actualiza al dejar de escribir y los errores de sintaxis se marcan en la línea correspondiente.

  3. 3

    Prueba y comparte

    Lanza peticiones con Try it out y exporta la especificación a YAML, JSON o una página HTML con la documentación.

¿Listo para documentar tu API?

Instaladores para Windows, macOS y Linux. Sin cuentas ni registro: todo se edita en local.

Ir a descargas

Proyecto personal e independiente: no está afiliado a SmartBear ni es el Swagger Editor oficial. «Swagger» es una marca de SmartBear Software.

Características

Todo lo necesario para escribir una especificación OpenAPI en una sola ventana: editor, documentación y cliente para probar los endpoints.

✍️

Editor de código

Editor ACE con resaltado de YAML y JSON, números de línea, plegado de bloques y autocompletado con las palabras del documento.

👁️

Vista previa en vivo

Swagger UI muestra la documentación medio segundo después de dejar de escribir. Admite OpenAPI 3.0, 3.1 y Swagger 2.0.

✅

Validación al escribir

Los errores de sintaxis YAML/JSON se resaltan en su línea y la barra de estado indica si el documento es válido.

🧪

Prueba los endpoints

Try it out envía las peticiones a través de un proxy local, así que las APIs sin cabeceras CORS también responden.

🔁

YAML ↔ JSON

Convierte el documento de un formato a otro con un clic, sin perder la estructura.

📤

Exportación

Guarda la especificación como YAML o JSON, o genera una página HTML con la documentación de Swagger UI.

⭐

Favoritos y recientes

Marca tus APIs con la estrella y vuelve a los últimos 10 archivos desde el menú Archivo.

💾

Autoguardado

Cada 10 minutos guarda el archivo abierto; si el documento aún no tiene nombre, ofrece recuperarlo en el siguiente arranque.

Atajos de teclado

Acción Windows / Linux macOS
Nuevo documento Ctrl+N ⌘N
Abrir Ctrl+O ⌘O
Guardar Ctrl+S ⌘S
Guardar como Ctrl+Shift+S ⌘⇧S
Salir Ctrl+Q ⌘Q

Formatos soportados

  • OpenAPI 3.0
  • OpenAPI 3.1
  • Swagger 2.0
  • .yaml · .yml
  • .json
  • Exportación HTML

Capturas

Capturas reales de la aplicación editando una especificación de ejemplo («Biblioteca API») con varios endpoints, esquemas y un servidor local. Haz clic para ampliar.

Descargas

Última versión: v1.0.0

Windows

Instalador .exe · 64 bits

Descargar

~122 MB

macOS

Imagen .dmg · Apple Silicon

Descargar

~125 MB

Linux

Ejecutable .AppImage · 64 bits

Descargar

Desde GitHub Releases

¿Prefieres ver todos los archivos? Todas las versiones en GitHub.

Notas de instalación

🪟 Windows

SmartScreen puede avisar de que el editor es desconocido porque el instalador no está firmado. Pulsa Más información → Ejecutar de todas formas.

🍎 macOS

Si Gatekeeper bloquea la app, ábrela con clic derecho → Abrir, o ejecuta xattr -cr "/Applications/Swagger Editor.app".

🐧 Linux

Dale permisos de ejecución al AppImage: chmod +x Swagger-Editor-*.AppImage y lánzalo con doble clic.

Compilar desde el código

git clone https://github.com/cmurestudillos/openapi-swagger.git
cd openapi-swagger
pnpm install

pnpm start           # ejecutar en desarrollo
pnpm package:win     # generar instalador de Windows
pnpm package:mac     # generar imagen de macOS
pnpm package:linux   # generar AppImage

Requisitos: Node.js 22.12+ y pnpm 11+. Los instaladores se generan en release/.

Documentación

Guía de uso

1. Abrir o crear un documento

Archivo → Abrir acepta .yaml, .yml y .json. El botón Nuevo carga una plantilla OpenAPI 3.0 con un endpoint de ejemplo. La cabecera muestra el nombre del archivo; pasa el ratón por encima para ver la ruta completa.

2. Editar con vista previa

Al dejar de escribir, la documentación de la derecha se regenera con Swagger UI. Al abrir un archivo, el editor detecta si es JSON o YAML y ajusta el resaltado.

3. Validar

Dos segundos después de cada cambio se comprueba el documento: si hay un error de sintaxis, su línea se marca en rojo y la barra de estado muestra el motivo. El botón Validar (o OpenAPI → Validar) hace la misma comprobación y muestra el error en un diálogo.

4. Probar los endpoints

Despliega una operación en la vista previa, pulsa Try it out y luego Execute. La petición se envía a la URL de servers a través de un proxy local que solo atiende a la propia app, de modo que funciona aunque la API no devuelva cabeceras CORS.

5. Convertir, guardar y exportar

A JSON y A YAML convierten el documento. Guardar escribe el archivo abierto (o pide un nombre si es nuevo) y Exportar genera un .yaml, un .json o una página .html con la documentación, sin cambiar el archivo en el que estás trabajando.

6. Favoritos, recientes y autoguardado

La estrella ★ añade el archivo abierto a Archivo → Favoritos, y Archivo → Archivos recientes guarda los 10 últimos. Cada 10 minutos se guarda el archivo abierto; si el documento es nuevo, se guarda una copia temporal que la app ofrece recuperar al arrancar.

Limitaciones conocidas

  • Validación Es básica: comprueba la sintaxis y que existan openapi/swagger, info y paths, pero no valida los esquemas ni resuelve las $ref.
  • HTML La página exportada carga Swagger UI desde cdnjs, así que necesita conexión para verse.
  • Guardar como Guarda el contenido tal cual: para obtener un .json a partir de YAML, convierte antes con A JSON o usa Exportar.
  • Try it out La Request URL que muestra Swagger UI es la del proxy local, no la de tu API.

Arquitectura

├── main.js                  # proceso principal: ventana, menús, diálogos, IPC y configuración
├── preload.js               # puente IPC seguro (contextIsolation activo)
├── renderer.js              # interfaz: editor ACE, Swagger UI, validación y autoguardado
├── proxy-server.js          # proxy CORS local (Express, solo 127.0.0.1 y con token)
├── swagger-parser-loader.js # validación básica de la especificación
├── index.html · style.css   # estructura y estilos de la ventana
└── assets/                  # iconos de la app

Construida con Electron, ACE como editor, Swagger UI para la vista previa, js-yaml para las conversiones y Express para el proxy. Sin frameworks de interfaz: HTML, CSS y JavaScript.

Roadmap

  • Validación Validación completa (esquemas y $ref) con swagger-parser
  • Pestañas Varios documentos abiertos a la vez
  • Snippets Fragmentos para los componentes OpenAPI más habituales
  • Importar Colecciones de Postman e Insomnia
  • Diff Comparación visual entre versiones de una especificación
  • Tema Tema claro/oscuro para la aplicación

Contribuir

Los issues y pull requests son bienvenidos. Abre un issue describiendo el bug (si puedes, adjunta una especificación mínima que lo reproduzca) o la funcionalidad que echas de menos.