Pular para o conteúdo

Arquivos de configuração

Toda config do httui é TOML puro. Essa página é a referência de schema pra cada arquivo.

Uma tabela [connections.<name>] por conexão. O <name> é o sufixo nas linguagens de fence de bloco DB — [connections.local] torna db-local válido.

[connections.local]
type = "sqlite"
path = "./scratch.sqlite" # relativo à raiz do vault, ou absoluto
KeyTipoObrigatórioNotas
typestringsim"sqlite"
pathstringsimArquivo auto-criado na primeira execução
[connections.pg-staging]
type = "postgres"
host = "pg-staging.acme.local"
port = 5432
database = "payments"
user = "{{keychain:pg-staging:user}}"
password = "{{keychain:pg-staging:password}}"
ssl_mode = "require"
search_path = ["public", "billing"]
KeyTipoObrigatórioNotas
typestringsim"postgres"
hoststringsimHostname ou IP
portintnão (default 5432)
databasestringsimNome do DB
userstringsimUsername; comumente {{keychain:...}}
passwordstringsimSenha; comumente {{keychain:...}}
ssl_modestringnão (default "prefer")disable, allow, prefer, require, verify-ca, verify-full
search_pathstring[]nãoSET search_path = ... em cada query
[connections.mysql-stage]
type = "mysql"
host = "mysql-stage.acme.local"
port = 3306
database = "billing"
user = "{{keychain:mysql-stage:user}}"
password = "{{keychain:mysql-stage:password}}"
KeyTipoObrigatórioNotas
typestringsim"mysql"
host, port, database, user, passwordigual a postgres
ssl_disabledboolnãotrue pra pular SSL

{{keychain:<scope>:<key>}} resolve em runtime pra um valor guardado no keychain do SO sob httui::<scope>::<key>. Veja Guarde secrets pro fluxo de setup.

Um arquivo por ambiente. O nome do arquivo (menos .toml) é o nome do env visível no seletor da TopBar.

envs/staging.toml
[vars]
BASE_URL = "https://staging-api.example.com"
TIMEOUT_MS = 30000
ADMIN_TOKEN = "__KEYCHAIN__" # valor no keychain
LOG_LEVEL = "info"
[meta]
description = "Ambiente de staging — aponta pro cluster acme-staging"
color = "#f4be4f" # cor do pill da TopBar
SeçãoObrigatóriaNotas
[vars]simTabela flat key-value. Keys referenciadas como {{KEY}} (sem pontos) em qualquer bloco
[meta]nãoMetadata opcional pra UI
[meta].descriptionnãoTooltip no seletor de env
[meta].colornãoCor hex pro pill de env

Qualquer valor marcado secret na UI do Environment manager escreve __KEYCHAIN__ como sentinela aqui. O valor real vive no keychain do SO sob httui::env::<env-name>::<key>.

envs/staging.local.toml sobrescreve keys de envs/staging.toml:

# envs/staging.local.toml (gitignored)
[vars]
BASE_URL = "http://localhost:15432" # seu túnel SSH

Ordem de merge: .toml compartilhado primeiro, depois keys de .local.toml sobrescrevem. Overrides por máquina pra túneis e DBs de dev.

Preferências de UI dessa máquina.

[ui]
theme = "dark" # dark | light | auto
vim_mode = false
sidebar_width = 280
chat_panel_open = false
git_side_panel_open = true
git_commit_template = "{{notes}}\\n\\n{{count}} files · {{date}}"
[editor]
font_size = 14
font_family = "Geist Mono"
tab_size = 2
[chat]
sidecar_path = "auto" # ou path absoluto
default_cwd = "vault" # vault | last-used | <path>

A maioria das keys também é editável via painéis de Settings — user.toml é o backing persistido.

.httui/workspace.toml (raiz do vault, geralmente commitado)

Seção intitulada “.httui/workspace.toml (raiz do vault, geralmente commitado)”

Estado do editor da última run. Veja Layout do vault → workspace.toml.

active_file = "runbooks/auth-flow.md"
active_env = "staging"
[panes]
layout = "horizontal"
ratio = 0.5
[[panes.left.tabs]]
file = "runbooks/auth-flow.md"
[[panes.right.tabs]]
file = "runbooks/db-checks.md"
  • Comentários com # — preservados na leitura/escrita.
  • Ordem preservada — quando o httui reescreve um arquivo, ele mantém seu layout a não ser que reformatação seja solicitada.
  • Escape de string — TOML padrão. Use """triple""" pra valores multi-linha (raro).
  • Date/time — formato datetime nativo do TOML (2026-06-06T14:30:00Z).

Ambos são first-class. Você pode:

  • Usar o Environment manager + form de Connection pra escrever pela UI.
  • Editar à mão connections.toml em qualquer editor; o file watcher do httui pega as mudanças e recarrega.

Se os dois acontecerem ao mesmo tempo (write da UI + edit externo), você vai ganhar o banner de conflito e escolhe qual versão ganha.

SintomaCausaCorreção
”Connection X not found” num bloco db-X[connections.X] faltando ou typoCheque connections.toml; recarregue via TopBar
Env switcher mostra nadaSem arquivos envs/*.tomlCrie um — até um [vars] vazio funciona
{{KEY}} resolve literalEnv ativo não tem a keyAdicione em envs/<active>.toml ou override .local.toml
Erro de parse de TOML no startupErro de sintaxe num configCheque o banner de erro; linha/coluna inclusas