Skip to main content
O Bruno é um cliente HTTP open-source que armazena requests como arquivos .bru de texto puro. Isso significa que você versiona sua collection junto com o código do projeto no Git, sem depender de nuvem ou conta em serviço externo.

Por que Bruno

Git-friendly

Cada request é um arquivo .bru — legível, diffável e versionável como qualquer outro arquivo do projeto.

Open-source

Código aberto, sem coleta de dados. Funciona 100% offline.

GUI + CLI

Interface gráfica para uso manual e CLI (@usebruno/cli) para rodar em pipelines de CI/CD.

Sem sincronização forçada

Não existe “conta Bruno”. Você controla onde os arquivos ficam.

Instalação

Baixe o instalador para macOS, Windows ou Linux em usebruno.com/downloads.

Download da collection

Baixe o arquivo ZIP com a collection:

timely-ai.bruno.zip

Collection completa com todos os endpoints em formato .bru, pronta para abrir no Bruno.

Importar e abrir

1

Extrair o ZIP

Extraia o arquivo timely-ai.bruno.zip em uma pasta do seu projeto (sugerido: ./bruno/timely-ai/).A estrutura de pastas vai ser:
timely-ai/
├── environments/
│   └── production.bru
├── system/
│   ├── health.bru
│   └── me.bru
├── agents/
│   ├── list-agents.bru
│   ├── create-agent.bru
│   └── ...
├── contacts/
├── conversations/
├── channels/
└── webhooks/
2

Abrir no Bruno GUI

No Bruno, clique em Open Collection e selecione a pasta timely-ai/. A collection inteira vai aparecer na barra lateral.
3

Configurar o environment

Abra o arquivo environments/production.bru. Ele tem a seguinte estrutura:
vars {
  base_url: https://api.timelyai.com.br
  api_key:
}
Preencha o valor de api_key com sua chave. Como este arquivo pode conter dados sensíveis, adicione-o ao .gitignore ou use a funcionalidade de variáveis secretas do Bruno.
4

Selecionar o environment

No canto superior direito do Bruno, selecione production no dropdown de environments.

Estrutura de um arquivo .bru

Cada request é um arquivo de texto simples. Exemplo do system/health.bru:
meta {
  name: Health Check
  type: http
  seq: 1
}

get {
  url: {{base_url}}/v1/health
  body: none
  auth: none
}

headers {
  x-api-key: {{api_key}}
  Content-Type: application/json
}

assert {
  res.status: eq 200
  res.body.status: eq ok
}
O bloco assert é executado automaticamente após a resposta — se o status não for 200 ou o campo status não for "ok", o Bruno marca o teste como falho.

Primeiro teste

Abra system/health.bru e clique em Run. A resposta esperada é:
{
  "status": "ok",
  "version": "1.0.0"
}
O painel de asserts vai mostrar os dois checks em verde se tudo estiver correto.

Rodar a collection via CLI (CI/CD)

# Rodar todos os requests da collection
bru run ./bruno/timely-ai/ --env production

# Rodar apenas uma pasta
bru run ./bruno/timely-ai/system/ --env production

# Saída em formato JUnit para CI
bru run ./bruno/timely-ai/ --env production --reporter junit --output results.xml
Adicione bru run ./bruno/timely-ai/ --env production como step no seu pipeline de CI para fazer smoke test automático após cada deploy.

Versionar a collection

Com o Bruno, versionar é direto:
git add bruno/timely-ai/
git commit -m "feat: adiciona collection Bruno da Timely.ai API"
Qualquer membro do time pode clonar o repositório e abrir a collection imediatamente, sem precisar importar arquivos externos ou criar conta em serviço algum.