> ## Documentation Index
> Fetch the complete documentation index at: https://userepass.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuração

> Onde a CLI guarda estado local, perfis nomeados, variáveis de ambiente e precedência.

A CLI guarda estado local (credencial, `baseUrl`, organização ativa em cache) em um único arquivo JSON.

## Onde fica o arquivo

```bash theme={null}
repass config path
```

Por padrão, `~/.config/repass/config.json`, respeitando o padrão [XDG](https://specifications.freedesktop.org/basedir-spec/latest/): se `XDG_CONFIG_HOME` estiver definida, o arquivo fica em `$XDG_CONFIG_HOME/repass/config.json`.

<Warning>
  O arquivo pode conter credenciais (`token` de sessão ou `apiKey`), então nasce com permissões restritas: diretório `0700` e arquivo `0600`. Não edite manualmente sem preservar essas permissões.
</Warning>

## Perfis nomeados

A mesma `config.json` suporta múltiplos perfis (`default`, `staging`, `work`...), útil para separar organizações ou ambientes sem reautenticar toda hora.

Selecione um perfil com a flag global `--profile` ou a variável `REPASS_PROFILE`:

```bash theme={null}
repass login --profile staging
repass --profile staging programs list
REPASS_PROFILE=staging repass whoami
```

## `config get` / `set` / `list` / `path`

```bash theme={null}
repass config get baseUrl
repass config set baseUrl https://api.minha-sandbox.exemplo.com
repass config list --json
repass config path
```

* `get <key>` / `set <key> <value>`: hoje só a chave `baseUrl` é editável; qualquer outra chave lança erro explícito ("não é editável").
* `list`: imprime o perfil ativo com segredos **mascarados**, mesmo com `--json`: `apiKey` vira `<prefixo>…<últimos 4>` (ex. `rstr_…a1b2`) e `token` vira `…<últimos 6>`. O valor completo nunca é exibido de novo por este comando.
* `path`: caminho absoluto do `config.json` em uso.

```text repass config list theme={null}
Perfil: default
baseUrl: -
apiKey: rstr_…a1b2
```

## Variáveis de ambiente

| Variável            | Efeito                                                                                            |
| ------------------- | ------------------------------------------------------------------------------------------------- |
| `REPASS_API_KEY`    | Credencial (equivalente a `--api-key`)                                                            |
| `REPASS_BASE_URL`   | Sobrepõe a URL base da API (equivalente a `--base-url`)                                           |
| `REPASS_PROFILE`    | Perfil ativo (equivalente a `--profile`)                                                          |
| `REPASS_CONFIG_DIR` | Sobrepõe o diretório de config (`~/.config/repass` por padrão; também respeita `XDG_CONFIG_HOME`) |

## Precedência

A mesma ordem vale para credencial e para `baseUrl`, em qualquer comando (de recurso ou de sessão local):

```
flag (--api-key / --base-url)  >  env (REPASS_API_KEY / REPASS_BASE_URL)  >  valor salvo no perfil
```

Sem nenhuma credencial resolvida, a CLI para com: `Nenhuma credencial encontrada. Rode repass login ou defina REPASS_API_KEY.`

## Próximos passos

<CardGroup cols={2}>
  <Card title="Autenticação" icon="fingerprint" href="/docs/cli/autenticacao">
    Device flow, chave de API e organização ativa.
  </Card>

  <Card title="Automação e CI" icon="robot" href="/docs/cli/automacao-ci">
    Usando `REPASS_API_KEY` e perfis em pipelines não interativos.
  </Card>
</CardGroup>
