KIWI NG is an OS image and appliance builder.


Build an appliance

$ kiwi-ng system build --description=[path/to/directory] --target-dir=[path/to/directory]

Show build result of built appliance
$ kiwi-ng result list --target-dir=[path/to/directory]

Display help
$ kiwi-ng help

Display version
$ kiwi-ng -v


kiwi-ng [global options] service <command> [<args>]

kiwi-ng -h | --help
kiwi-ng [--profile=<name>...]
    image <command> [<args>...]
kiwi-ng [--debug]
    result <command> [<args>...]
kiwi-ng [--profile=<name>...]
    system <command> [<args>...]
kiwi-ng compat <legacy_args>...
kiwi-ng -v | --version
kiwi-ng help


KIWI NG is an imaging solution that is based on an image XML description. Such a description is represented by a directory which includes at least one config.xml or .kiwi file and may as well include other files like scripts or configuration data.

A collection of example image descriptions can be found on the github repository here: Most of the descriptions provide a so called appliance image. Appliance means that it's a small, text only based image including a predefined remote source setup to allow installation of missing software components at a later point in time.

KIWI NG operates in two steps. The system build command combines both steps into one to make it easier to start with KIWI NG. The first step is the preparation step and if that step was successful, a creation step follows which is able to create different image output types.

In the preparation step, you prepare a directory including the contents of your new filesystem based on one or more software package source(s) The creation step is based on the result of the preparation step and uses the contents of the new image root tree to create the output image.

KIWI NG supports the creation of the following image types:

  • ISO Live Systems

  • Virtual Disk for e.g cloud frameworks

  • OEM Expandable Disk for system deployment from ISO or the network

  • File system images for deployment in a pxe boot environment

Depending on the image type a variety of different disk formats and architectures are supported.



Use Escape Sequences to print different types of information in colored output. The underlaying terminal has to understand those escape characters. Error messages appear red, warning messages yellow and debugging information will be printed light grey.


Use specified runtime configuration file. If not specified the runtime configuration is looked up at ~/.config/kiwi/config.yml or /etc/kiwi.yml


Print debug information on the commandline.


Run scripts called by kiwi in a screen session.


Specify log file. the logfile contains detailed information about the process. The special call: --logfile stdout sends all information to standard out instead of writing to a file


Select profile to use. The specified profile must be part of the XML description. The option can be specified multiple times to allow using a combination of profiles.


Specify an alternative shared cache directory. The directory is shared via bind mount between the build host and image root system and contains information about package repositories and their cache and meta data. The default location is set to /var/cache/kiwi.


Specify an alternative base temporary directory. The provided path is used as base directory to store temporary files and directories. By default /var/tmp is used.


Specify the image architecture. By default the host architecture is used as the image architecture. If the specified architecture name does not match the host architecture and is therefore requesting a cross architecture image build, it's important to understand that for this process to work a preparatory step to support the image architecture and binary format on the building host is required and not a responsibility of KIWI NG.


Select image build type. The specified build type must be configured as part of the XML description.


Basename of kiwi file which contains the main image configuration elements. If not specified kiwi searches for a file named config.xml or a file matching *.kiwi


Show program version


$ git clone

$ sudo kiwi-ng system build \
    --description kiwi/build-tests/x86/leap/test-image-disk \
    --set-repo obs://openSUSE:Leap:15.3/standard \
    --target-dir /tmp/myimage


2022, Marcus Schäfer


Marcus Schäfer

Copied to clipboard