UltraGX UltraGX manual Download PDF

Command line

Everything the application does is carried out by the engine, ultragx-engine, which can also be used directly from a terminal: to automate the documentation of several KBs, schedule it on a server or integrate it into a continuous integration process. It uses the same licence as the application.

Where the engine is

SystemPath
Windows (installer)%LOCALAPPDATA%\Programs\UltraGX\ultragx-engine.exe
Linux (deb / rpm)/opt/ultragx/ultragx-engine
Linux (AppImage)./UltraGX-<version>-x86_64.AppImage engine <command> …
macOS/Applications/UltraGX.app/Contents/MacOS/ultragx-engine

The examples use ultragx-engine; replace it with the corresponding path or add the folder to the PATH.

Commands

version and machine-id

ultragx-engine version       # engine version
ultragx-engine machine-id    # machine id, to request a licence bound to it

license

ultragx-engine license                                   # licence status, as JSON
ultragx-engine license activate --code ULGX-XXXX-XXXX    # activates a licence with a code

The demo can also be requested without the application, in two steps:

ultragx-engine license register --first-name Ana --last-name Pérez --company "My Company" \
    --email ana.perez@mycompany.com --gx-version 18 --kb-size 3000 --lang en
ultragx-engine license confirm --email ana.perez@mycompany.com --code 123456

pipeline

Documents a KB from an export.

ultragx-engine pipeline --source xpz --input C:/exports/MyKB.xpz --out D:/ultragx/MyKB --lang en
ultragx-engine pipeline --source gxtext --input D:/exports/MyKB_text --out D:/ultragx/MyKB --lang en --no-ref
OptionDescription
--sourcexpz (.xpz or .xml file) or gxtext (folder with src/ and ref/)
--inputinput file or folder
--outproject folder (created if it does not exist)
--langlanguage of the documents: en, es or pt-BR
--no-refwith gxtext, skips the objects of referenced modules
--no-viewerdoes not generate the viewer (faster; it can be generated later)

Progress is written to standard error and, when it finishes, the run summary is printed as JSON on standard output.

export

Opens a KB with the installed GeneXus (Windows only, with the connector), exports it to text and runs the pipeline.

ultragx-engine export --kb-path "C:/Models/MyKB" --kb MyKB --out D:/ultragx/MyKB --lang en
OptionDescription
--kb-pathKB folder (the one that contains the .gxw)
--kbshort name of the KB
--outproject folder
--gx-versionforces a GeneXus installation (18, 17, XEv3…); by default it is deduced from the KB
--namesexports only some objects: names or selectors such as type:Transaction
--no-referenceskips referenced modules
--skip-pipelineexports only, without documenting
--timeoutmaximum export time in seconds (3600 by default)
--lang, --no-viewersame as in pipeline

viewer

Regenerates a project's viewer without analysing the KB again.

ultragx-engine viewer --out D:/ultragx/MyKB --lang en

narrative

Runs the AI narrative on an already documented project. On the command line, credentials are taken from environment variables: ANTHROPIC_API_KEY for Anthropic, OPENAI_API_KEY (and OPENAI_BASE_URL for another server) for the OpenAI-compatible providers, including Gemini, OpenRouter and local models.

export OPENAI_API_KEY=...        # in PowerShell: $env:OPENAI_API_KEY = "..."
ultragx-engine narrative run --out D:/ultragx/MyKB --provider openai \
    --base-url https://generativelanguage.googleapis.com/v1beta/openai/ --model gemini-3.8-flash \
    --lang en --concurrency 8
OptionDescription
--provideranthropic, openai (any compatible server) or mock
--model, --base-urlmodel and server URL
--langlanguage of the prose
--concurrencyobjects in parallel (4 by default)
--typesonly these types, separated by commas
--all-typesalso includes declarations (attributes, domains, SDTs…)
--onlyonly these objects, as <Type>.<Name> separated by commas
--limitmaximum number of objects
--no-resumeprocesses objects already narrated again
--max-doc-charsdocument characters sent (60,000 by default; 16,000 with a local server if not specified)
--no-sourcedoes not send the original GeneXus code to the model
--timeoutseconds to wait for each response (300 by default)
--viewer-everyseconds between viewer regenerations during the run (600 by default; 0 = only at the end)

notes

Adds or deletes user notes without the application.

ultragx-engine notes add    --out D:/ultragx/MyKB --json note.json
ultragx-engine notes delete --out D:/ultragx/MyKB --stem Procedure.CalcularDescuento --id n171234567890000
ultragx-engine notes apply  --out D:/ultragx/MyKB

note.json has the form {"stems": ["Procedure.CalcularDescuento"], "text": "…", "author": "Ana"}. apply merges all the notes into the documents again.

Exit codes

CodeMeaning
0finished successfully
1the narrative finished with objects in error
2incorrect usage (invalid command or options) or, in export, the KB could not be opened
3licence missing, invalid, expired or revoked

Example: documenting every KB in a folder

$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 en
    if ($LASTEXITCODE -ne 0) { Write-Warning "$($_.Name) finished with code $LASTEXITCODE" }
}