Skip to content

Reference

CLI reference

Commands, options and exit codes for the nebula command-line tool.

The nebula command protects assemblies from a JSON config and provides supporting commands for licensing and diagnostics.

Protect (root command)

nebula --config <file> [options]
OptionDescription
--config, -cPath to the JSON configuration file (required).
--output, -oOverride the outputDirectory from the config.
--preserve-public-api [true|false]Override preservePublicApi.
--quiet, -qSuppress progress; still print warnings/errors.
--json <file>Write a machine-readable run summary (handy in CI).

Configuration keys

{
  "schemaVersion": 1,
  "inputs": ["bin/Release/net8.0/MyApp.dll"],
  "outputDirectory": "protected",
  "preservePublicApi": true,
  "encryptStrings": true,
  "controlFlowObfuscation": true,
  "encryptResources": true,
  "antiTamper": true,
  "antiDebug": true,
  "metadataHardening": true,
  "verifyOutput": true
}

Other keys include exclude / include filters, excludeNamespaces, controlFlowInclude / controlFlowExclude, encryptStringsInclude / excludeStrings, strong-name signing (strongNameKeyFile, delaySign) and Authenticode (authenticodeCertFile, authenticodeTimestampUrl).

Other commands

nebula inspect <assembly>      # list methods & string literals for selective protection
nebula register --key LIC-...  # activate an online license on this machine
nebula machine-id              # print this machine's activation id
nebula license                 # show the current edition / license
nebula deobfuscate --map <symbols.json> --input <trace.txt>   # translate a stack trace

Exit codes

CodeMeaning
0Success
2Invalid configuration
6License required / activation failed
64Usage error

Use the exit code in CI to fail a build if protection didn’t succeed.