# Configuration (/docs/developer-resources/cli/configuration)

Settings such as the default Space are **properties**. Properties are stored in named **configurations**, and one configuration is active at a time, so you can keep a separate setup for each Monimeer or environment.

```bash
monime config set space spc-k6Em1Aap25VZ8oWg7ajhxHX3JqF
monime config get space
monime config list --all
```

## Where a value comes from

A property's effective value comes from the first of these that is set:

1. **A command-line flag**, such as `--space`, `--account` or `--verbosity`
2. **An environment variable**, such as `MONIME_CORE_SPACE`
3. **The configuration in use**: the active one, or the one named with `--configuration`
4. **The built-in default**

`monime config list` shows each value and where it comes from:

```text title="monime config list --all"
PROPERTY               VALUE                        SOURCE
api/endpoint           https://cli.monime.io/api    default
auth/login_url         https://cli.monime.io/auth   default
core/account
core/disable_prompts   false                        default
core/log_http          false                        default
core/space
core/verbosity         warning                      default
proxy/url
```

## Properties

Properties in the `core` section can be written without the `core/` prefix, so `space` and `core/space` are the same property. Under each property is the environment variable that sets it.

| Property                                            | What it controls                                                                                                       |
| --------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| `core/space``MONIME_CORE_SPACE`                     | The Space commands operate in by default.                                                                              |
| `core/account``MONIME_CORE_ACCOUNT`                 | The Monimeer the CLI acts as, by alias. Set by `monime account login`.                                                 |
| `core/disable_prompts``MONIME_CORE_DISABLE_PROMPTS` | Turn off interactive prompts. Default answers are used, or the command fails if there is none. Default: `false`.       |
| `core/verbosity``MONIME_CORE_VERBOSITY`             | Minimum severity of log messages written to stderr: `debug`, `info`, `warning`, `error` or `none`. Default: `warning`. |
| `core/log_http``MONIME_CORE_LOG_HTTP`               | Log HTTP requests and responses to stderr, with credentials redacted. Default: `false`.                                |
| `proxy/url``MONIME_PROXY_URL`                       | Proxy for requests to Monime. See [Networks with a proxy](#networks-with-a-proxy).                                     |
| `api/endpoint``MONIME_API_ENDPOINT`                 | Base URL of the Monime API. Default: `https://cli.monime.io/api`.                                                      |
| `auth/login_url``MONIME_AUTH_LOGIN_URL`             | Page that completes browser login for `monime account login`. Default: `https://cli.monime.io/auth`.                   |

| Command                            | What it does                                                                                                     |
| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| `monime config get PROPERTY`       | Print the value in effect, including defaults                                                                    |
| `monime config set PROPERTY VALUE` | Set a property in the active configuration                                                                       |
| `monime config unset PROPERTY`     | Remove a property from the configuration                                                                         |
| `monime config list`               | List the properties that are set and where each value comes from; `--all` includes defaults and unset properties |

> **Tip:** Debugging a failing command? Run it with `--verbosity debug`, or set `core/log_http` to `true` to see each request and response with credentials redacted.

## Named configurations

A named configuration is a set of properties, for example one per Monimeer or environment. The `default` configuration always exists, and exactly one configuration is active.

```bash
# Create a configuration and make it active
monime config configurations create staging

# Set properties in it
monime config set space spc-k6Em1Aap25VZ8oWg7ajhxHX3JqF

# Switch back
monime config configurations activate default
```

Configuration names start with a lowercase letter and contain only lowercase letters, digits and hyphens.

| Command                                        | What it does                                  |
| ---------------------------------------------- | --------------------------------------------- |
| `monime config configurations create NAME`     | Create a configuration and activate it        |
| `monime config configurations activate NAME`   | Make a configuration the active one           |
| `monime config configurations list`            | List configurations                           |
| `monime config configurations describe [NAME]` | Show the properties stored in a configuration |
| `monime config configurations delete NAME...`  | Delete configurations                         |

`monime config configs` is a shorter alias. To use a configuration for a single command without activating it, add `--configuration NAME`, or set `MONIME_ACTIVE_CONFIG`:

```bash
monime space use acme --configuration staging
MONIME_ACTIVE_CONFIG=staging monime status
```

## Networks with a proxy

If your network reaches Monime only through a proxy, set it once per configuration:

```bash
monime config set proxy/url http://proxy.example.com:3128
```

`http`, `https` and `socks5` proxies are supported, and the URL may include `user:password@`; listings show the password as `xxxxx`. Without `proxy/url`, the standard `HTTPS_PROXY` and `NO_PROXY` environment variables apply.

If the Monime API is exposed to you at a different address, for example through an internal gateway, point the CLI at it:

```bash
monime config set api/endpoint https://monime-gateway.internal.example.com/api
```

## Where the CLI keeps its files

Configurations are stored in `~/.config/monime` (or `$XDG_CONFIG_HOME/monime`) on macOS and Linux, and in `%APPDATA%\monime` on Windows. Set `MONIME_CONFIG_DIR` to use another folder.

Login tokens are not written to these files: they are kept in your operating system's credential store, such as the macOS Keychain or Windows Credential Manager.
