Si usa Insomnia como cliente API, ya tiene una interfaz gráfica para enviar solicitudes, diseñar especificaciones OpenAPI y escribir pruebas. El problema aparece cuando quiere ejecutar esas mismas pruebas en CI/CD o lintar una especificación en cada pull request. Para eso necesita una CLI. En el ecosistema de Insomnia, esa CLI es inso.
Esta guía muestra qué es inso, cómo instalarlo, qué comandos usar en el día a día, cómo conectarlo con sus datos de Insomnia y qué límites debe considerar antes de integrarlo en su pipeline.
¿Qué es inso?
inso es el compañero de línea de comandos de Insomnia, el cliente API de código abierto mantenido por Kong. Permite automatizar tres tareas principales desde la terminal:
- Ejecutar suites de pruebas creadas en Insomnia.
- Ejecutar colecciones de solicitudes.
- Lintar especificaciones OpenAPI.
En términos prácticos: inso le permite ejecutar trabajo definido en Insomnia sin abrir la aplicación. Usted referencia una especificación, colección, suite o entorno por nombre, y la CLI los resuelve desde los datos de Insomnia.
Instalación de la CLI de inso
Tiene varias formas de instalar inso. Elija según el entorno donde lo vaya a ejecutar.
macOS o Linux con Homebrew
brew install inso
CI/CD con Docker
Para runners limpios, Docker suele ser la opción más simple porque evita instalar dependencias locales:
docker pull kong/inso:latest
Descarga directa
Kong publica archivos ZIP para Windows, Linux y macOS en la documentación oficial de la CLI de inso. Esta opción es útil si quiere fijar una versión concreta dentro de un artefacto de build.
Instalación con npm
Históricamente, inso también se distribuía como paquete npm bajo el nombre insomnia-inso. Esa ruta todavía existe, pero para configuraciones nuevas es preferible usar Homebrew, Docker o descargas directas, que son las rutas documentadas y recomendadas actualmente.
Verifique la instalación:
inso --version
Comandos principales de inso
La CLI tiene una superficie pequeña. Estos son los comandos que probablemente usará en proyectos reales.
Ejecutar una suite de pruebas: inso run test
Use este comando para ejecutar una suite de pruebas creada en Insomnia contra un entorno específico:
inso run test "Payments API tests" --env "Staging"
La suite y el entorno se referencian por nombre, tal como aparecen en Insomnia.
Este comando es útil en CI porque devuelve un código de salida distinto de cero si falla alguna aserción. Por ejemplo, puede usarlo como gate antes de desplegar:
inso run test "Payments API tests" --env "CI" --workingDir .
Ejecutar una colección: inso run collection
Para ejecutar todas las solicitudes de una colección en secuencia:
inso run collection "Checkout flow" --env "Staging"
Este comando funciona bien para pruebas de humo. Por ejemplo, puede validar rápidamente que un flujo básico de checkout responde correctamente después de un despliegue.
Lintar una especificación OpenAPI: inso lint spec
Para validar una especificación OpenAPI definida en Insomnia:
inso lint spec "Orders API"
Internamente, inso lint spec usa Spectral, el linter de OpenAPI y JSON de Stoplight. Esto significa que no solo obtiene una validación superficial de sintaxis, sino linting basado en reglas.
Si su equipo aplica convenciones de diseño de API, este comando es una de las razones más fuertes para usar inso.
Ejemplo en CI:
inso lint spec "Orders API" --workingDir .
Exportar una especificación: inso export spec
Para extraer una especificación de Insomnia a un archivo local:
inso export spec "Orders API" --output orders.yaml
Esto es útil cuando necesita:
- Pasar la especificación a un generador de SDK.
- Guardar una snapshot.
- Entregar un archivo YAML a otra herramienta.
- Publicar la especificación como artefacto de CI.
Ejecutar scripts: inso script
También puede ejecutar scripts definidos en sus datos de Insomnia:
inso script deploy-smoke --env env_9f2a
Este comando sirve como punto de extensión cuando necesita encadenar pasos personalizados alrededor de sus pruebas o colecciones.
Cómo inso encuentra sus especificaciones y colecciones
inso no almacena especificaciones, colecciones ni entornos por sí mismo. Lee datos desde una de estas fuentes:
- Un directorio
.insomniaen el directorio de trabajo. - El directorio de datos de la aplicación Insomnia instalada localmente.
Para CI/CD, el patrón recomendado es usar Git Sync de Insomnia y confirmar el directorio .insomnia en el repositorio. Así el runner puede ejecutar inso sin depender de una instalación local de Insomnia.
Ejemplo:
inso lint spec "Orders API" --workingDir .
También puede apuntar explícitamente a una fuente:
inso run test "Payments API tests" --src ./api-project/.insomnia
El modelo mental es este:
-
insoresuelve recursos por nombre o ID. - Esos nombres deben existir en la fuente de datos que está leyendo.
- Si una suite, entorno o especificación no está en
.insomniao en los datos locales de Insomnia,insono puede ejecutarla. - No puede apuntar directamente a un archivo OpenAPI suelto y decirle a
insoque lo pruebe, salvo que ese archivo forme parte de una estructura de proyecto de Insomnia.
Ejemplo mínimo con GitHub Actions
Este workflow ejecuta linting de una especificación y una suite de pruebas en cada push.
Asume que el repositorio contiene un directorio .insomnia sincronizado desde Insomnia:
name: API checks
on: [push]
jobs:
inso:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install inso
run: |
curl -sSL https://github.com/Kong/insomnia/releases/latest/download/inso-linux-x64.zip -o inso.zip
unzip inso.zip && sudo mv inso /usr/local/bin/
- name: Lint the spec
run: inso lint spec "Orders API" --workingDir .
- name: Run the test suite
run: inso run test "Payments API tests" --env "CI" --workingDir .
Si el linting falla o alguna aserción no pasa, el job falla. Ese es el objetivo principal de mover estas comprobaciones desde la interfaz gráfica hacia la terminal: convertirlas en validaciones automatizadas.
Buenas prácticas al usar inso en CI
Para evitar fallos difíciles de depurar, considere estas prácticas:
- Use nombres estables para suites, colecciones y entornos.
- Evite renombrar recursos usados por pipelines.
- Confirme el directorio
.insomniasi quiere reproducibilidad en CI. - Use
--workingDiro--srcexplícitamente en scripts automatizados. - Cree un entorno específico para CI, por ejemplo
"CI"o"Staging CI". - Mantenga secretos fuera del repositorio y resuélvalos mediante variables del entorno de CI cuando sea posible.
Ejemplo de ejecución con entorno dedicado:
inso run test "Regression tests" --env "CI" --workingDir .
Limitaciones de inso
inso es útil, pero tiene límites importantes.
Primero, está ligado a las fuentes de datos de Insomnia. Sus especificaciones, colecciones y suites deben vivir dentro de un proyecto de Insomnia, ya sea mediante Git Sync o mediante la aplicación instalada. Si su equipo no usa Insomnia como fuente de verdad, inso no tendrá datos sobre los que operar.
Segundo, muchos recursos se referencian por nombre. Eso es legible, pero también frágil. Si alguien cambia el nombre de una suite en Insomnia, el pipeline que usa el nombre anterior fallará en la siguiente ejecución.
Tercero, el alcance de la herramienta es intencionalmente estrecho. inso ejecuta pruebas, ejecuta colecciones, linta especificaciones, exporta especificaciones y ejecuta scripts. No reemplaza una plataforma completa de diseño, mock, documentación y pruebas.
inso vs. una plataforma integrada
inso funciona bien si Insomnia ya es su cliente principal y solo necesita llevar ciertas tareas a la terminal. La desventaja es que termina combinando varias piezas:
- Insomnia para diseño y depuración.
-
insopara CI. - Spectral para linting.
- Otras herramientas para mocks, documentación o flujos más completos.
Apidog sigue un enfoque diferente. Combina diseño, simulación, documentación y pruebas en una sola plataforma. Su CLI de Apidog ejecuta escenarios de prueba y colecciones desde la misma fuente de verdad, con pruebas impulsadas por datos, múltiples formatos de informe y recursos y ramas como código.
Hay una diferencia importante: la CLI de Apidog no incluye un linter de especificaciones independiente como inso con Spectral. Si su prioridad principal es aplicar reglas de estilo OpenAPI al nivel de Spectral, inso tiene una ventaja clara. Si su prioridad es integrar diseño, pruebas, mocks y documentación sin unir varias herramientas, Apidog puede encajar mejor.
Para comparar ambas opciones, consulte Apidog CLI vs inso (CLI de Insomnia) o lea una explicación más amplia sobre qué es inso (CLI de Insomnia).
Si ya decidió que inso no encaja con su flujo, revise el resumen de las mejores alternativas a inso y la guía para migrar de inso a la CLI de Apidog.
Para contexto adicional sobre clientes GUI, también puede leer Apidog vs Insomnia y cómo usar Insomnia para probar una API.
Puede descargar Apidog gratis si quiere comparar el enfoque integrado con su configuración actual de inso.


Top comments (0)