# Config

> Show the current configuration.

The `config` command prints the **merged** configuration Shelve CLI will use in the current directory (local + monorepo root + environment variables).

```bash [terminal]
shelve config
shelve --json config
```

## Human output

Prints the config object to stdout (Node inspect style). The token is shown in full — avoid sharing this output.

## JSON output

With `--json`, stdout is:

```json
{
  "ok": true,
  "command": "config",
  "data": {
    "slug": "my-team",
    "project": "my-app",
    "token": "***",
    "url": "https://app.shelve.cloud",
    "defaultEnv": "development",
    "confirmChanges": false,
    "envFileName": ".env",
    "autoUppercase": true,
    "autoCreateProject": true,
    "workspaceDir": "/path/to/project",
    "isMonoRepo": false,
    "isRoot": true
  }
}
```

The token is always **redacted** as `"***"` in JSON mode.

## What is included

- Resolved `project`, `slug`, `url`, `defaultEnv`
- Credential metadata (`username`, `email`) when logged in
- Monorepo detection (`isMonoRepo`, `workspaceDir`, `isRoot`, `projectFromConfig`) and `monorepo.paths`, the packages a root-level command fans out to
- Effective flags (`confirmChanges`, `envFileName`, `sync`, …)
- Resolved sync policy per environment when `sync` is configured (see [Sync policies](/docs/cli/sync-policies))

If required fields are missing and you are in non-interactive mode, the command fails with `MISSING_SLUG`, `MISSING_PROJECT`, or `AUTH_REQUIRED` instead of prompting.

See [Introduction](/docs/cli) for the full list of config keys and `SHELVE_*` environment variables.
