NkxTool is a robust, 64-bit command-line utility for managing Native Instruments Kontakt archives. It acts as a specialized wrapper around the inNKX.wcx64 plugin, allowing you to list files, extract, and seamlessly pack libraries.
- Multi-Format Support: Read and write
.nkx(Audio/Samples),.nkr(Resources/Scripts), and.nicnt(Library Info) containers. - Smart Packing (Auto-Split): Automatically handles the strict 1.95 GB (
2,090,000,000bytes) size limit of the NKX format. If a source folder exceeds this limit, NkxTool automatically splits the output into_00.nkx,_01.nkx, etc. - Filelist Support: Pack archives dynamically using a text file containing relative paths (
@filelist.txt), perfect for scripted audio conversions or selective repacking. - COM STA Threading: Fully initializes Windows COM components natively, ensuring the plugin can properly search for decryption keys and generate
.userdbfiles. - Update function for internal database: synced with system NativeAccess.xml with exotic / old library unique support.
- Modern Architecture: Built with C# on .NET 10 (win-x64), completely standalone.
- .NET 10.0 SDK (For building from source)
inNKX.wcx6464-bit plugin file (Must be placed in the project root before building, or in the same directory as the compiled executable).
Open your terminal and use NkxTool.exe with one of the three main commands: list, unpack, or pack.
Outputs the relative paths of all files contained inside an archive. You can optionally save this output to a text file.
NkxTool list <source_file> [outputList.txt]
# Examples:
NkxTool list "C:\Library\Samples_1.nkx"
NkxTool list "C:\Library\Samples_1.nkx" "C:\temp\filelist.txt"Extracts the entire content of an archive into the specified destination folder, recreating the original directory structure.
NkxTool unpack <source_file> <destinationFolder>
# Example:
NkxTool unpack "C:\Library\Samples_1.nkx" "C:\ExtractedSamples\"Creates a new archive from a source folder or a text file containing a list of relative paths.
NkxTool pack <destination_file> <sourceFolder_OR_@filelist.txt> [rootPath]
# Example A: Pack an entire folder
NkxTool pack "C:\NewLibrary\Piano.nkx" "C:\ExtractedSamples\"
# Example B: Pack using a file list (requires '@')
# If the text file is located alongside the source samples, rootPath is optional.
NkxTool pack "C:\NewLibrary\Piano.nkx" "@C:\temp\filelist.txt" "C:\ExtractedSamples\"Update internal inNKX database file nklibs_info.userdb by syncing with system's NativeAccess.xml.
NkxTool update
# Example:
NkxTool updateAnalyse a NKI instrument and display required Kontakt version
NkxTool nki-version <instrument_file>
# Example:
NkxTool nki-version "C:\Library\Instruments\Piano.nki"To compile the project into a single, optimized executable:
- Place your 64-bit
inNKX.wcxfile in the root directory next toNkxTool.csproj. - Run the following .NET CLI command:
dotnet publish -c Release -r win-x64 --self-contained false /p:PublishSingleFile=trueThe compiled NkxTool.exe will be located in the bin\Release\net10.0\win-x64\publish\ directory.
NkxTool acts as a bridge. If an archive is protected, the underlying WCX plugin will attempt to locate the decryption key on your Windows system using standard Registry/COM calls. If the library is not properly registered on your system, the files may still extract, but they could be unreadable or empty, depending on the plugin's internal behavior.