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

# Linha de comando

> Use a API pessoal no terminal com a CLI visor.

A CLI `visor` chama a API pessoal por você. Ela se autentica com o seu token pessoal, troca nomes por IDs, percorre as páginas e espera os limites de requisição. Cada operação desta documentação tem um comando. O código está no [GitHub](https://github.com/Visor-Finance/visor-cli).

## Instale

```bash Homebrew theme={null}
brew install visor-finance/tap/visor
```

```bash macOS e Linux theme={null}
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Visor-Finance/visor-cli/releases/latest/download/visor-installer.sh | sh
```

```powershell Windows theme={null}
powershell -ExecutionPolicy Bypass -c "irm https://github.com/Visor-Finance/visor-cli/releases/latest/download/visor-installer.ps1 | iex"
```

Confira a instalação com `visor --version`. O autocompletar do shell está disponível com `visor completions zsh`, e também `bash`, `fish` e `powershell`.

### Atualize

```bash theme={null}
visor update            # atualiza do jeito que a CLI foi instalada
visor update --check    # só compara as versões; sai com código 1 quando há uma nova
```

`visor update` roda `brew upgrade visor-finance/tap/visor` numa instalação pelo Homebrew, ou o instalador da nova versão na mesma pasta nas instalações pelos instaladores de shell e PowerShell. Se o Homebrew ou o instalador falhar, o erro deles fica na tela e a CLI continua como estava.

Desde a 0.7.0 a CLI também se atualiza sozinha. No terminal, depois de um comando, ela instala uma versão de patch mais nova em segundo plano (a saída vai para `update.log` na pasta de configuração). Uma versão minor ou major nova, ou mais de cinco patches à frente, é instalada antes do comando, que então roda na versão nova. Uma atualização que falha nunca interrompe o comando, e a CLI espera uma hora antes de tentar de novo. Só as instalações pelo Homebrew e pelos instaladores se atualizam; CI, pipes e saída `--json` nunca mostram uma atualização.

````bash theme={null}
visor settings autoupdate            # mostra a configuração
visor settings autoupdate disable    # deixa só o aviso de versão nova
``` O `visor update` chegou na 0.6.0: para chegar lá a partir de uma versão anterior, rode `brew upgrade visor-finance/tap/visor` ou o comando de instalação de novo.

## Entre na sua conta

```bash
visor auth login
````

A CLI abre o Visor no navegador. Entre na sua conta, escolha **Somente leitura** ou **Leitura e registro de transações** (necessário para registrar, editar ou excluir transações) e aprove. A CLI então mostra a sua conta e guarda o login no chaveiro do sistema: Keychain no macOS, Gerenciador de Credenciais no Windows, Secret Service no Linux. O login se renova sozinho; veja [Login do Visor CLI](https://docs.visorfinance.app/pt-BR/authentication.md#login-do-visor-cli).

```bash theme={null}
visor auth login --no-browser   # mostra o endereço da página de login em vez de abrir o navegador
visor whoami                    # quem está logado, como, e o espaço em que os comandos agem
visor doctor                    # confere a versão da CLI, o login, a API e o espaço
visor auth logout               # remove o login guardado
```

O login aparece como **Visor CLI** em [Configurações > Apps Conectados](https://dashboard.visorfinance.app/settings/connected_apps). Revogue lá para encerrar o login em todas as máquinas.

### Sem navegador

Em um servidor ou na CI, crie um token pessoal em [Configurações > Apps Conectados](https://dashboard.visorfinance.app/settings/connected_apps) e entregue à CLI:

```bash theme={null}
visor auth login --with-token < token.txt   # ou cole o token quando ele for pedido
export VISOR_TOKEN="visor_pat_..."           # ou defina para um shell ou job
```

`VISOR_TOKEN` tem prioridade sobre o login guardado. Veja [Autenticação](https://docs.visorfinance.app/pt-BR/authentication.md).

## Comandos do dia a dia

```bash theme={null}
visor spaces list
visor spaces use Pessoal                  # o espaço em que os outros comandos agem
visor overview                            # saldos, o período atual e a projeção

visor accounts list
visor categories list
visor tx list --from 2026-10-01 --category Groceries

visor tx add --amount 42,90 --description Padaria --category Groceries --account Nubank
visor tx edit TRANSACTION_ID --category Restaurants --tag viagem
visor tx delete TRANSACTION_ID            # pergunta antes; --yes pula a pergunta

visor cards list
visor subscriptions list
visor goals list
```

* Contas, categorias, tags e espaços aceitam um nome ou um ID. Uma categoria do sistema também aceita a chave sem o prefixo `category.`, como `food_and_drinks`.
* `--space` escolhe o espaço de um comando. Sem ele, a CLI usa o espaço de `visor spaces use` e, depois, o seu espaço pessoal padrão.
* Valores são decimais positivos, como `42.90` ou `42,90`. `--type debit`, o padrão, registra uma saída; `--type credit` registra uma entrada.
* `visor tx add` envia um `Idempotency-Key` e mostra o valor. Rode o comando de novo com `--idempotency-key` e essa chave para tentar outra vez sem registrar duas vezes. Veja [Idempotência](https://docs.visorfinance.app/pt-BR/idempotency.md).

Rode `visor --help`, ou `--help` depois de qualquer comando, para ver todas as opções.

## Envie um Pix

```bash theme={null}
visor pix maria@example.com 20,00 -d Almoço      # pergunta onde confirmar e espera
visor pix 11987654321 50 --key-type phone --bank Nubank
visor pix 123.456.789-09 20 --qr                 # confirme no celular: mostra um QR code
visor pix maria@example.com 20 --open            # confirme neste computador: abre o navegador
visor pix maria@example.com 20 --no-wait --json  # mostra o Pix e o link, e sai
visor pix status PIX_PAYMENT_ID                  # consulta um Pix que você iniciou
```

`visor pix` inicia um Pix e mostra a página em que você o confirma com biometria no seu banco; nada é pago antes disso. No terminal, a CLI pergunta onde você vai confirmar: neste computador (ela abre a página) ou no celular (ela mostra a página como QR code). O primeiro Pix de um banco vincula o banco antes. Depois a CLI espera até o Pix ser pago e mostra o ID end-to-end, ou falha com o código de saída `5` quando o Pix falha, é cancelado ou expira. Ctrl+C para de esperar, não cancela o Pix.

* O Pix precisa do plano Pro (10 Pix por mês) ou Premium (30) e do login pelo navegador. Na primeira vez, `visor pix` abre o navegador para você autorizar o Pix e troca o login guardado pelo novo. Um token pessoal ou o `VISOR_TOKEN` não inicia Pix.
* Sem `--bank`, o Visor usa o único banco que você já vinculou. Senão, no terminal, a CLI pergunta qual banco; num script, o erro lista os bancos que você pode passar em `--bank`. Uma chave que pode ser CPF ou celular funciona do mesmo jeito, com `--key-type cpf` ou `--key-type phone`.
* O vínculo com o banco fica no aparelho que o criou. Para confirmar em outro aparelho (a página do banco diz "Dispositivo não reconhecido"), passe `--link-device`: esse aparelho vincula o banco antes e depois confirma.

## Scripts

`--json` imprime o corpo da resposta da API sem mudanças, então os campos são os da [referência da API](https://docs.visorfinance.app/api-reference/spaces/list-accessible-spaces.md). Os dados vão para a saída padrão; avisos e erros vão para a saída de erro.

```bash theme={null}
# Exporta um ano de transações para um arquivo JSON Lines
visor tx list --from 2026-01-01 --to 2026-12-31 --all --json | jq --compact-output '.data[]' > transactions.jsonl
```

Uma listagem retorna até `--limit` resultados (50 por padrão) e busca as páginas de que precisa. `--all` segue cada `next_cursor`, e `--after` continua a partir de um cursor. A CLI espera o `retry-after` em um `429` e tenta de novo respostas `5xx`, dentro dos [limites de requisição](https://docs.visorfinance.app/pt-BR/rate-limits.md).

### Códigos de saída

| Código | Significado |
| - | - |
| `0` | Sucesso |
| `1` | Outra falha, um check do `visor doctor` que falhou, ou uma versão nova encontrada por `visor update --check` |
| `2` | Uso inválido, como uma opção ou um nome de categoria que não existe |
| `3` | Sem login, ou a API respondeu `401` ou `403` |
| `4` | A API respondeu `404` |
| `5` | A API recusou a requisição (`400`, `409` ou `422`), ou um Pix falhou, foi cancelado ou expirou |
| `6` | Limite de requisições, erro de rede ou Visor indisponível |

### Variáveis de ambiente

| Variável | Efeito |
| - | - |
| `VISOR_TOKEN` | Token usado no lugar do token guardado |
| `VISOR_SPACE` | Nome ou ID do espaço, como `--space` |
| `VISOR_CREDENTIAL_STORE` | `file` guarda o token na pasta de configuração, legível só por você, em máquinas sem chaveiro |
| `VISOR_CONFIG_DIR` | Pasta de configuração. O padrão é `~/.config/visor`, ou `%APPDATA%\visor` no Windows |
| `BROWSER` | Comando que abre um endereço, no lugar do padrão do sistema |
| `NO_COLOR` | Desliga as cores |
| `VISOR_NO_UPDATE_NOTIFIER` | `1` desliga a checagem de versão nova: o aviso e as atualizações automáticas (os dois já ficam desligados na CI e em pipes) |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.