Environment Variables


As BundleWrap uses OpenSSH to connect to hosts, host key checking is involved. By default, strict host key checking is activated. This might not be suitable for your setup. You can set this variable to 1 to cause BundleWrap to set the OpenSSH option StrictHostKeyChecking=no.

You can also use bw -a ... to achieve the same effect.


Colors are enabled by default. Setting this variable to 0 tells BundleWrap to never use any ANSI color escape sequences.


Set this to an existing directory path to have BundleWrap write debug logs there (even when you're running bw without --debug).

Debug logs are verbose and BundleWrap does not rotate them for you. Putting them on a tmpfs or ramdisk will save your SSD and get rid of old logs every time you reboot your machine.


Hard locks are automatically ignored after some time. By default, it's "8h". You can use this variable to override that default.


When BundleWrap locks a node, it stores a short description about "you". By default, this is the string $USER@$HOSTNAME, e.g. john@mymachine. You can use BW_IDENTITY to specify a custom string. (No variables will be evaluated in user supplied strings.)


BundleWrap attempts to parallelize work. These two options specify the number of nodes and items, respectively, which will be handled concurrently. To be more precise, when setting BW_NODE_WORKERS=8 and BW_ITEM_WORKERS=2, BundleWrap will work on eight nodes in parallel, each handling two items in parallel.

You can also use the command line options -p and -P, e.g. bw apply -p ... -P ... ..., to achieve the same effect. Command line arguments override environment variables.

There is no single default for these values. For example, when running bw apply, four nodes are being handled by default. However, when running bw test, only one node will be tested by default. BW_NODE_WORKERS and BW_ITEM_WORKERS apply to all these operations.

Note that you should not set these variables to very high values. First, it can cause high memory consumption on your machine. Second, not all SSH servers can handle massive parallelism. Please refer to your OpenSSH documentation on how to tune your servers for these situations.


Set this to a path pointing to your BundleWrap repository. If unset, the current working directory is used. Can be overridden with bw --repository PATH. Keep in mind that bw will also look for a repository in all parent directories until it finds one.


Soft locks are automatically removed from nodes after some time. By default, it's "8h". You can use this variable to override that default.


Extra arguments to include in every call to ssh BundleWrap makes. Set this to "-F ~/.ssh/otherconf" to use a different SSH config with BundleWrap.


By default, BundleWrap uses Unicode box-drawing characters at various points in its output. Setting this env var to one of the following values changes that behavior:

asciiuse only simple ASCII characters to render tables (useful if your font doesn't properly align box-drawing characters)
grepmake output more grep- and cut-friendly


Setting this to 1 will make repo.vault return dummy values for every secret. This is useful for running bw test on a CI server that you don't want to trust with your .secrets.cfg.