---
title: "Materialize CLI Configuration"
description: "An authentication profile..."
menu:
main:
parent: cli
name: Configuration
weight: 2
---
`mz` is configured via a single TOML file stored at
`$HOME/.config/materialize/mz.toml`.
You typically manage configuration via the following two commands:
* [`mz config`](../reference/config), which manages global configuration
parameters.
* [`mz profile`](../reference/profile), which manages authentication profiles.
You can also edit the file directly if you prefer. The format of the file is
shown in the [Example](#example) section.
## Global parameters
`mz` supports several global configuration parameters, documented in the table
below.
Name | Type | Description
----------|--------|------------
`profile` | string | The name of the authentication profile to use by default.
Default: `default`.
`vault` | string | The default vault to use to store secret configuration parameters: `inline` or `keychain`. When set to `inline`, secrets are stored directly in the configuration file. When set to `keychain`, secrets are stored in the system keychain (macOS only).
Default (Linux): `inline`
Default (macOS): `keychain`
Use [`mz config set`](../reference/config#set) to set these parameters.
## Authentication profiles
You can configure `mz` with multiple **authentication profiles** to seamlessly
manage multiple Materialize user accounts. Each profile has a name, an
associated app password, and a default region.
When invoking an `mz` command that requires authentication, you can explicitly
choose which profile to use by passing the `--profile` flag. For example, to use
the `hooli` profile with the `mz sql` command:
```shell
mz sql --profile=hooli
```
When the profile is not explicitly specified, `mz` uses the default profile
specified in the configuration file. You can change the default profile using
`mz config`. For example, to set the default profile to `hooli`:
```shell
mz config set profile hooli
```
### Profile parameters
Field | Type | Description
------------------|--------|----------------------------
`app-password` | string | *Secret.* The app password to use for this profile.
`region` | string | The default region to use for this profile.
`vault` | string | The vault to use for this profile. See [Global parameters](#global-parameters) above.
`cloud-endpoint` | string | *Internal use only.* The Materialize API endpoint to use.
`admin-endpoint` | string | *Internal use only.* The Materialize administration endpoint to use.
## Example
The following is an example `mz.toml` configuration file with two authentication
profiles.
```toml
# Activate the "acme-corp" authentication profile by default.
profile = "acme-corp"
# Store app passwords directly in the configuration file.
vault = "inline"
# Profile for Acme Corp.
[profiles.acme-corp]
# The app password that the CLI will use to authenticate.
app-password = "mzp_fg91g4fslgq329023..."
# The default region to use for the Acme Corp profile.
region = "aws/us-east-1"
# Profile for Hooli.
[profiles.hooli]
app-password = "mzp_a48df1039ecb2d94c..."
region = "aws/eu-west-1"
```