User Configuration#

The user configuration file is stored in the Regolith app data folder. On Windows, it is located at %localappdata%\regolith\user_config.json. On other systems, refer to the Golang documentation for the os.UserCacheDir function to find the path it returns that corresponds to the %localappdata% on Windows.

The user_config.json file stores user preferences for Regolith.

User Configuration Properties#

You can examine the user configuration either by using the regolith config command or by opening the user_config.json file in a text editor. Using the regolith config command with the --full flag will display all properties, including default values (which aren’t defined in the file). Below are the properties you may find in the user configuration file.

use_project_app_data_storage: bool#

Default : false

If set to true, Regolith will store its project cache (filters, dependencies, etc.) in the project-cache folder, instead of the .regolith subfolder located within the project directory.

username: string#

Default : "Your name"

The user’s name, which will be used in the author field of the config.json file when creating a new project.

resolvers: list[string]#

Default : ["github.com/Bedrock-OSS/regolith-filter-resolver/resolver.json"]

A list of resolvers used to resolve filter names to URLs when running the regolith install command. The default resolver URL is always added at the end of the list.

Note: The “URLs” in the resolvers list are not actual URLs. They consist of two parts, separated by a /. The first part is a repository URL (e.g., a GitHub repository), and the second part is the path to the resolver file within the repository. For example, the default resolver is stored in the github.com/Bedrock-OSS/regolith-filter-resolver repository at the resolver.json file, but github.com/Bedrock-OSS/regolith-filter-resolver/resolver.json is not a valid URL.

resolver_cache_update_cooldown: string#

Default : "5m"

The cooldown duration between updates to the resolver repositories. This duration is specified in Go duration format. If you run regolith install multiple times within a short period, the resolver cache will only update after the cooldown period has passed.

filter_cache_update_cooldown: string#

Default : "5m"

The cooldown duration between updates to the filter repositories. This is also specified in Go duration format . If you run regolith install multiple times quickly, the filter cache will only update after the cooldown period has elapsed.

Regolith Config Command#

The regolith config command is used to manage the user configuration of Regolith. It allows you to access and modify the configuration stored in the user_config.json file.

The behavior of this command changes depending on the flags and the number of arguments provided. The following cheat sheet outlines the possible flag and argument combinations and their effects:

  • regolith config - Prints all properties defined in the user configuration file.

  • regolith config --full - Prints all properties, including default values for properties that are unspecified.

  • regolith config <key> - Prints the value of the specified property.

  • regolith config <key> <value> - Sets the value of the specified property.

  • regolith config <key> --delete - Deletes the specified property.

  • regolith config <key> <value> --append - Appends a value to a list property.

  • regolith config <key> <value> --index <index> - Replaces an item in a list property at the specified index.

  • regolith config <key> --index <index> --delete - Deletes an item in a list property at the specified index.

Commands that print text can include the --full flag to display the configuration along with default values (if they are not defined in the configuration file). Without this flag, unspecified properties will be shown as null or an empty list.

User Configuration File#

The user_config.json file is a regular JSON file with no nesting. While you can edit this file manually, it is not required since all modifications can be done using the regolith config command.

Here is an example of a user_config.json file:

{
	"use_project_app_data_storage": false,
	"username": "Bedrock-OSS",
	"resolvers": [
		"github.com/Bedrock-OSS/regolith-filter-resolver/resolver.json"
	]
}