Where batch workflows usually break
- Manual one-by-one conversion introduces timing and operator variance.
- Unvalidated file sets cause failed exports near release deadlines.
- Lack of predictable settings leads to inconsistent output between runs.
- No review trail for what changed between conversion batches.
CLI command reference (Professional and Enterprise)
The Reforge CLI runs on Windows and Linux. All four commands require a Professional or Enterprise license — the CommandLineAccess feature flag is checked at startup and any command will exit with code 10 if the license does not include CLI access. The general form is:
reforge-cli convert
Converts one or more CGM files to SVG. Accepts individual file paths, glob patterns, or a folder path as input. When multiple inputs resolve, the output argument must be a directory.
- --profile
auto|generic|webcgm|s1000d|ata|cals|cgmplus|pip— selects the CGM input profile (default:auto) - --preset
s1000d|ataispec2200|webcgm21|cals|pipcggc|default|highqualityprint— applies one of the seven GUI output presets (DPI, hotspot encoding, APS preservation, validation). Aliases:ata,webcgm,pip,print - --dpi
72–600— output resolution (default: 96) - --validate — runs pre-conversion validation; issues appear in output
- --json — emits a structured JSON result to stdout instead of text lines
- --log
debug|info|quiet— controls verbosity (default:info)
JSON output fields: success, inputPath, outputPath, profile, conversionDurationMs, hasWatermark, warnings[], error, errorCategory.
reforge-cli watch
Monitors a folder and auto-converts any CGM file dropped into it. Runs until Ctrl-C or SIGTERM. Designed for CSDB staging pipelines and server-side hot-folders. On shutdown, in-flight conversions are drained before the process exits.
- --output
<dir>— SVG output directory (defaults to watched folder) - --recursive — also watches subdirectories
- --profile — same values as convert
- --workers
1–16— parallel conversion slots (default: 4) - --log-format
plain|json— plain text or NDJSON for log aggregators and systemd (default:plain) - --log-file
<path>— appends log to a file alongside stdout - --pidfile
<path>— writes process ID on start; cleaned up on clean exit - --drain-timeout
<seconds>— seconds to wait for in-flight jobs on SIGTERM (default: 30) - --log
debug|info|quiet— verbosity
Event log tags emitted to stdout: [DETECT], [OK], [FAILED], [ERROR], [STARTED], [STOPPED], [SUMMARY]. Use --log-format json for NDJSON output compatible with log aggregators and systemd journal forwarding.
reforge-cli validate
Standalone validation without conversion. Useful for pre-flight checks on large archives before committing to a batch run. Produces per-file results plus an overall summary.
- --profile — same values as convert
- --format
text|json— output format (default:text) - --strict — treats warnings as errors; exit 1 if any warning exists
- --skip-rules
color-spaces,text-encoding,references,coordinates— comma-separated rule categories to skip (Professional/Enterprise only) - --log
debug|info|quiet
Text output per file: detected profile, confidence percentage, error / warning / info counts. JSON output includes per-issue code, severity, description, lineNumber, remediationHint, and specReference fields.
reforge-cli license
Full lifecycle license management. Subcommands: activate, deactivate, status, import, request-offline.
The status --json command returns the license edition, expiry date, feature flags (cliAccess, batchProcessing, customProfiles, advancedValidation, apiAccess), daily conversion limit, and the machine ID — useful for scripted environment checks.
Offline / air-gapped activation:
- Generate an offline request file:
reforge-cli license activate <key> --email <email> --offline - Email the generated file to support@reforgesoftware.com
- Import the license file returned by support:
reforge-cli license import license.lic
To obtain the machine ID for an offline request without a key: reforge-cli license status --machine-id
Exit codes
All Reforge CLI commands use consistent exit codes for scripting and CI/CD pipeline gates:
- 0 — All files succeeded; or license is valid; or file is valid (validate)
- 1 — All files failed, pre-flight error (no files matched), or file has errors (validate); also used for no license found on deactivate
- 2 — Partial batch: some files succeeded, some failed; or warnings-only result from validate (without --strict)
- 10 — License error — no Professional or Enterprise license is active on this machine
Putting it together — a release-day pipeline
For recurring publication cycles, the two-command pattern is: validate first, then convert approved files.
The watch command fits a continuous intake model — run it as a background service or systemd unit targeting your CSDB staging folder. The point-in-time convert command fits scheduled release windows and CI/CD steps where the input set is known in advance.
Plan fit: CLI access (reforge-cli convert, reforge-cli watch, reforge-cli validate) requires a Professional or Enterprise plan. The desktop GUI batch processing tab is available from Starter. Review pricing for details.
Confirm automation fit before production rollout
Test your release-folder patterns and exception handling with real batch sets so you can size the right plan and workflow path.
Need profile or compliance guidance too?
Batch automation decisions are easier once you validate profile behavior and compliance checkpoints for your publication pipeline.