[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://www.codifycli.com/codify-schema.json","title":"JSON schema for Codify configuration files","type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"description":"All project configs are of the type project","type":"string","const":"project"},"version":{"description":"Semver version. Codify will throw an error if this is not satisfied","type":"string","pattern":"^([0-9]+)\\.([0-9]+)\\.([0-9]+)(?:-([0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z-]+)?$"},"plugins":{"type":"object","patternProperties":{".*":{"type":"string"}}},"description":{"description":"An optional description of the codify project","type":"string"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"xcode-tools","type":"string"}},"required":["type"]},{"description":"Manages user paths. It will permanently save paths by adding them to the shell startup script.","type":"object","properties":{"path":{"type":"string","description":"The path to append. This parameter cannot be used at the same time as paths"},"paths":{"type":"array","description":"Multiple paths to append. This parameter cannot be used at the same time as path","items":{"type":"string"}},"prepend":{"type":"boolean","description":"Whether or not to prepend to the path."},"declarationsOnly":{"type":"boolean","default":false,"description":"Only plan and manage explicitly declared paths found in shell startup scripts. This value is forced to true for stateful mode"},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"path","type":"string"}},"additionalProperties":false,"required":["type"]},{"description":"Manages user aliases. It permanently saves the alias by adding it to the shell startup script.","type":"object","properties":{"alias":{"type":"string","pattern":"^[^ \t\n/\\$`=|&;()<>'\"]*$","description":"The name of the alias"},"value":{"type":"string","description":"The alias value"},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"alias","type":"string"}},"required":["alias","type"],"additionalProperties":false},{"description":"Install homebrew and manages formulae, casks and taps.","type":"object","properties":{"formulae":{"type":"array","items":{"type":"string"}},"casks":{"type":"array","items":{"type":"string"}},"taps":{"type":"array","items":{"type":"string"}},"directory":{"type":"string"},"skipAlreadyInstalledCasks":{"type":"boolean","description":"Skips installing an casks which has already been installed externally. This prevents homebrew from conflicting with the existing install. Defaults to true."},"onlyPlanUserInstalled":{"type":"boolean","description":"Only consider packages that the user has explicitly specified in the plan and ignore any dependent packages"},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"homebrew","type":"string"}},"additionalProperties":false,"required":["type"]},{"type":"object","description":"Install and manage Python versions using pyenv.","properties":{"pythonVersions":{"type":"array","description":"An array of Python versions to install using pyenv. Partial matching is supported (3.9 instead of 3.9.11)","items":{"type":"string"}},"global":{"type":"string","description":"The global Python version set by pyenv."},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"pyenv","type":"string"}},"additionalProperties":false,"required":["type"]},{"description":"Installs git-lfs. This resource will automatically activate git-lfs as well.","type":"object","properties":{"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"git-lfs","type":"string"}},"additionalProperties":false,"required":["type"]},{"type":"object","description":"Installs aws-cli.","properties":{"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"aws-cli","type":"string"}},"additionalProperties":false,"required":["type"]},{"type":"object","description":"Configures AWS profiles.","properties":{"profile":{"type":"string","description":"The aws profile that is being configured","default":"default"},"awsAccessKeyId":{"type":"string","description":"The access key id from AWS"},"awsSecretAccessKey":{"type":"string","description":"The access key secret from AWS"},"csvCredentials":{"type":"string","description":"An AWS credentials file with access credentials"},"region":{"type":"string","description":"The region from AWS"},"output":{"type":"string","description":"The output format secret from AWS"},"metadataServiceTimeout":{"type":"string","description":"The metadata service timeout"},"metadataServiceNumAttempts":{"type":"string","description":"The metadata service num attempts"},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"aws-profile","type":"string"}},"additionalProperties":false,"required":["type"]},{"description":"Installs Terraform.","type":"object","properties":{"directory":{"type":"string","description":"The directory to install Terraform. Defaults to /usr/local/bin."},"version":{"type":"string","description":"The specific version of Terraform to install. Defaults to latest."},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"terraform","type":"string"}},"additionalProperties":false,"required":["type"]},{"description":"Install and manage Node versions using nvm.","type":"object","properties":{"nodeVersions":{"type":"array","description":"An array of node versions to install using nvm. Partial matching is supported (20 instead of 20.15.1)","items":{"type":"string"}},"global":{"description":"The global Node version set by nvm.","type":"string"},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"nvm","type":"string"}},"additionalProperties":false,"required":["type"]},{"type":"object","description":"Install jenv and manage Java versions using jenv. Jenv cannot install Java directly, it needs to be installed separately and added to Jenv.","properties":{"add":{"type":"array","description":"The java_home path to add to jenv. Jenv does not directly install Java. This resources optionally allows users to specify a LTS version instead of a path (8, 11, 17, 21, 22) and install it via Homebrew","items":{"type":"string"}},"global":{"description":"Set the global Java version using Jenv.","type":"string"},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"jenv","type":"string"}},"additionalProperties":false,"required":["type"]},{"type":"object","description":"Installs pgcli.","properties":{"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"pgcli","type":"string"}},"additionalProperties":false,"required":["type"]},{"description":"Installs Vscode.","type":"object","properties":{"directory":{"type":"string","description":"The directory to install VSCode into. Defaults to /Applications.","default":"/Applications"},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"vscode","type":"string"}},"additionalProperties":false,"required":["type"]},{"description":"Git clone a repository. Choose either to specify the exact directory to clone into or the parent directory (it deduces the folder name using the repository name).","type":"object","properties":{"repository":{"type":"string","description":"Remote repository to clone repo from."},"parentDirectory":{"type":"string","description":"Parent directory to clone into. The folder name will use default git semantics which extracts the last part of the clone url. Only one of parentDirectory or directory can be specified"},"directory":{"type":"string","description":"Directory to clone contents into. This value is directly passed into git clone. This differs from parent directory in that the last part of the path will be the folder name of the repo"},"autoVerifySSH":{"type":"boolean","description":"Automatically verifies the ssh connection for ssh git clones. Defaults to true."},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"git-repository","type":"string"}},"additionalProperties":false,"required":["type"]},{"type":"object","description":"Install Android Studios.","properties":{"version":{"type":"string","description":"Android studios version. Visit: https://developer.android.com/studio/releases for version info"},"directory":{"type":"string","description":"The directory to install Android Studios into. Defaults to /Applications","default":"/Applications"},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"android-studio","type":"string"}},"additionalProperties":false,"required":["type"]},{"type":"object","description":"Installs asdf and manages asdf plugins. Use 'asdf-install' or 'asdf-plugin' to install the actual tool. Use 'asdf-global' or 'asdf-local' to activate the tool in the shell.","properties":{"plugins":{"type":"array","description":"Asdf plugins to install. See: https://github.com/asdf-community for a full list","items":{"type":"string"}},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"asdf","type":"string"}},"additionalProperties":false,"required":["type"]},{"description":"Installs a plugin and manages specific tool versions.","type":"object","properties":{"plugin":{"type":"string","description":"Asdf plugin name"},"versions":{"type":"array","description":"A list of versions to install","items":{"type":"string"}},"gitUrl":{"type":"string","description":"The gitUrl of the plugin"},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"asdf-plugin","type":"string"}},"required":["plugin","type"],"additionalProperties":false},{"type":"object","description":"Manage the asdf global version for a tool. An asdf-global or asdf-local resource must be specified before a tool installed with asdf is active in the shell.","properties":{"plugin":{"type":"string","description":"Asdf plugin name"},"version":{"type":"string","description":"A version to install"},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"asdf-global","type":"string"}},"required":["plugin","version","type"],"additionalProperties":false},{"description":"Manage the asdf local version for a tool. An asdf-global or asdf-local resource must be specified before a tool installed with asdf is active in the shell.","type":"object","properties":{"plugin":{"type":"string","description":"Asdf plugin name"},"version":{"type":"string","description":"A version to install"},"directory":{"type":"string","description":"A local install of the version. Provide the location to install the version. For the current directory use '.'"},"directories":{"type":"array","description":"An array of install locations for the specified version. For the current directory use '.","items":{"type":"string"}},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"asdf-local","type":"string"}},"required":["plugin","version","type"],"additionalProperties":false},{"type":"object","description":"Install a .tools-version file or directly install an asdf plugin + tool version.","properties":{"plugin":{"type":"string","description":"Asdf plugin name"},"versions":{"type":"array","description":"A list of versions to install","items":{"type":"string"}},"directory":{"type":"string","description":"The directory to run the install command"},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"asdf-install","type":"string"}},"additionalProperties":false,"required":["type"]},{"description":"Generate and manage a ssh private/public key.","type":"object","properties":{"keyType":{"type":"string","description":"The type of key to create (the encryption algorithm used). This corresponds to the -t flag of ssh-keygen. This value defaults to ed25519.","enum":["ecdsa","ecdsa-sk","ed25519","ed25519-sk","rsa"]},"comment":{"type":"string","description":"Comment to add to the ssh key. Changing this value will not re-create the ssh key"},"fileName":{"type":"string","description":"Specifies the filename of the key file. This corresponds to the -f flag of ssh-keygen"},"bits":{"type":"number","description":"Specifies the number of bits in the key to create. This corresponds to the -b flag of ssh-keygen."},"passphrase":{"type":"string","description":"The passphrase to use. This parameter is required. To set an empty password set the value to the empty string: \"\""},"folder":{"type":"string","description":"The folder to generate the ssh key in. Defaults to `$HOME/.ssh`"},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"ssh-key","type":"string"}},"required":["passphrase","type"],"additionalProperties":false},{"description":"Configures the ssh config file.","type":"object","properties":{"hosts":{"description":"The host blocks inside of the ~/.ssh/config file. See http://man.openbsd.org/OpenBSD-current/man5/ssh_config.5 ","type":"array","items":{"type":"object","description":"The individual host blocks inside of the ~/.ssh/config file","properties":{"Host":{"type":"string","description":"The host is usually the hostname argument given on the command line. Can accept ! and *"},"Match":{"type":"string","description":"Restricts the following declarations (up to the next Host or Match keyword) to be used only when the conditions following the Match keyword are satisfied"},"AddKeysToAgent":{"type":"boolean","description":"Specifies whether keys should be automatically added to a running ssh-agent(1)"},"User":{"type":"string","description":"Specifies the user to log in as. This can be useful when a different user name is used on different machines"},"UseKeychain":{"type":"boolean","description":"A UseKeychain option was introduced in macOS Sierra allowing users to specify whether they would like for the passphrase to be stored in the keychain"},"IgnoreUnknown":{"type":"string","description":"Specifies a pattern-list of unknown options to be ignored if they are encountered in configuration parsing"},"Port":{"type":"number","description":"Specifies the port number to connect on the remote host. The default is 22."},"IdentityFile":{"type":"string","description":"Specifies a file from which the user's ECDSA, authenticator-hosted ECDSA, Ed25519, authenticator-hosted Ed25519 or RSA authentication identity is read"},"LogLevel":{"type":"string","description":"Gives the verbosity level that is used when logging messages from ssh(1)."},"Compression":{"type":"boolean","description":"Specifies whether to use compression. The argument must be yes or no (the default)."},"PreferredAuthentications":{"type":"string","description":"Specifies the order in which the client should try authentication methods."},"PasswordAuthentication":{"type":"boolean","description":"Specifies whether to use password authentication."}}}},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"ssh-config","type":"string"}},"required":["hosts","type"],"additionalProperties":false},{"description":"Adds ssh private keys to the ssh agent.","type":"object","properties":{"path":{"type":"string","description":"The path to the ssh key to add"},"appleUseKeychain":{"type":"boolean","description":"Corresponds to the --apple-use-keychain parameter. Controls whether the key should be loaded into the apple keychain. Only keys with a passphrase can be loaded"},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"ssh-add","type":"string"}},"required":["path","type"],"additionalProperties":false},{"description":"Run custom scripts using the action resource. A condition can be specified to conditionally trigger a script.","type":"object","properties":{"condition":{"type":"string","description":"A condition (in bash) that decides if the action is triggered. Return 0 to trigger and any non-zero exit code to skip."},"action":{"type":"string","description":"A bash command to run."},"cwd":{"type":"string","description":"The directory that the action should be ran in."},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"action","type":"string"}},"required":["action","type"],"additionalProperties":false},{"description":"Manages a file.","type":"object","properties":{"path":{"type":"string","description":"The location of the file."},"contents":{"type":"string","description":"The contents of the file."},"onlyCreate":{"type":"boolean","description":"Forces the resource to only create the file if it doesn't exist but don't detect any content changes."},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"file","type":"string"}},"required":["path","contents","type"],"additionalProperties":false},{"type":"object","description":"Install and manage local packages with virtualenv","properties":{"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"virtualenv","type":"string"}},"additionalProperties":false,"required":["type"]},{"type":"object","description":"Install and manage local packages for a project with virtualenv","properties":{"dest":{"type":"string","description":"The directory to create virtualenv at"},"python":{"type":"string","description":"A path to the python interpreter to use to create the virtualenv. This defaults to the global python3 version."},"noVcsIgnore":{"type":"boolean","description":"Don't create VCS ignore directive in the destination directory (default: false)"},"systemSitePackages":{"type":"boolean","description":"Give the virtual environment access to the system site-packages dir (default: false)"},"symlinks":{"type":"boolean","description":" Try to use symlinks rather than copies (default: true)"},"cwd":{"type":"string","description":"The cwd to create virtualenv from. This allows a relative path to be used for dest."},"automaticallyInstallRequirementsTxt":{"type":"boolean","description":"If an requirements.txt is available in the cwd, automatically install it when a virtual env is first created."},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"virtualenv-project","type":"string"}},"additionalProperties":false,"required":["dest","type"]},{"description":"Install and manage Node dependencies and versions using pnpm.","type":"object","properties":{"version":{"type":"string","description":"A specific version of pnpm to install. (defaults to the latest)"},"globalEnvNodeVersion":{"type":"string","description":"Set the global node version. Corresponds to pnpm env --global use"},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"pnpm","type":"string"}},"additionalProperties":false,"required":["type"]},{"type":"object","properties":{"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"wait-github-ssh-key","type":"string"}},"required":["type"]},{"type":"object","description":"Install and manage local packages for a project with venv","properties":{"envDir":{"type":"string","description":"A directory to create the environment in."},"systemSitePackages":{"type":"boolean","description":"Give the virtual environment access to the system site-packages dir."},"symlinks":{"type":"boolean","description":"Try to use symlinks rather than copies, when symlinks are not the default for the platform."},"copies":{"type":"boolean","description":"Delete the contents of the environment directory if it already exists, before environment creation."},"clear":{"type":"boolean","description":"Try to use symlinks rather than copies (default: true)."},"upgrade":{"type":"boolean","description":"Upgrade the environment directory to use this version of Python, assuming Python has been upgraded in-place."},"withoutPip":{"type":"boolean","description":"Skips installing or upgrading pip in the virtual environment (pip is bootstrapped by default)."},"prompt":{"type":"string","description":"Provides an alternative prompt prefix for this environment."},"upgradeDeps":{"type":"boolean","description":"Upgrade core dependencies: pip setuptools to the latest version in PyPI."},"cwd":{"type":"string","description":"The cwd to create virtualenv from. This allows a relative path to be used for dest."},"automaticallyInstallRequirementsTxt":{"type":"boolean","description":"If an requirements.txt is available in the cwd, automatically install it when a virtual env is first created."},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"venv-project","type":"string"}},"additionalProperties":false,"required":["envDir","type"]},{"type":"object","description":"Install and manage packages using pip","properties":{"virtualEnv":{"type":"string","description":"A virtual env to activate before issuing pip commands."},"install":{"type":"array","description":"Packages to install.","items":{"oneOf":[{"type":"string"},{"type":"object","properties":{"name":{"type":"string"},"version":{"type":"string"}},"required":["name"]}]}},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"pip","type":"string"}},"additionalProperties":false,"required":["install","type"]},{"type":"object","description":"Install and manage though pip-tools by installing + uninstalling packages using pip-sync","properties":{"virtualEnv":{"type":"string","description":"A virtual env to activate before issuing commands."},"requirementFiles":{"type":"array","items":{"type":"string"},"description":"A list of requirement files to supply pip-sync."},"cwd":{"type":"string","description":"The working directory to run commands from. If cwd is supplied, the other parameters can be specified as relative to cwd."},"name":{"description":"Optional name. Useful for specifying multiple resources of the same type","type":"string","pattern":"^[\\w-]+$"},"dependsOn":{"type":"array","items":{"type":"string"},"uniqueItems":true},"type":{"const":"pip-sync","type":"string"}},"additionalProperties":false,"required":["requirementFiles","type"]}]}}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for Codify configuration files". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

JSON schema for Codify configuration files

All project configs are of the type project

Semver version. Codify will throw an error if this is not satisfied

An optional description of the codify project

Optional name. Useful for specifying multiple resources of the same type

Manages user paths. It will permanently save paths by adding them to the shell startup script.

The path to append. This parameter cannot be used at the same time as paths

Multiple paths to append. This parameter cannot be used at the same time as path

Whether or not to prepend to the path.

Only plan and manage explicitly declared paths found in shell startup scripts. This value is forced to true for stateful mode

Manages user aliases. It permanently saves the alias by adding it to the shell startup script.

The name of the alias

The alias value

Install homebrew and manages formulae, casks and taps.

Skips installing an casks which has already been installed externally. This prevents homebrew from conflicting with the existing install. Defaults to true.

Only consider packages that the user has explicitly specified in the plan and ignore any dependent packages

Install and manage Python versions using pyenv.

An array of Python versions to install using pyenv. Partial matching is supported (3.9 instead of 3.9.11)

The global Python version set by pyenv.

Installs git-lfs. This resource will automatically activate git-lfs as well.

Installs aws-cli.

Configures AWS profiles.

The aws profile that is being configured

The access key id from AWS

The access key secret from AWS

An AWS credentials file with access credentials

The region from AWS

The output format secret from AWS

The metadata service timeout

The metadata service num attempts

Installs Terraform.

The directory to install Terraform. Defaults to /usr/local/bin.

The specific version of Terraform to install. Defaults to latest.

Install and manage Node versions using nvm.

An array of node versions to install using nvm. Partial matching is supported (20 instead of 20.15.1)

The global Node version set by nvm.

Install jenv and manage Java versions using jenv. Jenv cannot install Java directly, it needs to be installed separately and added to Jenv.

The java_home path to add to jenv. Jenv does not directly install Java. This resources optionally allows users to specify a LTS version instead of a path (8, 11, 17, 21, 22) and install it via Homebrew

Set the global Java version using Jenv.

Installs pgcli.

Installs Vscode.

The directory to install VSCode into. Defaults to /Applications.

Git clone a repository. Choose either to specify the exact directory to clone into or the parent directory (it deduces the folder name using the repository name).

Remote repository to clone repo from.

Parent directory to clone into. The folder name will use default git semantics which extracts the last part of the clone url. Only one of parentDirectory or directory can be specified

Directory to clone contents into. This value is directly passed into git clone. This differs from parent directory in that the last part of the path will be the folder name of the repo

Automatically verifies the ssh connection for ssh git clones. Defaults to true.

Install Android Studios.

Android studios version. Visit: https://developer.android.com/studio/releases for version info

The directory to install Android Studios into. Defaults to /Applications

Installs asdf and manages asdf plugins. Use 'asdf-install' or 'asdf-plugin' to install the actual tool. Use 'asdf-global' or 'asdf-local' to activate the tool in the shell.

Asdf plugins to install. See: https://github.com/asdf-community for a full list

Installs a plugin and manages specific tool versions.

Asdf plugin name

A list of versions to install

The gitUrl of the plugin

Manage the asdf global version for a tool. An asdf-global or asdf-local resource must be specified before a tool installed with asdf is active in the shell.

Asdf plugin name

A version to install

Manage the asdf local version for a tool. An asdf-global or asdf-local resource must be specified before a tool installed with asdf is active in the shell.

Asdf plugin name

A version to install

A local install of the version. Provide the location to install the version. For the current directory use '.'

An array of install locations for the specified version. For the current directory use '.

Install a .tools-version file or directly install an asdf plugin + tool version.

Asdf plugin name

A list of versions to install

The directory to run the install command

Generate and manage a ssh private/public key.

The type of key to create (the encryption algorithm used). This corresponds to the -t flag of ssh-keygen. This value defaults to ed25519.

Comment to add to the ssh key. Changing this value will not re-create the ssh key

Specifies the filename of the key file. This corresponds to the -f flag of ssh-keygen

Specifies the number of bits in the key to create. This corresponds to the -b flag of ssh-keygen.

The passphrase to use. This parameter is required. To set an empty password set the value to the empty string: ""

The folder to generate the ssh key in. Defaults to `$HOME/.ssh`

Configures the ssh config file.

The host blocks inside of the ~/.ssh/config file. See http://man.openbsd.org/OpenBSD-current/man5/ssh_config.5

The individual host blocks inside of the ~/.ssh/config file

The host is usually the hostname argument given on the command line. Can accept ! and *

Restricts the following declarations (up to the next Host or Match keyword) to be used only when the conditions following the Match keyword are satisfied

Specifies whether keys should be automatically added to a running ssh-agent(1)

Specifies the user to log in as. This can be useful when a different user name is used on different machines

A UseKeychain option was introduced in macOS Sierra allowing users to specify whether they would like for the passphrase to be stored in the keychain

Specifies a pattern-list of unknown options to be ignored if they are encountered in configuration parsing

Specifies the port number to connect on the remote host. The default is 22.

Specifies a file from which the user's ECDSA, authenticator-hosted ECDSA, Ed25519, authenticator-hosted Ed25519 or RSA authentication identity is read

Gives the verbosity level that is used when logging messages from ssh(1).

Specifies whether to use compression. The argument must be yes or no (the default).

Specifies the order in which the client should try authentication methods.

Specifies whether to use password authentication.

Adds ssh private keys to the ssh agent.

The path to the ssh key to add

Corresponds to the --apple-use-keychain parameter. Controls whether the key should be loaded into the apple keychain. Only keys with a passphrase can be loaded

Run custom scripts using the action resource. A condition can be specified to conditionally trigger a script.

A condition (in bash) that decides if the action is triggered. Return 0 to trigger and any non-zero exit code to skip.

A bash command to run.

The directory that the action should be ran in.

Manages a file.

The location of the file.

The contents of the file.

Forces the resource to only create the file if it doesn't exist but don't detect any content changes.

Install and manage local packages with virtualenv

Install and manage local packages for a project with virtualenv

The directory to create virtualenv at

A path to the python interpreter to use to create the virtualenv. This defaults to the global python3 version.

Don't create VCS ignore directive in the destination directory (default: false)

Give the virtual environment access to the system site-packages dir (default: false)

Try to use symlinks rather than copies (default: true)

The cwd to create virtualenv from. This allows a relative path to be used for dest.

If an requirements.txt is available in the cwd, automatically install it when a virtual env is first created.

Install and manage Node dependencies and versions using pnpm.

A specific version of pnpm to install. (defaults to the latest)

Set the global node version. Corresponds to pnpm env --global use

Install and manage local packages for a project with venv

A directory to create the environment in.

Give the virtual environment access to the system site-packages dir.

Try to use symlinks rather than copies, when symlinks are not the default for the platform.

Delete the contents of the environment directory if it already exists, before environment creation.

Try to use symlinks rather than copies (default: true).

Upgrade the environment directory to use this version of Python, assuming Python has been upgraded in-place.

Skips installing or upgrading pip in the virtual environment (pip is bootstrapped by default).

Provides an alternative prompt prefix for this environment.

Upgrade core dependencies: pip setuptools to the latest version in PyPI.

Install and manage packages using pip

A virtual env to activate before issuing pip commands.

Packages to install.

Install and manage though pip-tools by installing + uninstalling packages using pip-sync

A virtual env to activate before issuing commands.

A list of requirement files to supply pip-sync.

The working directory to run commands from. If cwd is supplied, the other parameters can be specified as relative to cwd.

Provide a JSON object that satisfies the schema "JSON schema for Codify configuration files". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

JSON schema for Codify configuration files


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"addPanel":{"jsDoc":{"description":"Add Panel config.\nCan contain list of libraries installed in the project which provide boards for Codux.","tags":[{"tagName":"example","text":"{ addPanel: { assets: [\"addpanel-bootstrap\"] } }"},{"tagName":"group","text":"General"}]},"description":"Add Panel config.\nCan contain list of libraries installed in the project which provide boards for Codux.","type":"object","properties":{"assets":{"type":"array","items":{"type":"string"}}}},"svgLoader":{"jsDoc":{"description":"Configures how SVG assets load.\nRefer to https://help.codux.com/kb/en/article/kb17934 for more information.","tags":[{"tagName":"default","text":"\"asset\""},{"tagName":"group","text":"AssetManagement"}]},"description":"Configures how SVG assets load.\nRefer to https://help.codux.com/kb/en/article/kb17934 for more information.","oneOf":[{"type":"string","enum":["asset"]},{"type":"string","enum":["svgr"]},{"type":"string","enum":["both"]}],"default":"asset"},"boardsPath":{"jsDoc":{"description":"Default directory for new boards, relative to the project root.\nRefer to https://help.codux.com/kb/en/article/kb19337 for more information.","tags":[{"tagName":"default","text":"\"src/_codux/boards\""}]},"description":"Default directory for new boards, relative to the project root.\nRefer to https://help.codux.com/kb/en/article/kb19337 for more information.","type":"string","default":"src/_codux/boards"},"newBoard":{"jsDoc":{"description":"Configures default path for board template folders and files.","tags":[{"tagName":"default","text":"undefined"},{"tagName":"group","text":"General"}]},"description":"Configures default path for board template folders and files.","type":"object","properties":{"templatesPath":{"$ref":"#/$defs/TemplatesConfig"},"templatesConfig":{"jsDoc":{"description":"Defines a configuration object for templates.\nThis configuration allows specifying default directories for entities created using these templates.\nEach template can have a custom configuration.","tags":[{"tagName":"visualizer","text":"json-edit-code"}]},"description":"Defines a configuration object for templates.\nThis configuration allows specifying default directories for entities created using these templates.\nEach template can have a custom configuration.","format":"json-edit-code","type":"object","additionalItems":{}}}},"maxThumbnailSnapshotDelayConfig":{"jsDoc":{"description":"Maximum time (in milliseconds) to postpone capturing a thumbnail for the board.\nRefer to https://help.codux.com/kb/en/article/kb20920 for more information.","tags":[{"tagName":"default","text":"5000"}]},"description":"Maximum time (in milliseconds) to postpone capturing a thumbnail for the board.\nRefer to https://help.codux.com/kb/en/article/kb20920 for more information.","type":"number","default":5000},"scripts":{"jsDoc":{"description":"Configures scripts for project users to run from Codux (triggerable and on demand).\nRefer to https://help.codux.com/kb/en/article/kb30920 for more information.","tags":[{"tagName":"group","text":"Scripts"},{"tagName":"visualizer","text":"json-edit-code"}]},"description":"Configures scripts for project users to run from Codux (triggerable and on demand).\nRefer to https://help.codux.com/kb/en/article/kb30920 for more information.","format":"json-edit-code","type":"object","additionalItems":{"$ref":"#/$defs/ConfiguredScript"}},"boardGlobalSetup":{"jsDoc":{"description":"Path to a file that will be evaluated before each board is rendered,\nUseful for importing global stylesheets and initializing global variables.\nCan be absolute or relative to the project root (in which case it needs to start with './')\nRefer to https://help.codux.com/kb/en/article/kb36623 for more information.","tags":[{"tagName":"group","text":"Rendering"}]},"description":"Path to a file that will be evaluated before each board is rendered,\nUseful for importing global stylesheets and initializing global variables.\nCan be absolute or relative to the project root (in which case it needs to start with './')\nRefer to https://help.codux.com/kb/en/article/kb36623 for more information.","oneOf":[{"type":"null"},{"type":"string"},{"$ref":"#/$defs/GlobalPathsInterface"}]},"previewConfiguration":{"jsDoc":{"description":"Specifies environment variables to use globally across the project.\nRefer to https://help.codux.com/kb/en/article/kb37722 for more information."},"description":"Specifies environment variables to use globally across the project.\nRefer to https://help.codux.com/kb/en/article/kb37722 for more information.","type":"object","properties":{"environmentVariables":{"jsDoc":{"description":"variables that are being accessed from process.env","tags":[{"tagName":"visualizer","text":"json-edit-code"}]},"description":"variables that are being accessed from process.env","format":"json-edit-code","type":"object","additionalItems":{"type":"string"}},"envFile":{"jsDoc":{"description":"variables that are being accessed from process.env from an env file"},"description":"variables that are being accessed from process.env from an env file","type":"string"}}},"staticServerRoot":{"jsDoc":{"description":"The relative path to the folder from which static files are served.\nRefer to https://help.codux.com/kb/en/article/kb23123 for more information.","tags":[{"tagName":"default","text":"''"},{"tagName":"group","text":"Server"},{"tagName":"visualizer","text":"json-edit-code"}]},"description":"The relative path to the folder from which static files are served.\nRefer to https://help.codux.com/kb/en/article/kb23123 for more information.","format":"json-edit-code","type":"string","default":"public"},"cssCompilation":{"jsDoc":{"description":"Enables CSS modules in your project.\nRefer to https://help.codux.com/kb/en/article/kb25813 for more information.","tags":[{"tagName":"group","text":"Styling"}]},"description":"Enables CSS modules in your project.\nRefer to https://help.codux.com/kb/en/article/kb25813 for more information.","type":"object","properties":{"activateCssModules":{"jsDoc":{"description":"Enables or disables the use of CSS modules.","tags":[{"tagName":"default","text":"true"}]},"description":"Enables or disables the use of CSS modules.","type":"boolean"},"cssModulesExt":{"jsDoc":{"description":"The extension types for files to load as modules.","tags":[{"tagName":"default","text":"[\".modules.css\"]"}]},"description":"The extension types for files to load as modules.","type":"array","items":{"type":"string"}}},"required":["activateCssModules","cssModulesExt"]},"safeRender":{"jsDoc":{"description":"Configures maximum rendered elements.\nRefer to https://help.codux.com/kb/en/article/kb18414 for more information.","tags":[{"tagName":"group","text":"Rendering"}]},"description":"Configures maximum rendered elements.\nRefer to https://help.codux.com/kb/en/article/kb18414 for more information.","type":"object","properties":{"maxInstancesPerComponent":{"type":"number"}}},"conditionalRenderers":{"jsDoc":{"description":"If the project uses <Routes />, or any other component to conditionally render its\nchildren based on the URL or some other logic, this string[] should include the names\nof these components (\"Routes\") for compatibility with Codux.","tags":[{"tagName":"group","text":"Rendering"}]},"description":"If the project uses <Routes />, or any other component to conditionally render its\nchildren based on the URL or some other logic, this string[] should include the names\nof these components (\"Routes\") for compatibility with Codux.","type":"array","items":{"type":"string"}},"defaultImportedStylesFilePath":{"jsDoc":{"description":"Configures the default file path to add new fonts to.","tags":[{"tagName":"group","text":"Styling"}]},"description":"Configures the default file path to add new fonts to.","type":"string","default":""},"httpServerPort":{"jsDoc":{"description":"Port of HTTP server that is used to serve previews and user project itself.","tags":[{"tagName":"default","text":"0 (auto assigned by OS)"},{"tagName":"group","text":"Server"}]},"description":"Port of HTTP server that is used to serve previews and user project itself.","type":"number","default":0},"defaultJSONSchemas":{"jsDoc":{"description":"Configuration for adding additional json schemas to your project.\nThis can be used to centralise json schemas addition instead of using $schema and get autocompletion for json files when using Codux.","tags":[{"tagName":"example","text":"  defaultJSONSchemas: [\n    {\n      fileNameRegex: 'schema-from-config.json',\n      schemaPath: '/src/specified-schema.schema.json#def1',\n    },\n    {\n      fileNameRegex: 'schema-from-ts.json',\n      schemaPath: '/src/specified-schema.ts#MyJSON',\n    },\n  ],"}]},"description":"Configuration for adding additional json schemas to your project.\nThis can be used to centralise json schemas addition instead of using $schema and get autocompletion for json files when using Codux.","type":"array","items":{"$ref":"#/$defs/IDefaultJSONSchema"}},"defaultImagesDir":{"jsDoc":{"description":"Configures the default directory where the Codux Media Manager stores new assets.\nRefer to https://help.codux.com/kb/en/article/kb96140 for more information.","tags":[{"tagName":"group","text":"General"}]},"description":"Configures the default directory where the Codux Media Manager stores new assets.\nRefer to https://help.codux.com/kb/en/article/kb96140 for more information.","type":"string","default":"./src/assets"},"newComponent":{"jsDoc":{"description":"Configures default paths for new component and template files.\nRefer to https://help.codux.com/kb/en/article/kb16522 for more information."},"description":"Configures default paths for new component and template files.\nRefer to https://help.codux.com/kb/en/article/kb16522 for more information.","type":"object","properties":{"templatesPath":{"$ref":"#/$defs/TemplatesConfig"},"templatesConfig":{"jsDoc":{"description":"Defines a configuration object for templates.\nThis configuration allows specifying default directories for entities created using these templates.\nEach template can have a custom configuration.","tags":[{"tagName":"visualizer","text":"json-edit-code"}]},"description":"Defines a configuration object for templates.\nThis configuration allows specifying default directories for entities created using these templates.\nEach template can have a custom configuration.","format":"json-edit-code","type":"object","additionalItems":{"type":"object","properties":{"path":{"type":"string"},"boardTemplate":{"$ref":"#/$defs/NewComponentTemplateConfigAddition"}}}},"componentsPath":{"jsDoc":{"description":"Path where new components and related files will save to."},"description":"Path where new components and related files will save to.","type":"string"}}},"ignoredSubPaths":{"jsDoc":{"description":"Specifies project folders to exclude from component search.\nRefer to https://help.codux.com/kb/en/article/kb14730 for more information.","tags":[{"tagName":"group","text":"General"}]},"description":"Specifies project folders to exclude from component search.\nRefer to https://help.codux.com/kb/en/article/kb14730 for more information.","type":"array","items":{"type":"string"}},"fileNamingConvention":{"jsDoc":{"description":"Configures file-naming convention for new component creation.\nRefer to https://help.codux.com/kb/en/article/kb29627 for more information.\nOptions: \"pascal-case\" | \"camel-case\" | \"kebab-case\"","tags":[{"tagName":"default","text":"\"kebab-case\""},{"tagName":"group","text":"FileManagement"}]},"description":"Configures file-naming convention for new component creation.\nRefer to https://help.codux.com/kb/en/article/kb29627 for more information.\nOptions: \"pascal-case\" | \"camel-case\" | \"kebab-case\"","oneOf":[{"type":"string","enum":["kebab-case"]},{"type":"string","enum":["pascal-case"]},{"type":"string","enum":["camel-case"]}]},"resolve":{"jsDoc":{"description":"Includes package assets from additional sources, and creates aliases and fallbacks.\nRefer to https://help.codux.com/kb/en/article/kb18719 for more information.","tags":[{"tagName":"default","text":"{ packageRoots: [\"node_modules\"], alias: {}, workspaceAlias: {}, fallback: {} }"},{"tagName":"group","text":"AssetManagement"}]},"description":"Includes package assets from additional sources, and creates aliases and fallbacks.\nRefer to https://help.codux.com/kb/en/article/kb18719 for more information.","type":"object","properties":{"alias":{"jsDoc":{"description":"Aliases for package requests.\nRecord key is the request to be mapped, value is the new target.\nAlias is attempted before original request.","tags":[{"tagName":"visualizer","text":"json-edit-code"}]},"description":"Aliases for package requests.\nRecord key is the request to be mapped, value is the new target.\nAlias is attempted before original request.","format":"json-edit-code","type":"object","additionalItems":{"oneOf":[{"type":"string"},{"type":"boolean","enum":[false]}]}},"fallback":{"jsDoc":{"description":"Fallback for package requests.\nRecord key is the request to be mapped, value is the new target.\nOriginal request is attempted before fallback.","tags":[{"tagName":"visualizer","text":"json-edit-code"}]},"description":"Fallback for package requests.\nRecord key is the request to be mapped, value is the new target.\nOriginal request is attempted before fallback.","format":"json-edit-code","type":"object","additionalItems":{"oneOf":[{"type":"string"},{"type":"boolean","enum":[false]}]}},"packageRoots":{"jsDoc":{"description":"Folders to use when searching for packages.","tags":[{"tagName":"default","text":"['node_modules']"}]},"description":"Folders to use when searching for packages.","type":"array","items":{"type":"string"}},"workspaceAlias":{"jsDoc":{"description":"Aliases for all package requests in a monorepo.\nRecord key is the request to be mapped, value is the new target.","tags":[{"tagName":"visualizer","text":"json-edit-code"}]},"description":"Aliases for all package requests in a monorepo.\nRecord key is the request to be mapped, value is the new target.","format":"json-edit-code","type":"object","additionalItems":{"type":"string"}},"customConditions":{"jsDoc":{"description":"Conditions to set in addition to the resolver-specific\ndefaults when resolving imports."},"description":"Conditions to set in addition to the resolver-specific\ndefaults when resolving imports.","type":"array","items":{"type":"string"}}}},"sassCompilation":{"jsDoc":{"description":"Adds Sass support to compilations.\nRefer to https://help.codux.com/kb/en/article/kb19315 for more information.","tags":[{"tagName":"group","text":"Styling"}]},"description":"Adds Sass support to compilations.\nRefer to https://help.codux.com/kb/en/article/kb19315 for more information.","type":"object","properties":{"modules":{"jsDoc":{"description":"Defines path and module extensions for Sass modules to include and/or ignore.\nInput as an array of glob patterns."},"description":"Defines path and module extensions for Sass modules to include and/or ignore.\nInput as an array of glob patterns.","type":"object","properties":{"include":{"jsDoc":{"description":"Array of glob patterns to include."},"description":"Array of glob patterns to include.","oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"ignore":{"jsDoc":{"description":"Array of glob patterns to ignore."},"description":"Array of glob patterns to ignore.","oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["include"]},"resolveUrls":{"jsDoc":{"description":"Determines whether URLs in Sass files should resolve to absolute file paths before compiling them.","tags":[{"tagName":"default","text":"true"}]},"description":"Determines whether URLs in Sass files should resolve to absolute file paths before compiling them.","type":"boolean"},"includePaths":{"jsDoc":{"description":"Array of paths to resolve Sass files from."},"description":"Array of paths to resolve Sass files from.","type":"array","items":{"type":"string"}}},"required":["modules","resolveUrls"]},"serverProxyMap":{"jsDoc":{"description":"Configures proxy servers for Codux to redirect requests to.\nThe key is the path to proxy requests from, and the value is the url to proxy requests to.\nRefer to https://help.codux.com/kb/en/article/kb18137 for more information.","tags":[{"tagName":"default","text":"{}"},{"tagName":"group","text":"Server"},{"tagName":"visualizer","text":"json-edit-code"}]},"description":"Configures proxy servers for Codux to redirect requests to.\nThe key is the path to proxy requests from, and the value is the url to proxy requests to.\nRefer to https://help.codux.com/kb/en/article/kb18137 for more information.","format":"json-edit-code","type":"object","additionalItems":{"type":"string"}},"disableProjectSharing":{"jsDoc":{"description":"Disables sharing the project in the Codux Online Playground.\nRefer to https://help.codux.com/kb/en/article/kb02353 for more information.","tags":[{"tagName":"default","text":"\"false\""}]},"description":"Disables sharing the project in the Codux Online Playground.\nRefer to https://help.codux.com/kb/en/article/kb02353 for more information.","type":"boolean","default":false},"styling":{"jsDoc":{"description":"Styling related configuration.\nContains field for styling solution which determines the main styling solution in the user's project.\nRefer to https://help.codux.com/kb/en/article/kb31817 for more information.","tags":[{"tagName":"example","text":"{ solution: \"stylable\" }"},{"tagName":"group","text":"Styling"}]},"description":"Styling related configuration.\nContains field for styling solution which determines the main styling solution in the user's project.\nRefer to https://help.codux.com/kb/en/article/kb31817 for more information.","type":"object","properties":{"solution":{"jsDoc":{"description":"Default file extension to use for component style sheets in the project.\nOptions: \"css\" | \"sass\" | \"css modules\" | \"sass modules\" | \"scss\" | \"scss modules\" | \"stylable\""},"description":"Default file extension to use for component style sheets in the project.\nOptions: \"css\" | \"sass\" | \"css modules\" | \"sass modules\" | \"scss\" | \"scss modules\" | \"stylable\"","type":"string"}}},"styleFilesConfig":{"jsDoc":{"description":"Formats code styling in the Codux code drawer.\nRefer to https://help.codux.com/kb/en/article/kb18018 for more information.","tags":[{"tagName":"group","text":"FileManagement"},{"tagName":"group","text":"Styling"}]},"description":"Formats code styling in the Codux code drawer.\nRefer to https://help.codux.com/kb/en/article/kb18018 for more information.","type":"object","properties":{"commonStyleFilePattern":{"jsDoc":{"description":"An extended glob pattern that describes the common CSS files used in the project.\nThe Style Panel will not suggest these files for adding new rules to an element or editing its style."},"description":"An extended glob pattern that describes the common CSS files used in the project.\nThe Style Panel will not suggest these files for adding new rules to an element or editing its style.","type":"string"}}},"conditionalClassnamesConfig":{"$ref":"#/$defs/UtilityFunctionClassNamesPluginOptions"},"schemaMemoryUsageView":{"jsDoc":{"description":"Configures the schema memory usage panel"},"description":"Configures the schema memory usage panel","type":"object","properties":{"enabled":{"oneOf":[{"type":"boolean","enum":[false]},{"type":"boolean","enum":[true]}]}}},"tailwindcssConfig":{"jsDoc":{"description":"Lets you pass a custom tailwindcss config file path.\nRefer to https://help.codux.com/kb/en/article/kb18518 for more information.","tags":[{"tagName":"group","text":"Styling"}]},"description":"Lets you pass a custom tailwindcss config file path.\nRefer to https://help.codux.com/kb/en/article/kb18518 for more information.","type":"string"},"componentsDiscovery":{"jsDoc":{"description":"Scopes component discovery in your project.\nRefer to https://help.codux.com/kb/en/article/kb37113 for more information.","tags":[{"tagName":"group","text":"General"}]},"description":"Scopes component discovery in your project.\nRefer to https://help.codux.com/kb/en/article/kb37113 for more information.","type":"object","properties":{"include":{"jsDoc":{"description":"Array of glob patterns to include."},"description":"Array of glob patterns to include.","type":"array","items":{"type":"string"}},"exclude":{"jsDoc":{"description":"Array of glob patterns to exclude."},"description":"Array of glob patterns to exclude.","type":"array","items":{"type":"string"}}}},"externalProviders":{"type":"object","properties":{"wix":{"type":"object","properties":{"projectId":{"type":"string"},"metaSiteId":{"type":"string"}},"required":["projectId","metaSiteId"]}}}},"$defs":{"TemplatesConfig":{"jsDoc":{"description":"Path where project templates are stored."},"description":"Path where project templates are stored.","type":"string"},"ScriptFrom":{"jsDoc":{"description":"Script title in the UI.\nWill be available to use from Codux."},"description":"Script title in the UI.\nWill be available to use from Codux.","type":"string"},"ScriptFromConfig":{"type":"object","properties":{"command":{"jsDoc":{"description":"This is the command that the script runs when executed."},"description":"This is the command that the script runs when executed.","type":"string"},"title":{"$ref":"#/$defs/ScriptFrom"},"description":{"$ref":"#/$defs/ScriptFrom"},"trigger":{"$ref":"#/$defs/ScriptFrom"},"preventRunningInBackground":{"$ref":"#/$defs/ScriptFrom"},"preventRerenderBoardsOnFinish":{"$ref":"#/$defs/ScriptFrom"}},"required":["command"]},"BatchFromConfig":{"type":"object","properties":{"run":{"jsDoc":{"description":"The value of this parameter is an array of script objects to include in the batch."},"description":"The value of this parameter is an array of script objects to include in the batch.","type":"array","items":{"type":"string"}},"title":{"$ref":"#/$defs/ScriptFrom"},"description":{"$ref":"#/$defs/ScriptFrom"},"trigger":{"$ref":"#/$defs/ScriptFrom"},"preventRunningInBackground":{"$ref":"#/$defs/ScriptFrom"},"preventRerenderBoardsOnFinish":{"$ref":"#/$defs/ScriptFrom"}},"required":["run"]},"ConfiguredScript":{"oneOf":[{"$ref":"#/$defs/ScriptFromConfig"},{"$ref":"#/$defs/BatchFromConfig"}]},"GlobalPathsInterface":{"type":"object","properties":{"before":{"type":"string"},"after":{"type":"string"}}},"IDefaultJSONSchema":{"type":"object","properties":{"fileNameRegex":{"type":"string"},"schemaPath":{"type":"string"}},"required":["fileNameRegex","schemaPath"]},"NewComponentTemplateConfigAddition":{"type":"string"},"UtilityFunctionClassNamesPluginOptions":{"jsDoc":{"description":"Options for using the classNames utility library, including path to classNames module, and target export.\nThe default configuration is set for handling the '[classnames](https://github.com/JedWatson/classnames)' library by JedWatson.\nRefer to https://help.codux.com/kb/en/article/kb36122 for more information.","tags":[{"tagName":"group","text":"General"}]},"description":"Options for using the classNames utility library, including path to classNames module, and target export.\nThe default configuration is set for handling the '[classnames](https://github.com/JedWatson/classnames)' library by JedWatson.\nRefer to https://help.codux.com/kb/en/article/kb36122 for more information.","type":"object","properties":{"classnamesPath":{"type":"string"},"classnamesTarget":{"type":"string"}},"required":["classnamesPath","classnamesTarget"]}}}
</schema>

[User] Provide a JSON object that satisfies the schema "codux.config.schema". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Add Panel config.
Can contain list of libraries installed in the project which provide boards for Codux.

{ addPanel: { assets: ["addpanel-bootstrap"] } }

General

Configures how SVG assets load.
Refer to https://help.codux.com/kb/en/article/kb17934 for more information.

"asset"

AssetManagement

Default directory for new boards, relative to the project root.
Refer to https://help.codux.com/kb/en/article/kb19337 for more information.

Configures default path for board template folders and files.

undefined

General

Defines a configuration object for templates.
This configuration allows specifying default directories for entities created using these templates.
Each template can have a custom configuration.

json-edit-code

Maximum time (in milliseconds) to postpone capturing a thumbnail for the board.
Refer to https://help.codux.com/kb/en/article/kb20920 for more information.

Configures scripts for project users to run from Codux (triggerable and on demand).
Refer to https://help.codux.com/kb/en/article/kb30920 for more information.

Scripts

json-edit-code

Path to a file that will be evaluated before each board is rendered,
Useful for importing global stylesheets and initializing global variables.
Can be absolute or relative to the project root (in which case it needs to start with './')
Refer to https://help.codux.com/kb/en/article/kb36623 for more information.

Rendering

Specifies environment variables to use globally across the project.
Refer to https://help.codux.com/kb/en/article/kb37722 for more information.

json-edit-code

variables that are being accessed from process.env from an env file

The relative path to the folder from which static files are served.
Refer to https://help.codux.com/kb/en/article/kb23123 for more information.

Server

json-edit-code

Enables CSS modules in your project.
Refer to https://help.codux.com/kb/en/article/kb25813 for more information.

Styling

Enables or disables the use of CSS modules.

true

The extension types for files to load as modules.

.modules.css

Configures maximum rendered elements.
Refer to https://help.codux.com/kb/en/article/kb18414 for more information.

Rendering

If the project uses <Routes />, or any other component to conditionally render its
children based on the URL or some other logic, this string[] should include the names
of these components ("Routes") for compatibility with Codux.

Rendering

Configures the default file path to add new fonts to.

Styling

Port of HTTP server that is used to serve previews and user project itself.

0 (auto assigned by OS)

Server

Configuration for adding additional json schemas to your project.
This can be used to centralise json schemas addition instead of using $schema and get autocompletion for json files when using Codux.

  defaultJSONSchemas: [
    {
      fileNameRegex: 'schema-from-config.json',
      schemaPath: '/src/specified-schema.schema.json#def1',
    },
    {
      fileNameRegex: 'schema-from-ts.json',
      schemaPath: '/src/specified-schema.ts#MyJSON',
    },
  ],

Configures the default directory where the Codux Media Manager stores new assets.
Refer to https://help.codux.com/kb/en/article/kb96140 for more information.

General

Configures default paths for new component and template files.
Refer to https://help.codux.com/kb/en/article/kb16522 for more information.

json-edit-code

Path where new components and related files will save to.

Specifies project folders to exclude from component search.
Refer to https://help.codux.com/kb/en/article/kb14730 for more information.

General

Configures file-naming convention for new component creation.
Refer to https://help.codux.com/kb/en/article/kb29627 for more information.
Options: "pascal-case" | "camel-case" | "kebab-case"

"kebab-case"

FileManagement

Includes package assets from additional sources, and creates aliases and fallbacks.
Refer to https://help.codux.com/kb/en/article/kb18719 for more information.

{ packageRoots: ["node_modules"], alias: {}, workspaceAlias: {}, fallback: {} }

AssetManagement

Aliases for package requests.
Record key is the request to be mapped, value is the new target.
Alias is attempted before original request.

json-edit-code

Fallback for package requests.
Record key is the request to be mapped, value is the new target.
Original request is attempted before fallback.

json-edit-code

Folders to use when searching for packages.

Aliases for all package requests in a monorepo.
Record key is the request to be mapped, value is the new target.

json-edit-code

Conditions to set in addition to the resolver-specific
defaults when resolving imports.

Adds Sass support to compilations.
Refer to https://help.codux.com/kb/en/article/kb19315 for more information.

Styling

Defines path and module extensions for Sass modules to include and/or ignore.
Input as an array of glob patterns.

Array of glob patterns to include.

Array of glob patterns to include.

Array of glob patterns to ignore.

Array of glob patterns to ignore.

Determines whether URLs in Sass files should resolve to absolute file paths before compiling them.

true

Array of paths to resolve Sass files from.

Configures proxy servers for Codux to redirect requests to.
The key is the path to proxy requests from, and the value is the url to proxy requests to.
Refer to https://help.codux.com/kb/en/article/kb18137 for more information.

Server

json-edit-code

Disables sharing the project in the Codux Online Playground.
Refer to https://help.codux.com/kb/en/article/kb02353 for more information.

"false"

Styling related configuration.
Contains field for styling solution which determines the main styling solution in the user's project.
Refer to https://help.codux.com/kb/en/article/kb31817 for more information.

{ solution: "stylable" }

Styling

Default file extension to use for component style sheets in the project.
Options: "css" | "sass" | "css modules" | "sass modules" | "scss" | "scss modules" | "stylable"

Formats code styling in the Codux code drawer.
Refer to https://help.codux.com/kb/en/article/kb18018 for more information.

FileManagement

Styling

An extended glob pattern that describes the common CSS files used in the project.
The Style Panel will not suggest these files for adding new rules to an element or editing its style.

Configures the schema memory usage panel

Lets you pass a custom tailwindcss config file path.
Refer to https://help.codux.com/kb/en/article/kb18518 for more information.

Styling

Scopes component discovery in your project.
Refer to https://help.codux.com/kb/en/article/kb37113 for more information.

General

Array of glob patterns to include.

Array of glob patterns to include.

Array of glob patterns to exclude.

Array of glob patterns to exclude.

Path where project templates are stored.

Script title in the UI.
Will be available to use from Codux.

This is the command that the script runs when executed.

The value of this parameter is an array of script objects to include in the batch.

Options for using the classNames utility library, including path to classNames module, and target export.
The default configuration is set for handling the '[classnames](https://github.com/JedWatson/classnames)' library by JedWatson.
Refer to https://help.codux.com/kb/en/article/kb36122 for more information.

General

Provide a JSON object that satisfies the schema "codux.config.schema". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-04/schema#","additionalProperties":true,"definitions":{"base":{"type":"object","properties":{"level":{"description":"Determines the error level","type":"string","enum":["error","warn","ignore"]}}}},"id":"https://json.schemastore.org/coffeelint.json","properties":{"arrow_spacing":{"description":"This rule checks to see that there is spacing before and after the arrow operator that declares a function. [default level: ignore]","allOf":[{"$ref":"#/definitions/base"}]},"braces_spacing":{"description":"This rule checks to see that there is the proper spacing inside curly braces. The spacing amount is specified by `spaces`. The spacing amount for empty objects is specified by `empty_object_spaces`. [default level: ignore]","allOf":[{"$ref":"#/definitions/base"}],"properties":{"empty_object_spaces":{"type":"integer","enum":[0,1]},"spaces":{"type":"integer","enum":[0,1]}}},"camel_case_classes":{"description":"This rule mandates that all class names are CamelCased. Camel casing class names is a generally accepted way of distinguishing constructor functions - which require the `new` prefix to behave properly - from plain old functions. [default level: error]","allOf":[{"$ref":"#/definitions/base"}]},"coffeescript_error":{"description":"[default level: error]","allOf":[{"$ref":"#/definitions/base"}]},"colon_assignment_spacing":{"description":"This rule checks to see that there is spacing before and after the colon in a colon assignment (i.e., classes, objects). [default level: ignore]","allOf":[{"$ref":"#/definitions/base"}],"properties":{"spacing":{"type":"object","properties":{"left":{"type":"integer","enum":[0,1]},"right":{"type":"integer","enum":[0,1]}}}}},"cyclomatic_complexity":{"description":"Examine the complexity of your application. [default level: ignore]","allOf":[{"$ref":"#/definitions/base"}],"properties":{"value":{"type":"integer"}}},"duplicate_key":{"description":"Prevents defining duplicate keys in object literals and classes. [default level: error]","allOf":[{"$ref":"#/definitions/base"}]},"empty_constructor_needs_parens":{"description":"Requires constructors with no parameters to include the parens. [default level: ignore]","allOf":[{"$ref":"#/definitions/base"}]},"ensure_comprehensions":{"description":"This rule makes sure that parentheses are around comprehensions. [default level: warn]","allOf":[{"$ref":"#/definitions/base"}]},"eol_last":{"description":"Checks that the file ends with a single newline. [default level: ignore]","allOf":[{"$ref":"#/definitions/base"}]},"indentation":{"description":"This rule imposes a standard number of spaces to be used for indentation. Since whitespace is significant in CoffeeScript, it's critical that a project chooses a standard indentation format and stays consistent. Other roads lead to darkness. [default level: error]","allOf":[{"$ref":"#/definitions/base"}],"properties":{"value":{"type":"integer"}}},"line_endings":{"description":"This rule ensures your project uses only windows or unix line endings. [default level: ignore]","allOf":[{"$ref":"#/definitions/base"}],"properties":{"value":{"type":"string","enum":["unix","windows"]}}},"max_line_length":{"description":"This rule imposes a maximum line length on your code. [default level: error]","allOf":[{"$ref":"#/definitions/base"}],"properties":{"value":{"type":"integer"},"limitComments":{"type":"boolean"}}},"missing_fat_arrows":{"description":"Warns when you use `this` inside a function that wasn't defined with a fat arrow. This rule does not apply to methods defined in a class, since they have `this` bound to the class instance (or the class itself, for class methods). [default level: ignore]","allOf":[{"$ref":"#/definitions/base"}]},"newlines_after_classes":{"description":"Checks the number of newlines between classes and other code. [default level: ignore]","allOf":[{"$ref":"#/definitions/base"}],"properties":{"value":{"type":"integer"}}},"no_backticks":{"description":"Backticks allow snippets of JavaScript to be embedded in CoffeeScript. While some folks consider backticks useful in a few niche circumstances, they should be avoided because so none of JavaScript's 'bad parts', like with and eval, sneak into CoffeeScript. [default level: error]","allOf":[{"$ref":"#/definitions/base"}]},"no_debugger":{"description":"This rule detects the `debugger` statement. [default level: warn]","allOf":[{"$ref":"#/definitions/base"}]},"no_empty_functions":{"description":"Disallows declaring empty functions. The goal of this rule is that unintentional empty callbacks can be detected. [default level: ignore]","allOf":[{"$ref":"#/definitions/base"}]},"no_empty_param_list":{"description":"This rule prohibits empty parameter lists in function definitions. [default level: ignore]","allOf":[{"$ref":"#/definitions/base"}]},"no_implicit_braces":{"description":"This rule prohibits implicit braces when declaring object literals. Implicit braces can make code more difficult to understand, especially when used in combination with optional parenthesis. [default level: ignore]","allOf":[{"$ref":"#/definitions/base"}],"properties":{"strict":{"type":"boolean"}}},"no_implicit_parens":{"description":"This rule prohibits implicit parens on function calls. [default level: ignore]","allOf":[{"$ref":"#/definitions/base"}]},"no_interpolation_in_single_quotes":{"description":"This rule prohibits string interpolation in a single quoted string. [default level: ignore]","allOf":[{"$ref":"#/definitions/base"}]},"no_nested_string_interpolation":{"description":"This rule warns about nested string interpolation, as it tends to make code harder to read and understand. [default level: warn]","allOf":[{"$ref":"#/definitions/base"}]},"no_plusplus":{"description":"This rule forbids the increment and decrement arithmetic operators. Some people believe the `++` and `--` to be cryptic and the cause of bugs due to misunderstandings of their precedence rules. [default level: ignore]","allOf":[{"$ref":"#/definitions/base"}]},"no_private_function_fat_arrows":{"description":"Warns when you use the fat arrow for a private function inside a class definition scope. It is not necessary and it does not do anything. [default level: warn]","allOf":[{"$ref":"#/definitions/base"}]},"no_stand_alone_at":{"description":"This rule checks that no stand alone `@` are in use, they are discouraged. [default level: ignore]","type":"object","allOf":[{"$ref":"#/definitions/base"}]},"no_tabs":{"description":"This rule forbids tabs in indentation. Enough said. [default level: error]","type":"object","allOf":[{"$ref":"#/definitions/base"}]},"no_this":{"description":"This rule prohibits `this`. Use `@` instead. [default level: ignore]","allOf":[{"$ref":"#/definitions/base"}]},"no_throwing_strings":{"description":"This rule forbids throwing string literals or interpolations. While JavaScript (and CoffeeScript by extension) allow any expression to be thrown, it is best to only throw `Error` objects, because they contain valuable debugging information like the stack trace. [default level: error]","allOf":[{"$ref":"#/definitions/base"}]},"no_trailing_semicolons":{"description":"This rule prohibits trailing semicolons, since they are needless cruft in CoffeeScript. [default level: error]","allOf":[{"$ref":"#/definitions/base"}]},"no_trailing_whitespace":{"description":"This rule forbids trailing whitespace in your code, since it is needless cruft. [default level: error]","allOf":[{"$ref":"#/definitions/base"}],"properties":{"allowed_in_comments":{"type":"boolean"},"allowed_in_empty_lines":{"type":"boolean"}}},"no_unnecessary_double_quotes":{"description":"This rule prohibits double quotes unless string interpolation is used or the string contains single quotes. [default level: ignore]","allOf":[{"$ref":"#/definitions/base"}]},"no_unnecessary_fat_arrows":{"description":"Disallows defining functions with fat arrows when `this` is not used within the function.  [default level: warn]","allOf":[{"$ref":"#/definitions/base"}]},"non_empty_constructor_needs_parens":{"description":"Requires constructors with parameters to include the parens. [default level: ignore]","allOf":[{"$ref":"#/definitions/base"}]},"prefer_english_operator":{"description":"This rule prohibits `&&`, `||`, `==`, `!=` and `!`. Use `and`, `or`, `is`, `isnt`, and `not` instead. `!!` (for converting to a boolean) is ignored. [default level: ignore]","allOf":[{"$ref":"#/definitions/base"}]},"space_operators":{"description":"This rule enforces that operators have space around them.  [default level: ignore]","allOf":[{"$ref":"#/definitions/base"}]},"spacing_after_comma":{"description":"This rule checks to make sure you have a space after commas. [default level: ignore]","allOf":[{"$ref":"#/definitions/base"}]},"transform_messes_up_line_numbers":{"description":"This rule detects when changes are made by transform function, and warns that line numbers are probably incorrect. [default level: warn]","allOf":[{"$ref":"#/definitions/base"}]}},"title":"JSON schema for coffeelint.json files","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for coffeelint.json files". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Determines the error level

This rule checks to see that there is spacing before and after the arrow operator that declares a function. [default level: ignore]

This rule checks to see that there is the proper spacing inside curly braces. The spacing amount is specified by `spaces`. The spacing amount for empty objects is specified by `empty_object_spaces`. [default level: ignore]

This rule mandates that all class names are CamelCased. Camel casing class names is a generally accepted way of distinguishing constructor functions - which require the `new` prefix to behave properly - from plain old functions. [default level: error]

[default level: error]

This rule checks to see that there is spacing before and after the colon in a colon assignment (i.e., classes, objects). [default level: ignore]

Examine the complexity of your application. [default level: ignore]

Prevents defining duplicate keys in object literals and classes. [default level: error]

Requires constructors with no parameters to include the parens. [default level: ignore]

This rule makes sure that parentheses are around comprehensions. [default level: warn]

Checks that the file ends with a single newline. [default level: ignore]

This rule imposes a standard number of spaces to be used for indentation. Since whitespace is significant in CoffeeScript, it's critical that a project chooses a standard indentation format and stays consistent. Other roads lead to darkness. [default level: error]

This rule ensures your project uses only windows or unix line endings. [default level: ignore]

This rule imposes a maximum line length on your code. [default level: error]

Warns when you use `this` inside a function that wasn't defined with a fat arrow. This rule does not apply to methods defined in a class, since they have `this` bound to the class instance (or the class itself, for class methods). [default level: ignore]

Checks the number of newlines between classes and other code. [default level: ignore]

Backticks allow snippets of JavaScript to be embedded in CoffeeScript. While some folks consider backticks useful in a few niche circumstances, they should be avoided because so none of JavaScript's 'bad parts', like with and eval, sneak into CoffeeScript. [default level: error]

This rule detects the `debugger` statement. [default level: warn]

Disallows declaring empty functions. The goal of this rule is that unintentional empty callbacks can be detected. [default level: ignore]

This rule prohibits empty parameter lists in function definitions. [default level: ignore]

This rule prohibits implicit braces when declaring object literals. Implicit braces can make code more difficult to understand, especially when used in combination with optional parenthesis. [default level: ignore]

This rule prohibits implicit parens on function calls. [default level: ignore]

This rule prohibits string interpolation in a single quoted string. [default level: ignore]

This rule warns about nested string interpolation, as it tends to make code harder to read and understand. [default level: warn]

This rule forbids the increment and decrement arithmetic operators. Some people believe the `++` and `--` to be cryptic and the cause of bugs due to misunderstandings of their precedence rules. [default level: ignore]

Warns when you use the fat arrow for a private function inside a class definition scope. It is not necessary and it does not do anything. [default level: warn]

This rule checks that no stand alone `@` are in use, they are discouraged. [default level: ignore]

This rule forbids tabs in indentation. Enough said. [default level: error]

This rule prohibits `this`. Use `@` instead. [default level: ignore]

This rule forbids throwing string literals or interpolations. While JavaScript (and CoffeeScript by extension) allow any expression to be thrown, it is best to only throw `Error` objects, because they contain valuable debugging information like the stack trace. [default level: error]

This rule prohibits trailing semicolons, since they are needless cruft in CoffeeScript. [default level: error]

This rule forbids trailing whitespace in your code, since it is needless cruft. [default level: error]

This rule prohibits double quotes unless string interpolation is used or the string contains single quotes. [default level: ignore]

Disallows defining functions with fat arrows when `this` is not used within the function.  [default level: warn]

Requires constructors with parameters to include the parens. [default level: ignore]

This rule prohibits `&&`, `||`, `==`, `!=` and `!`. Use `and`, `or`, `is`, `isnt`, and `not` instead. `!!` (for converting to a boolean) is ignored. [default level: ignore]

This rule enforces that operators have space around them.  [default level: ignore]

This rule checks to make sure you have a space after commas. [default level: ignore]

This rule detects when changes are made by transform function, and warns that line numbers are probably incorrect. [default level: warn]

JSON schema for coffeelint.json files

Provide a JSON object that satisfies the schema "JSON schema for coffeelint.json files". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.