Línea de comandos
Todo lo que hace la aplicación lo ejecuta el motor, ultragx-engine, que también se puede usar directamente desde una terminal: para automatizar la documentación de varias KB, programarla en un servidor o integrarla en un proceso de integración continua. Usa la misma licencia que la aplicación.
Dónde está el motor
| Sistema | Ruta |
|---|---|
| Windows (instalador) | %LOCALAPPDATA%\Programs\UltraGX\ultragx-engine.exe |
| Linux (deb / rpm) | /opt/ultragx/ultragx-engine |
| Linux (AppImage) | ./UltraGX-<versión>-x86_64.AppImage engine <comando> … |
| macOS | /Applications/UltraGX.app/Contents/MacOS/ultragx-engine |
En los ejemplos se usa ultragx-engine; reemplazalo por la ruta correspondiente o agregá la carpeta al PATH.
Comandos
version y machine-id
ultragx-engine version # versión del motor
ultragx-engine machine-id # id de la máquina, para pedir una licencia atada a ella
license
ultragx-engine license # estado de la licencia, en JSON
ultragx-engine license activate --code ULGX-XXXX-XXXX # activa una licencia con un código
La demo también se puede pedir sin la aplicación, en dos pasos:
ultragx-engine license register --first-name Ana --last-name Pérez --company "Mi Empresa" \
--email ana.perez@miempresa.com --gx-version 18 --kb-size 3000 --lang es
ultragx-engine license confirm --email ana.perez@miempresa.com --code 123456
pipeline
Documenta una KB desde un export.
ultragx-engine pipeline --source xpz --input C:/exports/MiKB.xpz --out D:/ultragx/MiKB --lang es
ultragx-engine pipeline --source gxtext --input D:/exports/MiKB_texto --out D:/ultragx/MiKB --lang es --no-ref
| Opción | Descripción |
|---|---|
--source | xpz (archivo .xpz o .xml) o gxtext (carpeta con src/ y ref/) |
--input | archivo o carpeta de entrada |
--out | carpeta del proyecto (se crea si no existe) |
--lang | idioma de los documentos: en, es o pt-BR |
--no-ref | con gxtext, omite los objetos de módulos referenciados |
--no-viewer | no genera el visor (más rápido; se puede generar después) |
El progreso se escribe en la salida de error y, al terminar, el resumen de la ejecución sale en JSON por la salida estándar.
export
Abre una KB con el GeneXus instalado (solo Windows, con el conector), la exporta a texto y ejecuta el pipeline.
ultragx-engine export --kb-path "C:/Models/MiKB" --kb MiKB --out D:/ultragx/MiKB --lang es
| Opción | Descripción |
|---|---|
--kb-path | carpeta de la KB (la que contiene el .gxw) |
--kb | nombre corto de la KB |
--out | carpeta del proyecto |
--gx-version | fuerza una instalación de GeneXus (18, 17, XEv3…); por defecto se deduce de la KB |
--names | exporta solo algunos objetos: nombres o selectores como type:Transaction |
--no-reference | omite los módulos referenciados |
--skip-pipeline | solo exporta, sin documentar |
--timeout | tiempo máximo de la exportación en segundos (3600 por defecto) |
--lang, --no-viewer | igual que en pipeline |
viewer
Regenera el visor de un proyecto sin volver a analizar la KB.
ultragx-engine viewer --out D:/ultragx/MiKB --lang es
narrative
Ejecuta la narrativa con IA sobre un proyecto ya documentado. Por línea de comandos, las credenciales se toman de variables de entorno: ANTHROPIC_API_KEY para Anthropic, OPENAI_API_KEY (y OPENAI_BASE_URL para otro servidor) para los proveedores compatibles con OpenAI, incluidos Gemini, OpenRouter y los modelos locales.
export OPENAI_API_KEY=... # en PowerShell: $env:OPENAI_API_KEY = "..."
ultragx-engine narrative run --out D:/ultragx/MiKB --provider openai \
--base-url https://generativelanguage.googleapis.com/v1beta/openai/ --model gemini-3.8-flash \
--lang es --concurrency 8
| Opción | Descripción |
|---|---|
--provider | anthropic, openai (cualquier servidor compatible) o mock |
--model, --base-url | modelo y URL del servidor |
--lang | idioma de la prosa |
--concurrency | objetos en paralelo (4 por defecto) |
--types | solo estos tipos, separados por coma |
--all-types | incluye también las declaraciones (atributos, dominios, SDTs…) |
--only | solo estos objetos, por <Tipo>.<Nombre> separados por coma |
--limit | cantidad máxima de objetos |
--no-resume | vuelve a procesar objetos ya narrados |
--max-doc-chars | caracteres del documento que se envían (60.000 por defecto; 16.000 con un servidor local si no se indica) |
--no-source | no envía el código GeneXus original al modelo |
--timeout | segundos de espera por respuesta (300 por defecto) |
--viewer-every | segundos entre regeneraciones del visor durante la ejecución (600 por defecto; 0 = solo al final) |
notes
Agrega o borra notas del usuario sin la aplicación.
ultragx-engine notes add --out D:/ultragx/MiKB --json nota.json
ultragx-engine notes delete --out D:/ultragx/MiKB --stem Procedure.CalcularDescuento --id n171234567890000
ultragx-engine notes apply --out D:/ultragx/MiKB
nota.json tiene la forma {"stems": ["Procedure.CalcularDescuento"], "text": "…", "author": "Ana"}. apply vuelve a incorporar todas las notas a los documentos.
Códigos de salida
| Código | Significado |
|---|---|
| 0 | terminó bien |
| 1 | la narrativa terminó con objetos en error |
| 2 | uso incorrecto (comando u opciones inválidos) o, en export, no se pudo abrir la KB |
| 3 | licencia faltante, inválida, vencida o revocada |
Ejemplo: documentar todas las KB de una carpeta
$engine = "$env:LOCALAPPDATA\Programs\UltraGX\ultragx-engine.exe"
Get-ChildItem D:\exports\*.xpz | ForEach-Object {
& $engine pipeline --source xpz --input $_.FullName --out "D:\ultragx\$($_.BaseName)" --lang es
if ($LASTEXITCODE -ne 0) { Write-Warning "$($_.Name) terminó con código $LASTEXITCODE" }
}