# Download Bruno

> Opensource IDE For Exploring and Testing API's (lightweight alternative to Postman/Insomnia)

- Canonical page: https://everyversion.net/bruno/
- Publisher: Anoop M D
- Latest: Windows 4.3.0, macOS 4.3.0 (Windows build released 2026-10-22)
- Platforms: Windows, macOS
- License: MIT (https://github.com/usebruno/bruno/blob/HEAD/license.md)
- Price: Free and open source
- Website: https://www.usebruno.com/
- Support: https://www.usebruno.com/support

- winget ID: Bruno.Bruno
- Homebrew cask: bruno
- Verification: level 1 — Hashes re-computed from the publisher’s download: 8 of 8 installers match the upstream manifest. Checked by Cristian Gonzalez Guasch.
- Source (Windows): winget-pkgs @ daa8e01ceef83af56e6a91c8cb96a24bf9cef073 — https://github.com/microsoft/winget-pkgs/tree/daa8e01ceef83af56e6a91c8cb96a24bf9cef073/manifests/b/Bruno/Bruno
- Source (macOS): Homebrew cask @ 22c8896870af32f439206f991b2b6b9b281dafa6 — https://github.com/Homebrew/homebrew-cask/blob/22c8896870af32f439206f991b2b6b9b281dafa6/Casks/b/bruno.rb

## Overview

Bruno is a fast, Git-friendly, and open-source API client, aimed at revolutionizing the status quo represented by Postman, Insomnia and similar tools out there.

Bruno stores your collections directly in a folder on your filesystem.
We use a plain text markup language, Bru, to save information about API requests.

You can use git or any version control of your choice to collaborate over your API collections.

Bruno is offline-only. There are no plans to add cloud-sync to Bruno, ever.

## Windows

### What the installer does
- Delivered as an NSIS (Nullsoft) setup program (.exe) for x64 and ARM64, a Windows Installer package built with WiX (.msi) for x64 and ARM64, and a ZIP archive that is unpacked containing a portable program that runs without being installed for x64 and ARM64.
- The manifest does not state an install scope.

### Versions (newest first)

#### 4.3.0 — 2026-10-22

- x64 nullsoft: bruno_4.3.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v4.3.0/bruno_4.3.0_x64_win.exe
  - sha256: e1149fba7def0bd5b9654d745c769a16e62212e2683c5a6523807262b369c3c3
- x64 wix (machine): bruno_4.3.0_x64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v4.3.0/bruno_4.3.0_x64_win.msi
  - sha256: 551768b18db4232133511d2422c4a407c40f7867dac001368ed8eafb2cee1efa
- x64 zip: bruno_4.3.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v4.3.0/bruno_4.3.0_x64_win.zip
  - sha256: d00a649e0120168f26b630aa3253c36f2fdc9a84b1a13ff6fd96abc48f7be3f0
- arm64 nullsoft: bruno_4.3.0_arm64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v4.3.0/bruno_4.3.0_arm64_win.exe
  - sha256: a1c597934896c2527c0da2f5b0036e95611bf7c1ce37c622c205ebbe71e01e0b
- arm64 wix (machine): bruno_4.3.0_arm64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v4.3.0/bruno_4.3.0_arm64_win.msi
  - sha256: ddad602a0c2a02ab1828aba9fe16ad14ce9b6945921ad9a470abe6b4ae7b0a4c
- arm64 zip: bruno_4.3.0_arm64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v4.3.0/bruno_4.3.0_arm64_win.zip
  - sha256: e8a96171dd88fdd2dbee98deb7a3c869537e986f5984dfb63b87d6a891302189
Release notes: Changelog Features - feat(converter): enhance OAuth2 token handling in processAuth function by @sanish-bruno in #9454 - feat(runner): store runner payloads in the file store by @chirag-bruno in #9408 - feat(sqlite-file): add a file store to the SQLite SDK by @chirag-bruno in #9405 - feat(openapi): revamp Create OpenAPI spec Modal by @adwait-bruno in #9302 - feat: show keyboard shortcut hints in menus by @lohit-bruno in #9426 - feat: add unresolved variables info card by @prateek-bruno in #9401 - feat(benchmark): utils to measure over checkpoints, spans, and also drain them by @sid-bruno in #9292 - feat(response-examples): implement "Try" functionality for response examples by @abhishekp-bruno in #9342 - feat: open sidebar openapi specs as workspace tabs by @sachin-bruno in #9291 - feat(sidebar): adds debounce on sidebar search by @sachin-thakur-bruno in #9045 - feat(bruno-sqlite): move cache collection fetch to bruno-sqlite by @shubh-bruno in #9195 - feat(preferences): design update for general settings page by @sachin-thakur-bruno in #9056 - feat: force close db by @sid-bruno in #9335 - feat(wsdl): resolve schemaLocation references to external XSD files by @gopu-bruno in #9327 - feat(tags): add folder-level tags with inheritance by @morsh-bruno in #9253 - feat(theme): add Dracula dark theme by @Ayce45 and @lohit-bruno in #7815 - feat(theme): add gruvbox dark/light (+variants) by @taylrfnt in #8153 - feat(ui): Add Cyberdream light and dark themes by @byt3m4st3r in #8877 - feat(sidebar): virtualize sidebar nested items by @sachin-thakur-bruno in #9190 - feat(scripts): enhanced pre-request scripts handling with environment variable interpolation and added tests by @sharan-bruno in #9164 - feat(CLI): added interpolation for digest auth credentials and corresponding tests by @sharan-bruno in #9156 - feat(headers): show collection and folder headers in the inherited accordian by @pooja-bruno and @sachin-thakur-bruno in #9129 - feat(sidebar): optimize multi-select drag state logic by @Gopi-bruno in #9202 - feat(runner): build run reports from the stored file payloads by @chirag-bruno - feat(secret-manager): fetch external secrets just in time by @prateek-bruno - feat(ai): show hint for org disabled providers by @gopu-bruno - feat(UI): Improve visibility of long variable values in the variables table by @sharan-bruno - feat(git): fix BranchSelector to support remote branches and improve branch handling by @naman-bruno - feat(secret-manager): move external secret values from disk to in-memory storage by @prateek-bruno - feat(license): mask license key in license settings by @Gopi-bruno - feat(git): add branch selection to workspace clone dialog by @gopu-bruno Fixes - fix(flatpak): fix git not found issue in flatpak package by @Pragadesh-45 and @sid-bruno in flathub#129 - fix: adding mock server to test by @utkarsh-bruno in #9503 - fix: adding permission request handler on apps by @utkarsh-bruno in #9470 - fix(export-zip): make ignoredDirectories check case-insensitive by @prateek-bruno in #9480 - fix(preferences): auto save delay error check by @sachin-thakur-bruno in #9472 - fix: retry git metadata dir remove by @prateek-bruno in #9473 - fix: match form-urlencoded and multipart media types, ignoring params and case by @lohit-bruno in #9425 - fix: ensure we're not importing / exporting .git directory by @prateek-bruno in #9430 - fix(wsdl): include xs:any and xs:group in generated request bodies by @gopu-bruno in #9429 - fix: file cache on makes doesn't respect the ignored folders by @utkarsh-bruno in #9344 - fix(workspaces): allowed duplicate workspace names, enforcing uniqueness on the filesystem path instead by @ravindra-bruno in #9392 - fix(wsdl): fix choice option count when elements are grouped by @gopu-bruno in #9409 - fix(runner): bru runner stopExecution should halt the entire run by @sharan-bruno in #9285 - fix(ui): preferences Request Timeout warning message streamlined by @abhidev-bruno in #9406 - fix(ui): responsive runner toolbar UI by @morsh-bruno in #9338 - fix(runner): unable to keep the scroll in top while checking Collection Runner iteration summary of each run by @sharan-bruno in #9396 - fix: measure total response time instead of TTFB (#7594) by @pkrisko and @lohit-bruno in #7628 - fix(headers): default disable headers import by @pooja-bruno in #9329 - fix(sidebar): drag and drop request and folders by @sachin-thakur-bruno in #9364 - fix(environment): name column resize in environemnt table by @sachin-thakur-bruno in #9341 - fix(app): run app guests in a secure context (#8838) by @sid-bruno in #9311 - fix: honor ignore paths on initial collection scan (#9204) by @sachin-thakur-bruno in #9333 - fix(autocomplete): stopped invalid ghost text in script editors by @ravindra-bruno in #9287 - fix(certificates): update certificate type mappings from 'pem'/'pkcs12' to 'cert'/'pfx' in conversion functions and tests by @abhishekp-bruno in #9274 - fix(OpenAPI): OpenAPI spec creation not working by @sachin-bruno in #9191 - fix(sidebar): align API spec row styling with collection rows by @adwait-bruno in #9178 - fix: add missing runtime dependencies for pnpm strict mode by @aritradhabal in #8099 - fix(mock-server): fixed Delay and Duration columns overlapping in the mock server request log by @ravindra-bruno in #9256 - fix(response-pane): enhanced script error message handling by @abhishekp-bruno in #9254 - fix(generate-code): double cookie in generate code when libcurl is selected by @sachin-thakur-bruno in #9271 - fix(migration): improve pm.sendRequest with arrow expression callback translation by @abhishekp-bruno in #9171 - fix(migration): keep the call wrapping a response member in pm.sendRequest callbacks by @abhishekp-bruno in #9162 - fix(opencollection): preserve multipart form content-type on import and export by @sundram-bruno in #9155 - fix(generate-code): generate code cookie header deduplication by @Gopi-bruno in #9159 - fix(sidebar): open the file rename modal from the rename shortcut on JS files by @lohit-bruno - fix(api-spec): Exporting a collection doesn't open the created spec automatically in the viewer with its tab by @sachin-bruno - fix(ui): improve column width calculation for dynamic data by @sharan-bruno - fix: added app distinctID to trial-to-paid flow by @ankit-bruno - fix(license): increased the width of license key as we are using uuidv4 by @sachin-thakur-bruno - fix(import-export): include external secrets in OpenCollection environment while exporting by @sharan-bruno - fix(sidebar): restore bruno.json drag guard and fix multi-select drag… by @Gopi-bruno - fix(git): keeping a deleted-file conflict no longer empties the request by @ravindra-bruno Others - test(workspaces): asserted the header reads My Workspace after closing the active workspace by @ravindra-bruno in #9489 - fix(docs): add link for the hindi readme translation to all readme pages by @alanansari in #9149 - test(safe-mode): use localhost testbench in Prod env for CI by @pooja-bruno in #9469 - test: Added stubbed test for TC-1011, refactored TC-3213 by @shivang-bruno in #9109 - refactor(sqlite): replace renderer hooks with per-statement IPC by @chirag-bruno in #9421 - chore: update coderabbit instructions for feature parity by @bijin-bruno in #9390 - chore: update the outdated contributing guide by @bijin-bruno in #9388 - chore(claude): co-related features and parity rules by @bijin-bruno in #9384 - test(cli): add test for isSafeMode by @pooja-bruno in #9340 - refactor: generalize error occured text and code by @prateek-bruno in #9348 - chore: add status-new label to issue templates by @aditya-bruno in #9355 - chore(builds): force terser plugin configuration to utilize available CPU cores by @sid-bruno in #8907 - docs(claude): add the sqlite sdk rule by @chirag-bruno in #9255 - chore(sidebar-tests): added sidebar e2e tests for search, collapse and scroll into vie on active tab by @sachin-thakur-bruno in #8891 - ui(auth): show inherited auth fields as read-only and link to the source by @pooja-bruno in #9281 - ui(auth): move request auth mode selector below the tabs fits by @pooja-bruno in #9222 - test: added manage workspace tests TC-2611, TC-2612, TC-3275, TC-6086 by @shivang-bruno in #9068 - fix(tests): update folder tags integration tests to strip file extension by @sanish-bruno in #9304 - fix(bruno-tests): migrate secret manager config by @pooja-bruno - fix: adding license guard for duplicate workspace tests by @utkarsh-bruno - fix: tests turn a license-server outage into a green skip by @utkarsh-bruno - fix: unblock windows unit tests by @prateek-bruno - test(ai): add e2e for ai provider disabled hint by @gopu-bruno - chore: update feature parity rules for ee by @bijin-bruno - chore: lint fixes from sync by @sid-bruno New Contributors - @shivang-bruno made their first contribution in #9068 - @lokesh-bruno made their first contribution in #9176 - @alanansari made their first contribution in #9149 - @aritradhabal made their first contribution in #8099 - @byt3m4st3r made their first contribution in #8877 - @taylrfnt made their first contribution in #8153 - @Ayce45 made their first contribution in #7815 - @aditya-bruno made their first contribution in #9355 - @pkrisko made their first contribution in #7628 - @abhidev-bruno made their first contribution in #9406

Pin: `winget install --id Bruno.Bruno --version 4.3.0 --exact`

#### 4.2.1 — 2026-09-30

- x64 nullsoft: bruno_4.2.1_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v4.2.1/bruno_4.2.1_x64_win.exe
  - sha256: 80b0dc5fb89debbe2968f15d27b261c198f58fa26b21ff7e0424fde99a69e79d
- x64 wix (machine): bruno_4.2.1_x64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v4.2.1/bruno_4.2.1_x64_win.msi
  - sha256: 28856d1f7d6d5ad50b1f5c5768c4f0934a1819e834030369791462ec4d7f573e
- x64 zip: bruno_4.2.1_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v4.2.1/bruno_4.2.1_x64_win.zip
  - sha256: 691d7475234e8399c6a1127e7a5e01ccdd479de4561f93e2cdf126c3b6c11b86
- arm64 nullsoft: bruno_4.2.1_arm64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v4.2.1/bruno_4.2.1_arm64_win.exe
  - sha256: 284f357a31945737fd80bb116701e27aecd320f0f58e4e3fdfe3170b4e3087f1
- arm64 wix (machine): bruno_4.2.1_arm64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v4.2.1/bruno_4.2.1_arm64_win.msi
  - sha256: 9c5d62616298b977fd73ff765dcf04b4b80c2916db5047e7c895ccdbabbf9d9b
- arm64 zip: bruno_4.2.1_arm64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v4.2.1/bruno_4.2.1_arm64_win.zip
  - sha256: 651c6e21900786cb44ef3eb6ee047d5f75ce10813937dbaa5f5806555246719a
Release notes: Security - security: resolve real path in QuickJS sandbox by @prateek-bruno in #9226 Local module paths are now resolved to their real path in the QuickJS runtime, preventing scripts from reaching files outside the intended location (e.g. via symlinks or path tricks). Credits to @wpframe for reporting this. - security: stop exposing __brunoLoadLocalModule to scripts by @prateek-bruno in #9277 Internal module loader is no longer accessible from user scripts, reducing the sandbox's attack surface. Credits to @wpframe for reporting this. We recommend all users upgrade to this release.

Pin: `winget install --id Bruno.Bruno --version 4.2.1 --exact`

#### 4.2.0 — 2026-09-23

- x64 nullsoft (machine): bruno_4.2.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v4.2.0/bruno_4.2.0_x64_win.exe
  - sha256: 02cba006b3ab60fd17a33e97719dbeec4806014a523ef695a54e6d87be9035b0
- x64 nullsoft (user): bruno_4.2.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v4.2.0/bruno_4.2.0_x64_win.exe
  - sha256: 02cba006b3ab60fd17a33e97719dbeec4806014a523ef695a54e6d87be9035b0
- x64 wix (machine): bruno_4.2.0_x64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v4.2.0/bruno_4.2.0_x64_win.msi
  - sha256: cdd0ba8a0f9bc1862f26adaa6b6fbbba7924cb2fb570218a6b9385c476f6b805
- x64 zip: bruno_4.2.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v4.2.0/bruno_4.2.0_x64_win.zip
  - sha256: 75c82e04e4a04edae3696f43338a4d995a1ce0459cf2a832aeae2387d571929b
- arm64 nullsoft: bruno_4.2.0_arm64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v4.2.0/bruno_4.2.0_arm64_win.exe
  - sha256: 9444dd83f0d708b40e0a59e2dc709c4df3a88a07ac41759b2f1990586f87974b
- arm64 wix (machine): bruno_4.2.0_arm64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v4.2.0/bruno_4.2.0_arm64_win.msi
  - sha256: 1b3e01507b8785f6d9780e91d21df19135d4802e96694af0674cce038deaa91a
- arm64 zip: bruno_4.2.0_arm64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v4.2.0/bruno_4.2.0_arm64_win.zip
  - sha256: 9f343fd5e9a21b2418727f08e43575836b5172491ed31ff03cd834c8752ddd63
Release notes: Changelog Features - feat(sidebar): support multi-select for request examples by @Gopi-bruno in #9225 - feat(environments): collection and workspace environments inheritance by @lohit-bruno in #9136 - feat(environment): redesign multi environment modal by @sachin-thakur-bruno in #9179 - feat(cli): Generate docs through cli by @sachin-bruno in #9073 - feat(grpc): add scripting support by @morsh-bruno in #9144 - feat(preferences): support page redesign by @sachin-thakur-bruno in #9064 - feat(runtime): expose __dirname, __filename within scripting context by @sanish-bruno in #9101 - feat(response-example): support previewing pdf images and videos for 'save responses' by @abhishekp-bruno in #9000 - feat(checkbox): adds checkbox component in ui with story and unit tests by @sachin-thakur-bruno in #8861 - feat(preferences): add docs URL for Mock Server by @naman-bruno in #9142 - feat(code-editor): degraded editor and status bar by @barelyhuman and @sid-bruno in #8867 - feat: add multi-selection state for collections (#6339) by @sid-bruno in #8721 - feat(generate-docs): advanced filtering options in generate documentation flow by @sachin-bruno in #9072 - feat(app): open response URLs as transient requests (#8189) by @sid-bruno in #8850 - feat(pm-migration): handle pm.sendRequest promise chains by @abhishekp-bruno in #8960 - feat(mock): CreateMockServerModal with source type selection and sync option by @naman-bruno in #9110 - feat(variables): add scope-aware variable creation (#8665) by @sid-bruno and @sachin-thakur-bruno in #8852 - feat(env): multi environment import failure if one file is invalid by @Gopi-bruno in #9051 - feat(headers): show default headers and support omitting them per request by @pooja-bruno in #8990 - feat(app): replaced the placeholder app with a learn-more empty state and labelled app items as App by @ravindra-bruno in #9100 - feat(env): handle environment name conflicts during import with replace or copy by @Gopi-bruno in #9050 - feat(query-editor): add code mirror search and replace in query editor by @sachin-thakur-bruno in #9042 - feat(translator): add global variable translation methods for Postman to bruno conversion by @sanish-bruno in #9098 - feat(filesystem): decouple display names from filesystem names & resolve collisions silently by @sachin-thakur-bruno in #8714 - feat(yml-migration): strip .bru extension from runRequest calls by @naman-bruno in #9055 - feat(app): support for app drafts in migration and save requests modal by @naman-bruno in #9054 - feat(timeline): display headers in timeline request headers by @shubh-bruno in #8857 - feat(variables): revamp the read-only Variables tab by @pooja-bruno in #8784 - feat(storybook): upgrade storybook to rsbuild remove webpack as a dep by @sid-bruno in #9062 - feat(sidebar): add support for displaying and managing file items in the collection sidebar by @Gopi-bruno - feat(collection-docs): telemetry for advanced filtering options when generating docs by @sachin-bruno - feat(git): implement Create PR functionality by @naman-bruno and @utkarsh-bruno - feat(sidebar): adds naming collisions for js files by @sachin-thakur-bruno - feat(git): allow dismissing the branch guard banner till a session by @ravindra-bruno Fixes - fix(link-aware): revert click-to-open-request in editable fields by @shubh-bruno in #9201 - fix(scripts): show sent headers for sendRequest & runRequest by @shubh-bruno in #9215 - fix(nodevm): add --experimental-cache-modules to cache npm modules during script execution by @sid-bruno in #9170 - fix(mock-server): clearing validation errors on modal by @utkarsh-bruno in #9172 - fix(bruno-js): await async test() callbacks in developer mode by @shubh-bruno in #9081 - fix(app): labelled cloned items by type in the clone modal and toast by @ravindra-bruno in #9153 - fix(request): creating a new request from sidebar add request pre fils the preset url by @sachin-thakur-bruno in #9150 - fix(openAPI): multifile openAPI specs can be imported by @adwait-bruno in #8946 - fix(CLI): fixed junit reporters omit iterations and requests skipped due to bail by @sharan-bruno in #9080 - fix(collection-settings): save presets using shortcuts by @shubh-bruno in #9138 - fix(sqlite): write generated artifacts as TypeScript literals by @chirag-bruno in #8951 - fix(app): added clone option for app and name collission for app while creating by @sachin-thakur-bruno in #9133 - fix: openapi sync update by @adwait-bruno in #8979 - fix: use NtlmClient as an adapter of axios instance by @prateek-bruno in #9044 - fix(codemirror-search): add selected text to search input for replace shortcut by @sachin-thakur-bruno in #9090 - fix(mock server): collection/api spec now shows a default placeholder at the start by @utkarsh-bruno in #8963 - fix(lang): guard ntlm domain on domainKey, not passwordKey by @sbalagan22 in #8707 - fix(ui): prevent elapsed-time counter from resetting on tab switch by @Sudemc, @sharan-bruno in #9089 - fix: create example modal shows status text and body type by @utkarsh-bruno in #9082 - fix(datatype): Variable type validation flag reference mismatch issue by @sharan-bruno in #8878 - fix: fixing duplicate variables by @utkarsh-bruno in #9084 - fix(mock-server): restricting port numbers by showing errors by @utkarsh-bruno in #8964 - fix(mock server): adding request log in case of express failure because of response header too by @utkarsh-bruno in #9059 - fix(app): scoped mock server API spec options to the active workspace by @ravindra-bruno in #9077 - fix(theme): added missing border for light and dark theme by @sachin-thakur-bruno in #9071 - fix(scripting): preserve variables set in req.onFail by @Max-Reisinger and @sharan-bruno in #8873 - fix(XmlPreview): improve XML parsing error handling and return structure by @abhishekp-bruno in #8860 - fix(RequestTab): streamline transient request save confirmation logic by @sid-bruno in #8969 - fix(test): removed the backup assertion by @chirag-bruno in #9001 - fix: Prevent QuickJS disposal aborts in safe mode by @prateek-bruno in #8924 - fix(grpc): reflection cache to use resolved url as key, add gRPC test server by @sanish-bruno in #8832 - fix(converters): preserve enabled state for Env variables, collection variables for export, import by @ricciardelli and @sanish-bruno in #8918 - fix: remove the 50 cap on maxRedirects and normalise it on every read path by @prateek-bruno in #8855 - fix(mock-server): fix collapsed query params pane in mock response by @gopu-bruno in #8957 - fix: use correct key for vault in telemetry by @prateek-bruno - fix(environments): environment inheritance fixes by @lohit-bruno - fix: pass secret variables to grpc scripting by @morsh-bruno - fix: removing What is a Github repo link by @utkarsh-bruno - fix(autosave): remove incomplete external secrets rows from autosave flow by @abhishekp-bruno - fix: interpolate iteration data in assertion values by @abhishekp-bruno - fix(git): stop reloading the stash list on unrelated git refreshes by @ravindra-bruno - fix(reports): generated headers in reports by @shubh-bruno - fix(git): allow longer branch names and show a clear error message by @gopu-bruno - fix(git): mapped stash apply and unmerged index errors to readable messages by @ravindra-bruno - fix(packages): re-add cross platform optional native deps by @sid-bruno Others - fix(test): add dataTestId to delete collection item modal by @Gopi-bruno in #9141 - fix(deps): conflicting dependencies after sec update hoisting by @sid-bruno in #9029 - fix(unit-test): timeout for seeding 200 files on windows by @sachin-thakur-bruno in #9099 - fix(tests): websocket messages scroll flaky tests by @sachin-thakur-bruno in #9122 - feat(tests): add tests for app creation and management by @naman-bruno in #9124 - fix(test): cli test cases for windows by @shubh-bruno in #9161 - docs: project governance by @helloanoop in #8790 - chore(standards): update coding standards for call site specific clones by @sid-bruno in #9160 - perf(runner): remove redundant deep clones of the runner results tree by @chirag-bruno in #9151 - test(benchmark): added benchmark test suite for collection runner by @chirag-bruno in #9126 - chore: improve test comments by @helloanoop in #9139 - chore(bruno-to-postman): update comments to match current apis in bruno by @sanish-bruno in #9075 - chore(design-system): added border specific colors tokens for themes by @sachin-thakur-bruno in #8965 - ci: enable Windows Unit Tests by @prateek-bruno in #8673 - chore: update grpc-js library by @sid-bruno in #9053 - chore(eslint): added hooks dependecy dev by @sachin-thakur-bruno in #9034 - chore: update swagger-ui-react to version 5.32.14 by @sid-bruno in #9032 - test(cli): read the json report even if its one run or an array by @shubh-bruno in #8988 - test(opencollection): cover multipart after yml reload by @Max-Reisinger in #8938 - chore(deps): security cleanup by @sid-bruno in #8956 - refactor(mock): rename validation functions and improve error handling by @naman-bruno in #8954 - refactor(mock-server): remove updateMockDelay functionality by @naman-bruno in #8952 - test(benchmark): add runner allocation memory benchmark by @chirag-bruno - perf(runner): remove redundant deep clones of the runner results tree by @chirag-bruno New Contributors - @Sudemc made their first contribution in #8796 - @sbalagan22 made their first contribution in #8707 - @ricciardelli made their first contribution in #8681

Pin: `winget install --id Bruno.Bruno --version 4.2.0 --exact`

#### 4.1.0 — 2026-08-20

- x64 nullsoft (machine): bruno_4.1.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v4.1.0/bruno_4.1.0_x64_win.exe
  - sha256: c4fa1fd54be2328570858f13d28804278c9ec9a9f592fb4f71598476cb0e7623
- x64 nullsoft (user): bruno_4.1.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v4.1.0/bruno_4.1.0_x64_win.exe
  - sha256: c4fa1fd54be2328570858f13d28804278c9ec9a9f592fb4f71598476cb0e7623
- x64 wix (machine): bruno_4.1.0_x64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v4.1.0/bruno_4.1.0_x64_win.msi
  - sha256: ab9ba93ef1e4231673e299f57a8f54dc3cb9ce6466c92867d9fce3f3b2e7df0c
- x64 zip: bruno_4.1.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v4.1.0/bruno_4.1.0_x64_win.zip
  - sha256: 707e5b67c5ce14ea053396469ed7fb6771fbfc88b584073ca040165055ddecf5
- arm64 nullsoft: bruno_4.1.0_arm64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v4.1.0/bruno_4.1.0_arm64_win.exe
  - sha256: 4173419cf280b8655f6f6ad6aa1f56c608ddd7152bdac2666f218a511f24d6bc
- arm64 wix (machine): bruno_4.1.0_arm64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v4.1.0/bruno_4.1.0_arm64_win.msi
  - sha256: 5314446a52c8905c02738379494e653f6d420dbd72e62edcd9a354b490d9afd6
- arm64 zip: bruno_4.1.0_arm64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v4.1.0/bruno_4.1.0_arm64_win.zip
  - sha256: 0da16a911e24877427fc214874fc7a32be217b29e5d906dbd03172e356185d02
Release notes: Changelog Features - feat: Mock Server implementation by @utkarsh-bruno and @shubh-bruno in #8734 - feat(docs): Rich text docs editor by @Gopi-bruno in #8559 - feat(cli): add --global-env-var to override global environment variables at runtime by @abhishekp-bruno in #8620 - feat(client certs): add global client certs and allow disabling individual client certs. by @morsh-bruno in #8751 - feat(auth-headers): handling authorization header leaks to third party servers on redirect by @Gopi-bruno in #8380 - feat(envs): adding search filter to environment selector dropdown by @Gopi-bruno in #8277 - feat(environment): add default env to presets by @sachin-thakur-bruno in #8612 - feat: support drag-and-drop and alphabetical sorting for variables by @adwait-bruno in #8603 - feat: add sorting to the secrets tab as well by @adwait-bruno in #8871 - feat(collections): open multiple collections from a monorepo by @gopu-bruno in #8724 - feat(collections): add description text to open collection selection modal by @gopu-bruno in #8793 - feat(presets): updated presets design by @sachin-thakur-bruno in #8828 - feat(presets): updated dropdown with menu dropdown and label weight ux changes by @sachin-thakur-bruno in #8841 - feat(migrate): enhance migration modal to handle collection drafts by @naman-bruno in #8899 - feat: add migrate-to-YML pill to collection header by @naman-bruno in #8882 - feat(converters): add support for script execution flow in yml configuration by @naman-bruno in #8745 - feat: add preserve scripts option for Postman import/export by @gopu-bruno in #8726 - feat(snapshot): persisting sidebar state in the snapshot by @Gopi-bruno in #8328 - feat(code-mirror-search): add replace and replace-all with search position, debouncing and tests by @sachin-thakur-bruno in #8715 - feat(db): sqlite as a re-usable SDK for secondary queries by @chirag-bruno in #8533 - feat(request): warn when binary body file is missing on disk by @sanish-bruno and @rajashreehj-bruno in #8753 - feat(size/M): Default to no environments selected in the Generate Documentation modal by @sachin-bruno in #8785 - feat(ai): add focus for prompt input after AI response completion by @naman-bruno in #8747 - feat(secrets): add GCP Secret Manager support by @abhishekp-bruno - feat(git): implement Git remote operation modals and enhance branch selection UI by @utkarsh-bruno - feat(proxy): implement Git proxy environment configuration by @utkarsh-bruno - feat(git-providers): apply network config for git provider APIs by @gopu-bruno - feat(app/git): inform the user that edits are being made on protected branches by @sid-bruno - feat(workspace): warning about unsynced collections excluded from Fetch in Bruno embed by @ravindra-bruno - feat(license): report app version, OS, arch and telemetry id on licence calls by @hassan-bruno Fixes - fix(auth): stop AWS V4 auth headers from leaking on cross-origin redirects by @Gopi-bruno in #8893 - fix(secrets): block duplicate secret names to prevent value loss by @pooja-bruno in #8750 - fix(security): overflow on chip list styling by @naman-bruno in #8748 - fix(app): global environment variables for apps by @naman-bruno in #8900 - fix(app): re-add new request shortcut by @sid-bruno in #8805 - fix(workspace): stopped the same collection from rendering twice with conflicting status by @ravindra-bruno in #8947 - fix(workspace): showing only the remove option for the failed collection in workspace overview by @ravindra-bruno in #8932 - fix(workspace): notify about collections that fail to open in Workspa… by @ravindra-bruno in #8719 - fix(workspaces): switch to default workspace on close so header shows correct name by @ravindra-bruno in #8425 - fix(editor): fixed search and replace input border by @sachin-thakur-bruno in #8930 - fix(editor): tab indentation on code blocks by @sachin-thakur-bruno in #8926 - fix(editor): add guessed language in language dropdown picker by @sachin-thakur-bruno in #8925 - fix(editor): allow app keybindings if that keybindings is not present in rich text editor by @sachin-thakur-bruno in #8894 - fix(codemirror-search): keybinding for focusing search and replace inside the search container by @sachin-thakur-bruno in #8895 - fix(sidebar): prevent drag divider from disappearing on zoom-out by @gopu-bruno in #8266 - fix: OpenAPI Spec Viewer: throws resolver errors for $ref schemas by @arpit-bruno in #8892 - fix(openapi): strip trailing dots from operation names on import by @adwait-bruno in #8812 - fix: populate collection & folder docs on OpenAPI/swagger imports by @adwait-bruno in #8803 - fix(transient-request): unable to create transient request when preset is websocket by @chirag-bruno in #8889 - fix: cmd+w now works for transient tabs by @adwait-bruno in #8429 - fix: persist additional request values in preferences general tab save by @morsh-bruno in #8823 - fix(proxy): update timestamp label format by @abhishekp-bruno in #8870 - fix(ws): disable message queuing when in intermediate connection states by @sid-bruno in #8879 - fix(ws): remove auto-reconnect in websockets by @sid-bruno in #8605 - fix(ws): add height for ws msgs to fix search overlap by @sachin-thakur-bruno in #8814 - fix(mount): hydrate websocket message uids in the cached mount path by @chirag-bruno in #8862 - fix: change-version modal ui by @adwait-bruno in #8735 - fix: keep sort column header from shifting when the arrow appears by @adwait-bruno in #8833 - fix(generate-code): encode a literal colon in the path when url encoding is enabled by @pooja-bruno in #8834 - fix(generate-code): generate code for url interpolation by @pooja-bruno in #7308 - fix(presets): ux fixes for dropdown and icon spacing by @sachin-thakur-bruno in #8827 - fix: Description missing for the import export yml for the environments by @sachin-bruno in #8822 - fix: add dynamic font size adjustment for CodeMirror info display by @adwait-bruno in #8817 - fix(export/import): OpenCollection YAML drops collection and folder-level post-response variables by @sachin-bruno in #8815 - fix(node-vm): resolve npm modules from additionalContextRoots via native walk-up by @sanish-bruno in #8538 - fix(curl-import): treat inline --data-binary as body, not file by @pooja-bruno in #8617 - fix(dev-tools): console and network filter dropdown position to top if no space by @sachin-thakur-bruno in #8713 - fix(bruno-response): normalize response header name lookup to be case-insensitive by @abhishekp-bruno in #8461 - fix(runner): collection runner loader issue by @sharan-bruno in #8783 - fix: avoid network probe in PAC myIpAddress by @cyphercodes in #8588 - fix: url truncates in docs by @adwait-bruno in #8468 - fix: env configure remains visible by @adwait-bruno in #8530 - fix: Folder Sequencing When we try to move any folder at the bottom of the folders list by @ravindra-bruno in #8722 - fix(environment): auto save on env table removing some characters by @sachin-thakur-bruno in #8732 - fix(timeout): allow inherit request timeout for yaml requests by @shubh-bruno in #8746 - fix: binary body lost on importing from postman by @sanish-bruno and @rajashreehj-bruno in #8729 - fix(converters): add missing auth mappings on postman export, add additional parameters mapping on postman import by @morsh-bruno in #8494 - fix: failing test case fix by @utkarsh-bruno in #8801 - fix(git): fixing pac proxy and removing buildGitProxyEnv as the secondary proxy implementation by @utkarsh-bruno - fix(git): use primary color for create branch cta by @gopu-bruno - fix(git): update onClose to use handleBackToOverview by @naman-bruno - fix(proxy-util): enhance proxy environment configuration by @utkarsh-bruno - fix(GitHub): deduplicate instance URL save on OnBlur/Enter by @gopu-bruno - fix(GitHub): prevent redundant URL saves in GitHub configuration by @naman-bruno - fix: added Git submodule initialization and fetch for workspace collections by @ravindra-bruno - fix(workspace): written .gitmodules for git-synced collections so submodules resolve by @ravindra-bruno - fix(Embed): showing warning before sharing a workspace with unsynced changes by @ravindra-bruno - fix(doc-url): replaced Fetch In Bruno doc url for workspace embeding by @ravindra-bruno - fix(watcher): improve unlink logic to handle both formats by @naman-bruno - fix(external-secrets): correct external secret variables autocomplete duplicates and its variable-info scope by @lohit-bruno - fix: added a min and max height with an overflow to avoid the resizing based on the remotes fetched by @utkarsh-bruno - fix(openapi): export scheme-less request URLs as server entries by @adwait-bruno - fix(export): Postman export modal rendering in Share Collection by @gopu-bruno - fix(default-env): load env from file destructing by @sachin-thakur-bruno - fix(runner): Collection Runner - Loader still keeps running even after Cancelling the execution by @sharan-bruno - fix(UI): In Runner post execution "Run again" button is missing by @sharan-bruno - fix(collection-runner): disable runner in iterations count by @shubh-bruno Others - feat(tests): enhance Playwright configuration for sharded CI runs by @sid-bruno in #8742 - security(ipc): confine file-write handlers to known collections and api specs by @chirag-bruno in #8274 - refactor(ai): moved AI Assist from floating overlay into request pane and collection/folder settings tab bars by @ravindra-bruno in #8693 - refactor(ai): update API key handling in openai comp providers by @naman-bruno in #8749 - refactor(tests): update data type assertions to use data-selected-type attribute for consistency by @bijin-bruno in #8731 - yml migration rework by @naman-bruno in #8795 - reported how many collections failed to open on workspace load by @ravindra-bruno in #8831 - Added the ignore for the collection nested folders by @ravindra-bruno in #8725 - Added the fix for bru.runner.stopExecution() while running collection run from tests by @ravindra-bruno in #8720

Pin: `winget install --id Bruno.Bruno --version 4.1.0 --exact`

#### 4.0.0 — 2026-07-23

- x64 nullsoft (machine): bruno_4.0.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v4.0.0/bruno_4.0.0_x64_win.exe
  - sha256: 7d1cf8e604dd6321c5da0086a65097d93a41377bad08a6d966ffa30d62e6e24b
- x64 nullsoft (user): bruno_4.0.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v4.0.0/bruno_4.0.0_x64_win.exe
  - sha256: 7d1cf8e604dd6321c5da0086a65097d93a41377bad08a6d966ffa30d62e6e24b
- x64 wix (machine): bruno_4.0.0_x64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v4.0.0/bruno_4.0.0_x64_win.msi
  - sha256: 7b5d661b12f25d976725dab382bc682a609de93e4c979655bb0d8a5a48d74848
- x64 zip: bruno_4.0.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v4.0.0/bruno_4.0.0_x64_win.zip
  - sha256: fe5acbc0e9743553138fe33f1e4aebdf847b8d5f86cc4e01a6c4b926f11a4089
- arm64 nullsoft: bruno_4.0.0_arm64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v4.0.0/bruno_4.0.0_arm64_win.exe
  - sha256: 44523f1deddfe6a1ea6424c4ed2513204edb4cbe9c036a52d545d58a1ed16580
- arm64 wix (machine): bruno_4.0.0_arm64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v4.0.0/bruno_4.0.0_arm64_win.msi
  - sha256: 34e604fa2e5e73aa8b9b5b2f429c2c3ee5c4b093b48d5be2c23d51cbcccf5d7e
- arm64 zip: bruno_4.0.0_arm64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v4.0.0/bruno_4.0.0_arm64_win.zip
  - sha256: 840e07ac8e220cffa77b276b04636f267820fa81965c51d1abaf61f3a67b8a0e
Release notes: Changelog Features - feat(app): migrate ctx API to bru.ctx by @gopu-bruno in #8557 - feat(overview): show human-readable size for unloaded requests by @chirag-bruno in #8580 - feat(description): file binary description implementation by @sid-bruno in #8434 - feat(ai): AI model handling with reasoning support by @naman-bruno in #8539 - feat: variable descriptions by @sid-bruno in #8269 - feat(snapshot): implement active workspace tab type tracking by @sid-bruno in #8487 - feat: Added the option for bruno version edit in the collection overview by @sachin-bruno in #8424 - feat(auth): akamai auth integration by @shubh-bruno in #8199 - feat(ai): add security preferences management to AI settings by @naman-bruno in #8453 - feat: Added collection name and minor UI changes to the generate doc modal by @sachin-bruno in #8391 - feat(cli): persist env, global-env, and collection var changes from scripts by @sanish-bruno in #8387 - feat(import): set yml as a default file format across all types of imports by @sharan-bruno in #8363 - feat(electron): add pkg configuration for installation location by @sid-bruno in #8403 - feat(variables): persist scripted variable changes by default and re-enable disabled scripting APIs by @sanish-bruno in #8315 - feat(ai): mode toggle UI and add AI support for folder & collection by @naman-bruno in #8385 - feat(environments): split variables and secrets into separate tabs by @pooja-bruno in #8191 - feat(ai): add AI chat sidebar with code block and diff view components by @naman-bruno in #8358 - feat(ai): OpenAI-compatible endpoints support by @naman-bruno in #8365 - feat(woof): add WOOF easter egg by @sanish-bruno in #8301 - feat(app): introduce app functionality by @naman-bruno in #8338 - feat(network-ui): added resizable columns in network panel by @sachin-thakur-bruno in #8265 - feat: integrate Markdown into NotificationDetail by @naman-bruno in #8335 - feat(ai): implement AI autocomplete by @naman-bruno in #8300 - feat: add cli offline bundle script by @sid-bruno in #8192 - feat: faster collection mount via file cache (Beta) by @chirag-bruno in #8222 - feat(ai-assist): add docs generation with folder and collection context by @utkarsh-bruno and @ravindra-bruno in #8246 - feat: Choose environments to include and show versions in the Generate Documentation modal by @sachin-bruno in #8268 - feat: variable data types support by @lohit-bruno in #8046 - feat: redesign notification modal by @prateek-bruno in #8140 - feat(websocket): show full message name in a tooltip on hover by @pooja-bruno in #8299 - feat(import): hide File Format option and default collections to Open… by @ravindra-bruno in #8247 - feat: implement file mode by @naman-bruno, @shubh-bruno, and @chirag-bruno in #8258 - feat(openapi-sync): preserve user-configured request values on sync by @sundram-bruno in #8204 - feat(app): scroll to and highlight error line on script error by @pooja-bruno in #8183 - feat(dev-tools-rquest-resize): dev tools details panel can be resized horizontally via a drag handle by @sachin-thakur-bruno in #8234 - feat(dev-tools): adds sorting on columns with verticle borders by @sachin-thakur-bruno in #8238 - feat(workspace): move external collections into the workspace by @gopu-bruno in #8196 - feat: integrate AIAssist for script editing by @naman-bruno in #8220 - feat(ws): multiple messages support in websockets by @pooja-bruno in #8115 - feat(ai): implement organization policy checks for AI features by @naman-bruno - feat: add trial upgrade dynamic url flow by @prateek-bruno - feat(telemetry): add per-generation documentation telemetry (BRU-3673) by @arpit-bruno - feat: secrets managers ui revamp by @lohit-bruno - feat(telemetry): track v2 collection mount (file cache) usage by @chirag-bruno - feat(notifications): enhance notification handling by @naman-bruno - feat(runner): revamp runner results table by @chirag-bruno - feat(mount): support js files in collection parsing and tree building by @chirag-bruno - feat(electron): add pkg configuration for installation location by @sid-bruno Fixes - fix(app): point generated docs to api-docs CDN path by @sundram-bruno in #8633 - fix(variable-tooltip): mask secret variables of non-string dataType by @pooja-bruno in #8606 - fix(description): bulk edit round trip looses description information by @sid-bruno in #8595 - fix: remove broken markdown in README_pt_br by @BraianS in #8375 - fix(ui): Added Horizontal Scroll On CollectionHeader to avoid overlapping and squeezing of contents by @ravindra-bruno in #8511 - fix(ui): websocket and grpc tooltip overflow fixed in request panel by @sachin-thakur-bruno in #8544 - fix: handle missing location header in redirect error response by @Pragadesh-45 in #7725 - fix(oauth2): prevent code injection in OAuth2 callback handling by @abhishekp-bruno and @kOaDT in #8405 - fix: system proxy refresh by @abhishekp-bruno and @sid-bruno in #8535 - fix(ui): fixed overflow size column issue on first load by @sachin-thakur-bruno in #8525 - fix(ToggleSwitch): correct onChange handler for response pane by @sid-bruno in #8520 - fix(openapi): validate API spec imports by @adwait-bruno in #8322 - fix(app): scope env variable/secret search per tab by @pooja-bruno in #8491 - fix(request-panel): changed request panel static width to percentage width of screen width by @sachin-thakur-bruno in #8499 - fix(snapshot): active workspace restoration from snapshot by @sid-bruno in #8392 - fix(variables): correct scripted-variable persistence races and cross-request propagation by @sanish-bruno in #8406 - fix: Draft icon indicator on Workspace Environment tab by @adwait-bruno in #8342 - fix(app): move env save-all icon to header actions by @pooja-bruno in #8449 - fix(import): linting issue in Import fails for gRPC request without URL in exported collection by @sharan-bruno in #8462 - fix: serialize object variable values before copying to clipboard by @adwait-bruno in #8362 - fix(import): Import fails for gRPC request without URL in exported collection by @sharan-bruno in #8367 - fix(lang): filter multipart multi file by @sid-bruno in #8444 - fix(workspace-watcher): use workspace-environment IPC channels so env file changes hot-reload by @sanish-bruno in #8370 - fix(openapi): copy cURL icon now respects the theme variables by @adwait-bruno in #8314 - fix: prevent redundant workspace switch toast by @DeviSriSaiCharan in #8229 - fix(transient): scope bruno- lookup to transient base, not full path by @chirag-bruno in #8273 - fix: correctly parse insomnia exported yaml by @prateek-bruno in #7966 - fix(import): Postman import: OAuth2 tokenPlacement not set correctly, Header Prefix field hidden and value lost by @rajashreehj-bruno in #8197 - fix(request-parser): preserve literal colon path segments without path param value by @utkarsh-bruno in #8157 - fix(ui): open response pane at a minimum height on expand by @gopu-bruno in #8236 - fix: Preserve folder order from seq attribute by @sachin-bruno in #8213 - fix(sse): sse response body is empty in res.getBody() for app and cli by @sachin-thakur-bruno in #8212 - fix: open panes at default size on expand from collapsed state by @gopu-bruno in #8133 - fix(ui): prevent empty header row from persisting state and crashing CLI by @sharan-bruno in #8167 - fix(cli): use path name for classname in JUnit reports instead of request URL by @sharan-bruno in #8169 - fix(grpc): gRPC request loses all messages except the first on save for yaml collection by @sharan-bruno in #8203 - fix(generate-code): generate code URL issues by @shubh-bruno in #8136 - fix(ui): correct “modified” indicator state across collection, folder, request, and presets/auth tabs (#3386) by @sharan-bruno in #8027 - fix: show correct New Request shortcut in response placeholder by @gengjiawen in #8116 - fix(postman-import): OAuth2 Implicit Grant Type Silently Converted to Client Credentials on Import by @rajashreehj-bruno in #8113 - fix(ui): use primary accent in OpenAPI Sync settings modal by @sundram-bruno in #8161 - fix: Remove Beta badge from openAPI sync by @sachin-bruno in #8250 - fix(ui): Version edit modal minor UI fixes by @sachin-bruno in #8549 - fix(sidebar): remove deleted JS files from the sidebar by @pooja-bruno - fix(mount): build js items as script nodes instead of request nodes by @chirag-bruno - fix: with email open upgrade url by @prateek-bruno - fix: refresh full-git when git-ui is active tab by @prateek-bruno - fix(environments): keep env row's secret flag in sync with active tab by @shubh-bruno - fix(watcher): added a value to the present param on collection addWatcher method by @utkarsh-bruno - fix(mountv2): attach git watcher after collection watcher by @chirag-bruno - fix(environments): remove draft indicator from variable & secret tabs by @pooja-bruno - fix: update tab state structure for environment tabs and enhance tests by @sid-bruno - fix: throttle git calls to an acceptable amount by @sid-bruno - fix(cli): swap persistPaths / bailAbortSignal args in runSingleRequest calls by @sanish-bruno - fix(runner): Remove iteration data from runtime variables by @rajashreehj-bruno - fix: use portal to prevent z-index issues by @prateek-bruno - fix: Added file js as well in the doc generation order by @sachin-bruno - fix(git-provider): cache settings page for revisits by @gopu-bruno - fix(ui): OpenAPI sync "Syncs Used" counter not updating after sync by @sundram-bruno - fix: style responsiveness by @Pragadesh44-Bruno - fix: update lodash version to 4.18.1 across multiple packages by @sid-bruno Others - test(sidebar): move sidebar locators to a dedicated file by @pooja-bruno in #8634 - test(folder): folder no auth test description by @pooja-bruno in #8560 - test: update openFolderRequest function for tests by @shubh-bruno in #8506 - test(e2e): update runner to run on self-hosted instances by @sid-bruno in #8524 - test: flaky bound action tests by @shubh-bruno in #8071

Pin: `winget install --id Bruno.Bruno --version 4.0.0 --exact`

#### 3.5.3 — 2026-07-20

- x64 nullsoft (machine): bruno_3.5.3_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.3/bruno_3.5.3_x64_win.exe
  - sha256: 54f8d3e08f9fbc130637395fb99271048d92cf4fceb4333446d3629b43ec48e1
- x64 nullsoft (user): bruno_3.5.3_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.3/bruno_3.5.3_x64_win.exe
  - sha256: 54f8d3e08f9fbc130637395fb99271048d92cf4fceb4333446d3629b43ec48e1
- x64 wix (machine): bruno_3.5.3_x64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.3/bruno_3.5.3_x64_win.msi
  - sha256: c113924652339215ba6dc419bdb0daca9bec45895e9c02f8763a855dde339fa8
- x64 zip: bruno_3.5.3_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.3/bruno_3.5.3_x64_win.zip
  - sha256: b992c44d6b475bcbee74e3f40a7344c77c3b30e2f7f608ec11f82f4cf5910c35
- arm64 nullsoft: bruno_3.5.3_arm64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.3/bruno_3.5.3_arm64_win.exe
  - sha256: 858b26a4edf7f24abd9529e3f51db6e6fa2e550ff1512e858ec7f6717e5c0b79
- arm64 wix (machine): bruno_3.5.3_arm64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.3/bruno_3.5.3_arm64_win.msi
  - sha256: ed50d4a96bd8ae7b2acad39fa91d22a2497e4047c9457a13d54d282dcb1b8f33
- arm64 zip: bruno_3.5.3_arm64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.3/bruno_3.5.3_arm64_win.zip
  - sha256: 025cadee50cbb1566b7a2a5c4cf0f8a0856038e686bb484fafced5169d818e7f
Release notes: Changelog Fixes fix: refresh git state on the trailing edge of the throttle by @prateek-bruno fix: preserve process env so git can resolve the commit author by @prateek-bruno

Pin: `winget install --id Bruno.Bruno --version 3.5.3 --exact`

#### 3.5.2 — 2026-07-13

- x64 nullsoft (machine): bruno_3.5.2_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.2/bruno_3.5.2_x64_win.exe
  - sha256: 707b80ff8280075a69d2a6dde6b25f806857e6b6bb54714b9cd4674da4987da9
- x64 nullsoft (user): bruno_3.5.2_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.2/bruno_3.5.2_x64_win.exe
  - sha256: 707b80ff8280075a69d2a6dde6b25f806857e6b6bb54714b9cd4674da4987da9
- x64 wix (machine): bruno_3.5.2_x64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.2/bruno_3.5.2_x64_win.msi
  - sha256: 721392a25fd83f3d11d87f11df5cb23327c9276215510b1c5e4a7794143f5a41
- x64 zip: bruno_3.5.2_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.2/bruno_3.5.2_x64_win.zip
  - sha256: f2fed661ab9bc856a443207f52bfb6753a62e41a75f16a9deac30bc6179279df
- arm64 nullsoft: bruno_3.5.2_arm64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.2/bruno_3.5.2_arm64_win.exe
  - sha256: 9c2ee93caf67595c1a1de600c9eb5a20e95efecc33eae6baee49b4180895282f
- arm64 wix (machine): bruno_3.5.2_arm64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.2/bruno_3.5.2_arm64_win.msi
  - sha256: c01a54b6fdff554391b02cf31c3e884bf1f13bd5751939d180b32c03c1b70871
- arm64 zip: bruno_3.5.2_arm64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.2/bruno_3.5.2_arm64_win.zip
  - sha256: 85d10b2a1d87f7e570679494c106399f84dde2a4aaec59d6a70c1e8763f2c659
Release notes: Changelog Maintenance - Reverted signing identity to Anoop MD - Added chain of trust (designated requirement) for the apple signing certificates.

Pin: `winget install --id Bruno.Bruno --version 3.5.2 --exact`

#### 3.5.1 — 2026-07-02

- x64 nullsoft (machine): bruno_3.5.1_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.1/bruno_3.5.1_x64_win.exe
  - sha256: 4869bc652335cf687bdb0a4553e588669e4a651bb3a2d72882904b3abd013c7a
- x64 nullsoft (user): bruno_3.5.1_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.1/bruno_3.5.1_x64_win.exe
  - sha256: 4869bc652335cf687bdb0a4553e588669e4a651bb3a2d72882904b3abd013c7a
- x64 wix (machine): bruno_3.5.1_x64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.1/bruno_3.5.1_x64_win.msi
  - sha256: e38ff57fc95bfa773d9cbc12666353977f744c2fff20b7361f56d838b21609d3
- x64 zip: bruno_3.5.1_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.1/bruno_3.5.1_x64_win.zip
  - sha256: 8f6b80b139422ad12d987049fbced10e0586b634db8dec18fdee3a4fe94251bd
- arm64 nullsoft: bruno_3.5.1_arm64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.1/bruno_3.5.1_arm64_win.exe
  - sha256: 7ef0d59242554507f80f00129e3e211598d8810b48922de4f890b333461ae460
- arm64 wix (machine): bruno_3.5.1_arm64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.1/bruno_3.5.1_arm64_win.msi
  - sha256: 215366c41e05165a7795332c350d80cc693f80a042e0109959cb3cd697ed037b
- arm64 zip: bruno_3.5.1_arm64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.1/bruno_3.5.1_arm64_win.zip
  - sha256: 005183278f402ae18c0e00b87a49bbcd9b0667795bb1f02bc602235ed1e1a24c
Release notes: Changelog Fixes - fix(lang): handle leading | being added to multipart-form file paths by @sid-bruno in #8444 - fix(git): ignore index.lock and avoid updating file mtimes during git status/git diff by @prateek-bruno

Pin: `winget install --id Bruno.Bruno --version 3.5.1 --exact`

#### 3.5.0 — 2026-06-23

- x64 nullsoft (machine): bruno_3.5.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.0/bruno_3.5.0_x64_win.exe
  - sha256: f948a2fc20c9d32a79cbfaf8b8ae28b42e06aa0cd3086de13c3fcac35c27bc0b
- x64 nullsoft (user): bruno_3.5.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.0/bruno_3.5.0_x64_win.exe
  - sha256: f948a2fc20c9d32a79cbfaf8b8ae28b42e06aa0cd3086de13c3fcac35c27bc0b
- x64 wix (machine): bruno_3.5.0_x64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.0/bruno_3.5.0_x64_win.msi
  - sha256: cf9db7c903c302863ceb6ee5ad82f0f36830e3eb734ef0df5e7999aeabfc0132
- x64 zip: bruno_3.5.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.0/bruno_3.5.0_x64_win.zip
  - sha256: 62cc56cc64905b77d33d7a1cce4eda3174bfda742b9c4e67ef72c6790483d74d
- arm64 nullsoft: bruno_3.5.0_arm64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.0/bruno_3.5.0_arm64_win.exe
  - sha256: f935b9b7c648f0d8f0917aa20a70061ec720074def9ffc6853aa69d476125a32
- arm64 wix (machine): bruno_3.5.0_arm64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.0/bruno_3.5.0_arm64_win.msi
  - sha256: 339819e21216ba9a312ae315d5fd4d9c8490646719360cb6df2aca59f80d48be
- arm64 zip: bruno_3.5.0_arm64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.5.0/bruno_3.5.0_arm64_win.zip
  - sha256: 3c2c872095e2672bff883c4c764c816bf8252f1b3d38c51300689ace25f14eae
Release notes: Changelog Features - feat: support annotations for secret environment variables in bru and preserve variable value type in yml by @lohit-bruno in #8251 - feat: show scripted requests in timeline by @pooja-bruno in #8047 - feat: npm package report and installation support by @naman-bruno in #8143 - feat(import): enhance import functionality with issue tracking and logging by @sanish-bruno in #8098 - feat: import modal revamp by @prateek-bruno in #8121 - feat: add support for duplicate request url + type in OpenAPI spec by @prateek-bruno in #8028 - feat: multi-file upload in multipart form body by @pooja-bruno in #7971 - feat: add bru.hasGlobalEnvVar method and update translations by @sanish-bruno in #8037 - feat(cli): add Docker Compose example for the Bruno CLI Docker image by @sundram-bruno in #8036 - feat: add default http protocol when URL scheme is missing by @KanhaiyaPandey in #7786 - feat: add missing status assertions and .not negation support by @sanish-bruno in #7660 - feat: add benchmark framework for collection mount performance by @chirag-bruno in #7915 - feat: open in terminal from manage workspace by @prateek-bruno in #7877 - feat: Stabilize variable info editor transition and popup lifecycle by @sid-bruno in #7912 - feat: add v4 migration heads-up tab + indicator by @prateek-bruno - feat: add cli migration ui for script by @prateek-bruno - feat: honor system PAC config for license requests by @pooja-bruno Fixes - fix(workspace): keep workspace nav tabs visible when editing docs by @gopu-bruno in #8249 - fix(apispec): prevent crash on non-array specs and fix Windows spec listing (BRU-3556) by @sundram-bruno in #8255 - fix(timeline): scope scripted requests to their own request by @pooja-bruno in #8210 - fix(snapshot): folder nested script tab interactivity and tests by @sid-bruno in #8225 - fix(electron): Install packages dialog reports npm not on PATH when Node.js and npm are installed by @utkarsh-bruno in #8253 - fix(proxy): refresh cached PAC content on demand by @pooja-bruno in #8173 - fix(openapi-export): openapi spec export crash on websocket request by @prateek-bruno in #8132 - fix(proxy): proxy config export from v2 to import in v3 by @abhishekp-bruno in #8112 - fix(app): preserve multipart file values when creating example from r… by @pooja-bruno in #8129 - fix(app): make SwaggerUI "Try it out" work cross-origin in API Spec viewer (BRU-3300) by @sundram-bruno in #8109 - fix(workspace): open success toast on cancel by @DeviSriSaiCharan and @abhishekp-bruno in #8146 - fix(cli): enhancement --bail flag not stopping execution when a test fails by @sharan-bruno in #8103 - fix(import): preserve special chars in OpenAPI tag/folder names for yml collections by @sundram-bruno in #8123 - fix(proxy): honor OS-level PAC configuration in system proxy mode by @pooja-bruno in #7766 - fix(app): null-safe OAuth2 scope in OpenAPI export (BRU-3297) by @sundram-bruno in #8086 - fix: varinfo drag-select dismiss by @shubh-bruno in #8070 - fix(import): pm.setNextRequest(null) not translating to bru.runner.stopExecution() by @sharan-bruno in #8049 - fix: select overview tab when closing all tabs by @naman-bruno in #8026 - fix: relative path getting stored as absolute on windows by @prateek-bruno in #7895 - fix: allow users to clear the cache, adds environment tests and re-serialization addition by @sid-bruno in #8035 - fix: preserve stream-backed file bodies during request interpolation by @hriztam and @sid-bruno in #7939 - fix: workspace home icon alignment in title bar when already fullscreen by @gopu-bruno in #7967 - fix: restore saved credentials when switching back to original auth mode by @pooja-bruno in #7911 - fix: normalize select file labels by @mturac in #8021 - fix: refresh code editor and query editor on resize by @prateek-bruno in #7889 - fix: file streaming for multipart bodies by @shubh-bruno in #7998 - fix(import): Postman import ignores API Key "in" placement setting and defaults to header by @sharan-bruno in #7968 - fix: handle empty mime type in insomnia importer by @prateek-bruno in #7828 - fix: show whitespace-only error on Create workspace and collection modal by @prateek-bruno in #7883 - fix(bruno-electron): interpolate auth headers for GraphQL introspection request by @phoval in #5560 - fix(git): check only enabled for GitHub readiness on Git Home by @utkarsh-bruno - fix(reporter): handle NaN values for total controls/tests in HTML report during --bail runs by @sharan-bruno - fix(cli): enhancement in CLI (bail flag not stopping execution when a test fails in a csv file) by @sharan-bruno - fix(ui): refresh git ui when files in collections change by @prateek-bruno - fix: unintended file explorer trigger when clicking on create OpenAPI Spec by @pooja-bruno Others - chore: security updates by @sid-bruno in #8193 - docs(cli): polish Docker Hub README rendering — absolute links, blockquote restructure, streamline steps by @sundram-bruno in #8064 - chore: add stack trace to boundary by @sid-bruno in #8040 - ai: coding standards for e2e tests by @sid-bruno in #7973 - add(telemetry): add partial import tracking to session_activity event by @sanish-bruno - refactor: git watcher by @prateek-bruno - update onboarding experience by @naman-bruno - ci: Automate sync OSS -> EE by @sid-bruno New Contributors - @hriztam made their first contribution in #7690 - @mturac made their first contribution in #8021 - @KanhaiyaPandey made their first contribution in #7786 - @abhishekp-bruno made their first contribution in #8146 - @DeviSriSaiCharan made their first contribution in #8096 - @bhavik168 made thrie first contribution in #8245

Pin: `winget install --id Bruno.Bruno --version 3.5.0 --exact`

#### 3.4.2 — 2026-05-26

- x64 nullsoft (machine): bruno_3.4.2_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.4.2/bruno_3.4.2_x64_win.exe
  - sha256: c5bbd960d3167b5be8cf3298213bff23a5ab9833c4c583acb10841bb69c9434e
- x64 nullsoft (user): bruno_3.4.2_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.4.2/bruno_3.4.2_x64_win.exe
  - sha256: c5bbd960d3167b5be8cf3298213bff23a5ab9833c4c583acb10841bb69c9434e
- x64 wix (machine): bruno_3.4.2_x64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.4.2/bruno_3.4.2_x64_win.msi
  - sha256: ea801ee2d79fd502815617f4283b9c5b52403cff3115a36915ac87d3f1bbdf65
- x64 zip: bruno_3.4.2_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.4.2/bruno_3.4.2_x64_win.zip
  - sha256: 59cb08576310446c0784d7d792b011bca662323dc72e0b4890b8108a7039ae10
- arm64 nullsoft: bruno_3.4.2_arm64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.4.2/bruno_3.4.2_arm64_win.exe
  - sha256: a9570cca1dd188ed6b36039dcf07220b525d436bece220ce3bc9c114357d6050
- arm64 wix (machine): bruno_3.4.2_arm64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.4.2/bruno_3.4.2_arm64_win.msi
  - sha256: 8ce77e265ca4bbd2df455c5bb0012c150f231e24e665e5b3b9024dc3da88a742
- arm64 zip: bruno_3.4.2_arm64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.4.2/bruno_3.4.2_arm64_win.zip
  - sha256: 7f697c01483e13d35df677f782a76b6e5cd7caafc64c6f70bcc4eaeaac28cd9f
Release notes: Changelog Fixes - fix(ui): tab type resolution for non request types by @sid-bruno in #8097 - fix(api): multipart/mixed and multipart/form-data interpolation and generic request behaviour by @sid-bruno in #8087 - fix(ui): remove stray semicolon typo from UI by @ganesh-bruno in #8088 Others - revert: "perf: optimize DNS resolution to reduce request latency" by @sid-bruno in #8092

Pin: `winget install --id Bruno.Bruno --version 3.4.2 --exact`

#### 3.4.1 — 2026-05-21

- x64 nullsoft (machine): bruno_3.4.1_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.4.1/bruno_3.4.1_x64_win.exe
  - sha256: 28519218f953a95dedf7527ac80d6670f3b63a6e619585db8ea8a215f9cf45ee
- x64 nullsoft (user): bruno_3.4.1_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.4.1/bruno_3.4.1_x64_win.exe
  - sha256: 28519218f953a95dedf7527ac80d6670f3b63a6e619585db8ea8a215f9cf45ee
- x64 wix (machine): bruno_3.4.1_x64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.4.1/bruno_3.4.1_x64_win.msi
  - sha256: fac94b729c9426d53a3a24a86816833bda98368b8460381283c65df1cdc957cc
- x64 zip: bruno_3.4.1_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.4.1/bruno_3.4.1_x64_win.zip
  - sha256: 3bbd1cc9af10ac02cbee285d79f91cac302fb0acf74f797d7b9bc079c1b7ae7f
- arm64 nullsoft: bruno_3.4.1_arm64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.4.1/bruno_3.4.1_arm64_win.exe
  - sha256: 2225b397834dd4fd2ef9a662677498ecd83c185d949c9501928931837de0f7b7
- arm64 wix (machine): bruno_3.4.1_arm64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.4.1/bruno_3.4.1_arm64_win.msi
  - sha256: f62198c23d9c99aa31065021ba2aa164a4553d193c6231577f30231df8c489d5
- arm64 zip: bruno_3.4.1_arm64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.4.1/bruno_3.4.1_arm64_win.zip
  - sha256: 040fb7aa7cb1332dda013fbf5cc08a7462c183f5a152ff8f61db305c6e4ff404
Release notes: Changelog Fixes - Fixes event sync issues during crash

Pin: `winget install --id Bruno.Bruno --version 3.4.1 --exact`

#### 3.4.0 — 2026-05-20

- x64 nullsoft (machine): bruno_3.4.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.4.0/bruno_3.4.0_x64_win.exe
  - sha256: 1fc45bbddab6cbaead4bbda8d672a4947b32d47dfef6757fd78797f7f7ffc3f7
- x64 nullsoft (user): bruno_3.4.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.4.0/bruno_3.4.0_x64_win.exe
  - sha256: 1fc45bbddab6cbaead4bbda8d672a4947b32d47dfef6757fd78797f7f7ffc3f7
- x64 wix (machine): bruno_3.4.0_x64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.4.0/bruno_3.4.0_x64_win.msi
  - sha256: 33a768eee2511afc4490d19d5c6fb7422c3d35d51c0261ca99fc0ccc29af103f
- x64 zip: bruno_3.4.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.4.0/bruno_3.4.0_x64_win.zip
  - sha256: 9ef355cff886c4d7f8cfaaf1b2efd830699cf0cf100258203509a52f12396f3d
- arm64 nullsoft: bruno_3.4.0_arm64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.4.0/bruno_3.4.0_arm64_win.exe
  - sha256: 6613ad6d345f913b13700fd876cf8f50d3bae8e1c6066add5b08351ce2f99ae2
- arm64 wix (machine): bruno_3.4.0_arm64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.4.0/bruno_3.4.0_arm64_win.msi
  - sha256: a77f3bab6999abbc6bc5df8b25df6f934946c4716cebbbd20242290fe3d111ed
- arm64 zip: bruno_3.4.0_arm64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.4.0/bruno_3.4.0_arm64_win.zip
  - sha256: 14ec16526e430db6b5a9511b67a8eeae78550199f9e942f5f2fe6fabadc3bb17
Release notes: Changelog Features - feat: ui state snapshots by @sid-bruno in #7794 - feat: add PropertyList API for req.headerList and res.headerList by @sanish-bruno in #7673 - feat(api-spec): drag-to-resize split pane with persisted width by @abhishek-bruno in #7866 - feat(openapi-sync): virtualize spec diff rendering + spec change block navigation by @abhishek-bruno in #7848 - feat: auto-require Postman sandbox globals during import by @gopu-bruno in #7878 - feat: persist CodeEditor's json state across tab switching by @shubh-bruno in #7797 - feat: integrate Git remote for collections by @naman-bruno in #7879 - feat: persist scroll across tabs by @shubh-bruno in #7695 - feat: new selected list component for importing from git by @prateek-bruno in #7813 - feat: add new parameter "apiKeyHeaderName" for "apikey" mode by @prateek-bruno in #7762 - feat: add custom jsonBody Chai assertion + simplify Postman translation by @sanish-bruno in #7299 - feat: collapsible request/response split in request tab by @gopu-bruno in #7566 - feat: add JSON Schema validation support with custom chai assertion by @sanish-bruno in #7301 - feat: use selection list in github import flow by @prateek-bruno - feat: GitHub repository creation by @naman-bruno - feat: enhance telemetry by @naman-bruno and @gopu-bruno - feat: history tab visible for all users by @pooja-bruno Fixes - fix: allow empty header names in CLI and gRPC request preparation by @Pragadesh-45 in #7925 - fix(cli): skip headers with empty name when building request by @Pragadesh-45 in #7869 - fix: apply proxy settings to URL spec import by @Pragadesh-45 in #7767 - fix: remove dragbar z-index that was bleeding through modals by @gopu-bruno in #7924 - fix: enable DPI-aware NSIS installer by @davidkaya in #7803 - fix: restore default axios request headers by @j4ln in #7820 - fix: collection settings access, UI overflow fixes, and auto-focus URL bar by @chirag-bruno in #7861 - fix: prevent assertions from returning wrong values during large iteration runs by @gopu-bruno in #7692 - fix: Even after clearing the response, the test count keeps on displaying on the tests tab by @sharan-bruno in #7852 - fix: "URL encoding off" ignored for multi-param URLs in generated code by @prateek-bruno in #7769 - fix: use stable index in requests tab in report by @prateek-bruno in #7867 - fix: make "Remove Collection" consistent with "Remove Workspace" by @prateek-bruno in #7750 - fix: send-request shortcut by @shubh-bruno in #7853 - fix: shortcut for query builder by @shubh-bruno in #7805 - fix: layout glitches on multiline environment variables when scrolling by @shubh-bruno in #7732 - fix: no environment alignment by @pooja-bruno in #7580 - fix: Variables Text Missing Whitespace by @TheUnCola in #7844 - fix: search bar in codeeditor by @shubh-bruno in #7841 - fix: fixed noproxy flag from ----no-proxy to --no-proxy by @ganesh-bruno in #7586 - fix: pass resolved license server URL to getLicenseHttpsAgent for better endpoint handling by @Pragadesh44-Bruno - fix: scrollbar for file mode by @shubh-bruno - fix: update the git tooltip by @prateek-bruno - fix: drag drop indicator css by @pooja-bruno - fix: sync file mode by @pooja-bruno - fix: add default git state by @prateek-bruno Others - Add missing space in help text of Variables Editor window by @ryanjbonnell in #7871 - update readme file with image by @ganesh-bruno in #7721 - refactor(table): virtualise tables for perf for EditableTable components by @pooja-bruno in #7810 - chore: re-add git into workspace switch for non-default by @sid-bruno - update docs for commands of getting current branch by @prateek-bruno - Redirect to Git overview after successful commit from diff view by @gopu-bruno - Improve Git IPC error messaging in the UI by @gopu-bruno - Inherit Value from registry for MSI Installs by @sid-bruno New Contributors - @ryanjbonnell made their first contribution in #7871 - @j4ln made their first contribution in #7820 - @davidkaya made their first contribution in #7803

Pin: `winget install --id Bruno.Bruno --version 3.4.0 --exact`

#### 3.3.0 — 2026-04-22

- x64 nullsoft (machine): bruno_3.3.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.3.0/bruno_3.3.0_x64_win.exe
  - sha256: 8527c3eb08a6a6833955cc6fe98c22f937360675c23c8e6ff410ab00de8a2fb4
- x64 nullsoft (user): bruno_3.3.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.3.0/bruno_3.3.0_x64_win.exe
  - sha256: 8527c3eb08a6a6833955cc6fe98c22f937360675c23c8e6ff410ab00de8a2fb4
- x64 wix (machine): bruno_3.3.0_x64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.3.0/bruno_3.3.0_x64_win.msi
  - sha256: 7dc460362f49931914eaf68b74da59f14d7d29833417ec5aa7dfc6e53404b867
- x64 zip: bruno_3.3.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.3.0/bruno_3.3.0_x64_win.zip
  - sha256: a448f2a6b8d7bd210dba07988afd2f772e6c75f41158408c3f157d91a147a905
- arm64 nullsoft: bruno_3.3.0_arm64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.3.0/bruno_3.3.0_arm64_win.exe
  - sha256: 0422fee2712f168b194faca93d270b582fcab4ae72e9632092ec26268d13b1d6
- arm64 wix (machine): bruno_3.3.0_arm64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.3.0/bruno_3.3.0_arm64_win.msi
  - sha256: 0c8358614ecfb41e386744b6b29a0eb48aa59908c331e549d6021a4957e9fa91
- arm64 zip: bruno_3.3.0_arm64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.3.0/bruno_3.3.0_arm64_win.zip
  - sha256: f6f3848a70f483926f615fdde056f5d54f03d8b15ac1f95233edac7cd1e0b4bd
Release notes: Features - feat: Support PAC file upload by @Pragadesh-45 in #7651 - feat: replace send button with Send/Cancel buttons on request url by @gopu-bruno in #7675 - feat: add gRPC proxy support by @lohit-bruno in #7575 - feat: basic annotation syntax support for lang by @sid-bruno in #7609 - feat: keybindings customisation by @shubh-bruno in #7603 - feat(cookies): add direct cookie access methods and update translations by @sanish-bruno in #7073 - feat: revamp Runner UI with Timings and Filters sections by @gopu-bruno in #7505 - feat: add OAuth 1.0 authentication support by @lohit-bruno in #7482 - feat: graphql query builder by @pooja-bruno in #7468 - feat: persist window frames and widths by @shubh-bruno in #7409 - feat: support for pkg installer by @shubh-bruno in #7561 - feat: enhance ScriptError with source context and remove auto-commenting of untranslated pm commands by @sanish-bruno in #7449 - feat(request-pane): restore body tab scroll position on tab switch by @Nizam-Chaudhary in #7250 - feat: add proxy and SSL certificate support for AWS, Azure, and Vault Cloud secret managers by @lohit-bruno - feat: include git collection URL in generated documentation by @lohit-bruno - feat: improve telemetry and track trial users by @naman-bruno - feat: Github search and import for collections by @Pragadesh44-Bruno - feat: add support for embedded workspace fetch in bruno by @bijin-bruno - feat: Surface Stage, Commit, Push in Git UI for free users with upgrade modal by @gopu-bruno - feat: refine license activation error messages and SSL detection by @gopu-bruno - feat: show Initialize Git control in collection header by @gopu-bruno - feat: surface collection runner options and gate parameter component by @gopu-bruno - feat: bru visualize with handlebars support by @sanish-bruno - feat: .pkg installer for macos (nightly) builder by @shubh-bruno - feat: include posthogDistinctId in trial license verification by @naman-bruno - feat: introduce OpenAPI Sync beta feedback feature by @abhishek-bruno Fixes - fix: fix scroll in querybar component by @naman-bruno in #7700 - fix: timeline url race condition by @pooja-bruno in #7154 - fix: resolve process.env variables in global environment level by @abhishek-bruno in #7600 - fix: add uuid v7 support in pre-request scripts by @chirag-bruno in #7377 - fix: validate environment variables in unsaved changes dialog by @chirag-bruno in #7403 - fix: allow __Host- prefixed cookies to be stored via script API by @abhishek-bruno in #7549 - fix: clear inherited DNS lookup for non-localhost URLs in redirect handling by @chirag-bruno in #7426 - fix: graphql doc close button by @pooja-bruno in #7667 - fix: sample collection creation race condition by @bijin-bruno in #7665 - fix: close previous SSE connection before sending new request by @chirag-bruno in #7474 - fix: support response query filtering in safe mode by @abhishek-bruno in #7441 - fix: isJson assertion should accept arrays as valid JSON by @abhishek-bruno in #7620 - fix: handle copy/paste item for requests & js file by @shubh-bruno in #7656 - fix: add size and duration fields to CLI bru.runRequest() response by @chirag-bruno in #7429 - fix: allow file selection in multipart form without entering a key first by @pooja-bruno in #7640 - fix: prevent autoscroll cursor when middle-clicking to close tabs by @abhishek-bruno in #7443 - fix: include examples when writing collection items in CLI OpenAPI import by @abhishek-bruno in #7613 - fix: clear CodeMirror selection highlight on blur in inline editors by @abhishek-bruno in #7619 - fix: forward cookies from 4XX/5XX responses in collection runner and CLI by @abhishek-bruno in #7498 - fix(cli): handle non-array tags from bru parser to prevent crash by @abhishek-bruno in #7631 - fix: handle non-array tags from bru parser to prevent crash by @abhishek-bruno in #7616 - fix: cURL paste not updating request tab editors visually by @chirag-bruno in #7610 - fix: autosave playwright test by @pooja-bruno in #7641 - fix: prevent rerun flicker and fix runner configuration list order by @gopu-bruno in #7639 - fix: refine dotenv serialization for special characters handling by @chirag-bruno in #7592 - fix: 'axios' module not found locally by @sid-bruno in #7638 - fix: folder docs edit button style by @pooja-bruno in #7630 - fix: multipart form button alignment by @pooja-bruno in #7629 - fix(dependencies): update fast-xml-parser to 5.5.7 and simple-git to … by @sid-bruno in #7602 - fix: status & statusText swap by @shubh-bruno in #7589 - fix: interpolate env variables in multipart-form file attachment paths by @abhishek-bruno in #7595 - fix: coerce numeric header values to string during Postman collection import by @abhishek-bruno in #7564 - fix: prevent Enter key from submitting form during autocomplete selection by @iyush05 in #7221 - fix: prevent colons in OData datetime values from being parsed as path parameters by @abhishek-bruno in #7388 - fix: preserve global environment color during script execution by @chirag-bruno in #7427 - fix: resolve theme, overflow, and z-index bugs in Remove Collection modal by @chirag-bruno in #7590 - fix: make documentation, folder docs and collection docs edit button … by @SahilShameerDev in #7151 - fix: unmatched brackets invisible on dark themes by @abhishek-bruno in #7596 - fix: multipart form upload icon visibility by @pooja-bruno in #7571 - fix: prompt variable in URL path incorrectly parsed as query parameter by @pooja-bruno in #7216 - fix: add the meta block to the object returned by transformFolderRoot… by @fantpmas in #7582 - fix: cross-collection drag and drop tab and format issues by @chirag-bruno in #7584 - fix: preserve folder/request ordering in Postman export by @abhishek-bruno in #7581 - fix(theme): convert theme bg to hex for Electron backgroundColor by @abhishek-bruno in #7569 - fix(import): resolve EEXIST error when importing OpenAPI collections with paths folder arrangement by @abhishek-bruno in #7499 - fix: overlapping help text issue in Environment Variables by @statxc in #7225 - fix: html report collapse for repeated requests by @pooja-bruno in #7153 - fix: global search filter by active workspace by @pooja-bruno in #7156 - fix: prevent white flash on startup with dark theme by @abhishek-bruno in #7454 - fix: quote values containing hash (#) in .env file serialization by @chirag-bruno in #7380 - fix: handle nested parentheses in URL link detection by @chirag-bruno in #7406 - fix: convert non-string variable values to strings during postman import by @pooja-bruno in #7476 - fix: add hasCookie hint to autocomplete suggestions for cookie management by @sanish-bruno in #7516 - fix: enhance proxy configuration to support PAC mode by @Pragadesh44-Bruno - fix: detect Electron crashes on app close in e2e tests by @chirag-bruno - fix: cleanup git watchers on app quit by @bijin-bruno - fix: OAuth1 tests on windows by @lohit-bruno - fix: load AWS profiles when editing an existing secrets provider by @pooja-bruno - fix: update export icon in ShareCollection by @naman-bruno Others - perf: optimize DNS resolution to reduce request latency by @chirag-bruno in #7664 - Add support for importing Swagger 2.0 specifications into Bruno collections by @gopu-bruno in #7622 - refactor: update Bru constructor to accept a single options obj for improved readability by @sanish-bruno in #7562 - chore: add in more react standards by @sid-bruno in #7577 - remove activeEnvironmentUid and migration by @naman-bruno in #7545 - Replace SpaceX external API with local graphql-yoga mock server by @sid-bruno in #7471 - Revert "workspace renaming with path update" by @naman-bruno in #7455 - Feature/more visibility close icon in multipart form data on collumn value by @Bobonimo111 in #7341 - workspace renaming with path update by @naman-bruno in #7437 - refactor: simplify GitHubDropdownTab and SearchResults components by @Pragadesh44-Bruno - refactor: update toggle switch design by @naman-bruno - chore: wait on shell before making license calls by @sid-bruno - chore: sync shrinkwrap npm by @sid-bruno - rm: expand collapse in collection settings by @pooja-bruno - added playwright tests for fetch in bruno workspace by @sanish-bruno New Contributors - @Nizam-Chaudhary made their first contribution in #7250 - @Bobonimo111 made their first contribution in #7341 - @bohat-y made their first contribution in #7481 - @statxc made their first contribution in #7225 - @iyush05 made their first contribution in #7221

Pin: `winget install --id Bruno.Bruno --version 3.3.0 --exact`

#### 3.2.2 — 2026-04-03

- x64 nullsoft (machine): bruno_3.2.2_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.2.2/bruno_3.2.2_x64_win.exe
  - sha256: 40e3e755c4ece397a8339d0e47e5ce5198685a89e28350433e21659394813bc1
- x64 nullsoft (user): bruno_3.2.2_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.2.2/bruno_3.2.2_x64_win.exe
  - sha256: 40e3e755c4ece397a8339d0e47e5ce5198685a89e28350433e21659394813bc1
- x64 wix (machine): bruno_3.2.2_x64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.2.2/bruno_3.2.2_x64_win.msi
  - sha256: 66dbd7889d818b002833dedda8d66e424f4b79d6619a85d5c2e59cd0cb80a098
- x64 zip: bruno_3.2.2_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.2.2/bruno_3.2.2_x64_win.zip
  - sha256: 64189f6a8dfb798ac050aab995f59da8e12120e81800ac4a4b63bd213dcb4c48
- arm64 nullsoft: bruno_3.2.2_arm64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.2.2/bruno_3.2.2_arm64_win.exe
  - sha256: e0ea4704e57f2768f8d4ef7e4a7be3954421b2cdec2a299ef6f14d915272198c
- arm64 wix (machine): bruno_3.2.2_arm64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.2.2/bruno_3.2.2_arm64_win.msi
  - sha256: 76d642a03f62239ca927f67a7b2cdaabcfc0a977f86cf269d821c8c3e026d167
- arm64 zip: bruno_3.2.2_arm64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.2.2/bruno_3.2.2_arm64_win.zip
  - sha256: 198c4881d0d2c77a5f8248d8d4e5662a778ac04719eaf767221ca2fc7fe31246
Release notes: Changelog Fixes - fix: app crashes when closing the window by @chirag-bruno in #7637 - fix: preserve user-defined boundary in multipart/mixed Content-Type header by @chirag-bruno in #7531 - fix: preserve query params without values by not appending = sign by @pooja-bruno in #7567 - fix: ensure string values within auth, add string header processing during postman collection imports by @sanish-bruno in #7646 - fix: recreate HTTP/HTTPS agents on redirect to prevent stale agent reuse by @lohit-bruno in #7615 - fix: re-apply secret masking after editor value changes by @abhishek-bruno in #7585 - fix(security): sanitise HTML before being rendered in documentation blocks by @sid-bruno in #7598 - Credits to @andrejtomci and other anonymous contributors for bringing it up - fix: update system proxy fetching to use finally by @sid-bruno in #7652 - fix: status & statusText swap by @shubh-bruno in #7589 - fix: convert non-string variable values to strings during postman import by @pooja-bruno in #7476 - fix: add conversion for non-string values within headers, params, etc during postman collection imports by @sanish-bruno in #7644 Others - security: fix all critical vulnerable dependency reports by @sid-bruno in #7645 - chore: add a promise based wait group for the shell variables by @sid-bruno in #7647

Pin: `winget install --id Bruno.Bruno --version 3.2.2 --exact`

#### 3.2.0 — 2026-03-18

- x64 nullsoft (machine): bruno_3.2.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.2.0/bruno_3.2.0_x64_win.exe
  - sha256: bb4c3d844e2059681d89081064ea8f939aba811849a7a4859b00b6e932ca77b4
- x64 nullsoft (user): bruno_3.2.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.2.0/bruno_3.2.0_x64_win.exe
  - sha256: bb4c3d844e2059681d89081064ea8f939aba811849a7a4859b00b6e932ca77b4
- x64 wix (machine): bruno_3.2.0_x64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.2.0/bruno_3.2.0_x64_win.msi
  - sha256: cba4343be84fd200de98ac1ec28d6b265c2f2cdbfca06002d7aec2aa5fca4ff6
- x64 zip: bruno_3.2.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.2.0/bruno_3.2.0_x64_win.zip
  - sha256: 63db5b7fac5f6427272a2e7ddec0b85ae99db0d1cb8a3a0a3a8d8d7090aaa338
- arm64 nullsoft: bruno_3.2.0_arm64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.2.0/bruno_3.2.0_arm64_win.exe
  - sha256: d889ad4aa2446b6303e78501039132521c1a48f0c79b5a029f9b0e85fe649c7f
- arm64 wix (machine): bruno_3.2.0_arm64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.2.0/bruno_3.2.0_arm64_win.msi
  - sha256: 95bde3d7d0c18e4d6c7221f1371baa9e4081430393104627cd3f31dc545ff002
- arm64 zip: bruno_3.2.0_arm64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.2.0/bruno_3.2.0_arm64_win.zip
  - sha256: 1cfcea646a2a2bd6afbebcaaaf7ae1c722329402e7f20240ec9711174f426c2f
Release notes: Changelog Features - feat: Red status indicator for script errors in Request, Collection, and Folder Script tabs by @Pragadesh-45 in #7035 - feat: set map support for logging by @james-ha-bruno in #6043 - feat: add ZIP file import for collections by @naman-bruno in #7063 - feat: enhance translation capabilities for Bruno to Postman conversion by @sanish-bruno in #7052 - feat: add translations for direct cookie access methods by @sanish-bruno in #7070 - feat: enhance axios shim error handling and add comprehensive tests by @Pragadesh-45 in #6349 - feat: support missing env apis by @sanish-bruno in #7069 - feat: scratch requests by @chirag-bruno and @gopu-bruno in #7087 - feat: move import collection from git url and spec url from enterprise edition to opensource by @abhishek-bruno in #7127 - feat: remove headers from request using scripts by @shubh-bruno in #7122 - feat: Object Variable Interpolation by @TheUnCola in #6317 - feat: add some doc about variable usage by @simonaubertbd in #6443 - feat: f2-rename-shortcut by @tobiasgjerstrup in #7077 - feat: add reveal in file manager option to workspace collections menu by @datlechin in #6944 - feat: refactor github workflow for tests by @bijin-bruno in #7252 - feat: interface zoom control settings by @shubh-bruno in #7255 - feat: add options to skip request and response bodies in reporter output by @abhishek-bruno in #7114 - feat: change default collection location to default location by @gopu-bruno in #7291 - feat: Support multipart/mixed by @Pragadesh-45 in #7155 - feat: implement onboarding preferences and welcome modal for new users by @naman-bruno in #7319 - feat: add tokenType support for OAuth2 by @lohit-bruno in #7314 - feat: improve stack traces for script and test failures by @gopu-bruno in #7181 - feat(sidebar): show "Add request" cta when collection or folder is empty by @gopu-bruno in #7273 - feat: enhance API spec export with environment variables support by @abhishek-bruno in #7170 - feat: inline create collection and workspace editor by @gopu-bruno in #7324 - feat: openapi sync by @abhishek-bruno in #7279 - feat: implement temporary workspace creation and confirmation flow by @naman-bruno in #7462 - feat: integrate deferred loading for saving state in DotEnvFileEditor by @naman-bruno in #7463 - feat: remove .bru reference in error message by @fantpmas in #7479 - feat(bruno-js): add hasCookie function to cookie jar shim by @sanish-bruno in #7501 - feat: gRPC - Unix Socket and Named Pipes by @chirag-bruno in #7021 - feat: add custom mount path for Vault AppRole auth by @gopu-bruno - feat: add iteration data translations for Bruno and Postman by @sanish-bruno - feat: CLI release check skeleton job to workflow by @helloanoop - feat: add workspace-level git tab and restore collection toolbar features by @chirag-bruno - feat: add history logging for collection runner and fix interpolation in history url by @gopu-bruno - feat: enhance telemetry tracking for session and activation actions by @naman-bruno - feat: QOL additions to trial flow by @sid-bruno - feat: include environments in API spec export functionality by @abhishek-bruno - feat: welcome modal A/B testing by @naman-bruno - feat: openapi sync limit by @abhishek-bruno - feat: add periodic license re-verification to LicenseGuard by @naman-bruno - feat: enhance telemetry tracking for OpenAPI sync and git by @naman-bruno Fixes - fix: add missing URL helper translations for Bruno to Postman export by @pooja-bruno in #7026 - fix: preserve empty query param equal sign by @pooja-bruno in #7031 - fix: runner results enhancement by @sanjaikumar-bruno in #7040 - fix: code editor null value crash by @pooja-bruno in #7039 - fix: close saved deleting collections by @chirag-bruno in #7048 - fix: improve error message formatting by @chirag-bruno in #7059 - fix: import tests by @naman-bruno in #7067 - fix: header and var tooltip overflow by @pooja-bruno in #7082 - fix: disable text-overflow ellipsis on checkbox column by @gopu-bruno in #7080 - fix: openapi content level example by @pooja-bruno in #7091 - fix(bruno-requests): mark node.js built-in modules as external in rollup config by @lohit-bruno in #7095 - fix: improve value handling in editor components by @sid-bruno in #7098 - fix: env color picker ui by @pooja-bruno in #7096 - fix: improve environment variable comparison by stripping UIDs by @sid-bruno in #7100 - fix: filter existing paths for apispec in workspace by @naman-bruno in #7104 - fix: persist environment color on import/export by @pooja-bruno in #7045 - fix: update codemirror bg for pastel light theme by @gopu-bruno in #7110 - fix: pass app-level proxy config to bru.sendRequest by @lohit-bruno in #7113 - fix: example response statusCode not persisted in yml file by @abhishek-bruno in #7117 - fix(save-all): fix save all modified requests while closing the app by @bijin-bruno in #7118 - fix: enhance tag handling and validation in collection import/export by @abhishek-bruno in #7107 - fix(node-vm): scripting context and module resolution by @lohit-bruno in #7033 - fix: graphQL variables interpolation consistency (UI and CLI) by @sanjaikumar-bruno in #7049 - fix: multipart form-data file param export/import for Postman by @chirag-bruno in #7111 - fix: cURL import NDJSON in request body as text by @shubh-bruno in #7002 - fix: env draft loss on color change and rename by @pooja-bruno in #7130 - fix: update header validation test to use triple-click for selecting all text by @bijin-bruno in #7140 - fix: flaky tests - standardize save keyboard shortcut across tests by @bijin-bruno in #7141 - fix: improve visual hierarchy of markdown headers in docs by @SahilShameerDev in #7145 - fix: importing from openapi excludes documentation for requests by @NuageTompis in #6439 - fix: incorrect response formatting when saving examples by @jokj624 in #6528 - fix: sse response download button by @pooja-bruno in #7081 - fix: parsing dates from insomnia by @egmen in #7003 - fix: cookies not being set when follow redirect = false by @JeroenVinke in #6679 - fix: collection scope undefined var by @pooja-bruno in #7211 - fix: import ndjson-curl handling binary data check with type file or not by @shubh-bruno in #7210 - fix: env var edit by @pooja-bruno in #7066 - fix: incorrect translations by @sanish-bruno in #7214 - fix: consistent button size on save requests modal by @bastiendmt in #7197 - fix: oauth2 credential management improvements by @lohit-bruno in #7220 - fix: load shell environment variables on app startup by @lohit-bruno in #7223 - fix: call initializeShellEnv directly in app ready handler by @lohit-bruno in #7228 - fix: updated error message for renaming requests under same parent entity by @shubh-bruno in #7010 - fix: collection reorder not persisting after restart by @sanjaikumar-bruno in #7093 - fix: openapi cli import by @pooja-bruno in #7028 - fix: response viewer not updating when focused (read-only editors) by @sanjaikumar-bruno in #7218 - fix: phone number faker function by @pooja-bruno in #7046 - fix: skip null query parameters in Postman to Bruno conversion by @sanish-bruno in #7193 - fix: default normalizeProxyUrl to http protocol for all proxy URLs by @lohit-bruno in #7285 - fix: Environment Search Behavior, UI Updates, and Result Handling by @Pragadesh-45 in #7287 - fix: storing status in example for yml file by @shubh-bruno in #6876 - fix(graphql): handle invalid schemas gracefully in query editor by @chirag-bruno in #7269 - fix(schema): support all Unicode letters in tag validation by @numsu in #7311 - fix(batch-events): fix order of directory file and folder events by @sid-bruno in #7300 - fix: tags validation error for openapi import for BRU and YAML compatibility by @shubh-bruno in #7294 - fix: wrong workspace request shown after closing tab by @sanjaikumar-bruno in #7259 - fix: Postman import compatibility for multipart form-data file params by @chirag-bruno in #7325 - fix(oauth2): prevent false callback matches on root path URLs by @lohit-bruno in #7315 - fix: ensure system proxy is initialized before use in network calls by @lohit-bruno in #7264 - fix: allow user to delete default bruno headers in pre-request by @shubh-bruno in #7331 - fix: file extension for clone and rename request by @pooja-bruno in #7278 - fix: persistence of additional parameters using open-collection format by @xIceFox in #7296 - fix: enable SSL session caching and HTTP agent reuse for faster consecutive requests by @kxbnb and @lohit-bruno in #6987 - fix: prevent triggering rename action with modifier keys by @naman-bruno in #7322 - fix: show '+ Add request' when only transient items exist by @gopu-bruno in #7361 - fix: focus and text selection in workspace creation flow by @gopu-bruno in #7363 - fix: use Title Case for default Untitled Collection and Untitled Workspace names by @gopu-bruno in #7389 - fix: preserve existing process.env values in initializeShellEnv by @lohit-bruno in #7390 - fix: update collection path handling to use path.join for consistency by @naman-bruno in #7394 - fix: app crash error (Rendered fewer hooks than expected) by @sanish-bruno in #7407 - fix: normalize paths when comparing workspace and redux collection paths on Windows by @chirag-bruno in #7436 - fix: cookie wrapper callback mode returns never-resolving Promise by @lohit-bruno in #7442 - fix: multipart header check by @pooja-bruno in #7444 - fix(collection-watcher): prevent crash when deleting collections by @abhishek-bruno in #7470 - fix: add missing scrollbar-color property by @bohat-y in #7481 - fix(RequestTabPanel): update loading message for better user feedback by @chirag-bruno in #7492 - fix: loading state for ZIP file import by @naman-bruno - fix: clear trial license on deactivation by @sid-bruno - fix: git commit details page not able scrollable to bottom by @gopu-bruno - fix: update visual diff handling and improve auth, body rendering by @naman-bruno - fix: cli duration summary by @pooja-bruno

Pin: `winget install --id Bruno.Bruno --version 3.2.0 --exact`

#### 3.1.4 — 2026-02-24

- x64 nullsoft (machine): bruno_3.1.4_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.4/bruno_3.1.4_x64_win.exe
  - sha256: 5c3aa4775573e79b9d7078892b4df67ae604258b561de914842dd29c13ca5104
- x64 nullsoft (user): bruno_3.1.4_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.4/bruno_3.1.4_x64_win.exe
  - sha256: 5c3aa4775573e79b9d7078892b4df67ae604258b561de914842dd29c13ca5104
- x64 wix (machine): bruno_3.1.4_x64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.4/bruno_3.1.4_x64_win.msi
  - sha256: 995c841210b1d52a083bd348d8bc240ea0dc204667663fce16daec65b368f233
- x64 zip: bruno_3.1.4_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.4/bruno_3.1.4_x64_win.zip
  - sha256: a45467c0574c9f3422e2b20d715d922b83b4db8e362cf3b8098f338a72d0c3f2
- arm64 nullsoft: bruno_3.1.4_arm64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.4/bruno_3.1.4_arm64_win.exe
  - sha256: c5a8b1c925c1641ee8e996b58eca0d1973e78ed733a0f0535dda24cc55c3fdff
- arm64 wix (machine): bruno_3.1.4_arm64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.4/bruno_3.1.4_arm64_win.msi
  - sha256: ababf8d81a1b2e8e84f7ef92d10673910bc8ab5fb357004933abbb2db78ce89a
- arm64 zip: bruno_3.1.4_arm64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.4/bruno_3.1.4_arm64_win.zip
  - sha256: 97fdf64161d4041416fe7b312d9bc4fa53117dbb7c2926deeeb6c9cec2aff215
Release notes: Changelog Fixes - fix: secret variables not loading on app relaunch by @naman-bruno in #7283 - fix: .env file not being picked up in collections (Windows) by @pooja-bruno in #7190 - fix: license key activation failing issue (Windows) by @sid-bruno - fix: request latency regression (Windows) by @naman-bruno Full Changelog: v3.1.3....v3.1.4

Pin: `winget install --id Bruno.Bruno --version 3.1.4 --exact`

#### 3.1.3 — 2026-02-20

- x64 nullsoft (machine): bruno_3.1.3_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.3/bruno_3.1.3_x64_win.exe
  - sha256: 539219845509fe2fce6ee8fdb5ae13a82adb13cf2b6ea6a340d46df8564cb448
- x64 nullsoft (user): bruno_3.1.3_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.3/bruno_3.1.3_x64_win.exe
  - sha256: 539219845509fe2fce6ee8fdb5ae13a82adb13cf2b6ea6a340d46df8564cb448
- x64 wix (machine): bruno_3.1.3_x64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.3/bruno_3.1.3_x64_win.msi
  - sha256: 7aa3c1e7d13c325bc652a38c2bcddc75361344e2f1d2bd0b7185a062ca6fd159
- x64 zip: bruno_3.1.3_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.3/bruno_3.1.3_x64_win.zip
  - sha256: 032dfed27f068f516a9efad53fe6ef8f5184be5e48a1c738d23d06ebbb210cb0
- arm64 nullsoft: bruno_3.1.3_arm64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.3/bruno_3.1.3_arm64_win.exe
  - sha256: 1461392323a31b2bca3a8d469327c40a749e8762bbe068a851c4ba2852d2cf14
- arm64 wix (machine): bruno_3.1.3_arm64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.3/bruno_3.1.3_arm64_win.msi
  - sha256: 41e7be9a3dc5f60584ce00b26e5763aefcd791aa7a5186e2e2964d127aced833
- arm64 zip: bruno_3.1.3_arm64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.3/bruno_3.1.3_arm64_win.zip
  - sha256: ca447ceb981356c81425e1a36a6c0ee266080898c761039df15678ad7bd90bcb
Release notes: Changelog Fixes - fix: collection settings are missing after app restart by @naman-bruno in #7240 - fix(cli): preserve request item type during import and fail on unsupported types by @rameshsunkara in #7207 - fix: disable proxy in vault client by default by @lohit-bruno - fix: import options are not showing up upon clicking on fetch in bruno button by @sanjaikumar-bruno

Pin: `winget install --id Bruno.Bruno --version 3.1.3 --exact`

#### 3.1.2 — 2026-02-18

- x64 nullsoft (machine): bruno_3.1.2_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.2/bruno_3.1.2_x64_win.exe
  - sha256: 9fd728b515d1b40efe2e2ed85f0a37e0d5960e706ae43fe9dc51c9a1153ff541
- x64 nullsoft (user): bruno_3.1.2_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.2/bruno_3.1.2_x64_win.exe
  - sha256: 9fd728b515d1b40efe2e2ed85f0a37e0d5960e706ae43fe9dc51c9a1153ff541
- x64 wix (machine): bruno_3.1.2_x64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.2/bruno_3.1.2_x64_win.msi
  - sha256: a80f1f1749b231be8fec6a6c6af1fcb78cba935b5be8a045e0961fe14a59a905
- x64 zip: bruno_3.1.2_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.2/bruno_3.1.2_x64_win.zip
  - sha256: c75fb37795f90c61021c52509b8637d0f8513ad28ae0fde6f9a7d1bdc6df7757
- arm64 nullsoft: bruno_3.1.2_arm64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.2/bruno_3.1.2_arm64_win.exe
  - sha256: 32437c5d0008237550a2805102efe138775172d7d6726a7ea2b0fc5538d60a16
- arm64 wix (machine): bruno_3.1.2_arm64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.2/bruno_3.1.2_arm64_win.msi
  - sha256: c2f471116d0588ca8fbef702b137d7c251db33644a32d233689c11093e0bc6a1
- arm64 zip: bruno_3.1.2_arm64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.2/bruno_3.1.2_arm64_win.zip
  - sha256: 3c7bb3732dc88e2f7bd4518bdf14beb2970377d3ca21fe29d2a2d624d4c6e38c
Release notes: Changlog Fixes - fix: normalize Windows paths for cross-platform compatibility by @naman-bruno in #7185 - fix: isJson assertion fails after res.setBody() with object in node-vm by @lohit-bruno in #7191 - fix: YML-based collections not being detected when cloning Git repository by @naman-bruno

Pin: `winget install --id Bruno.Bruno --version 3.1.2 --exact`

#### 3.1.1 — 2026-02-17

- x64 nullsoft (machine): bruno_3.1.1_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.1/bruno_3.1.1_x64_win.exe
  - sha256: 26186247b493a6531b5d45ec575ba5a1a2cd3e677bc9ec3b391fd37b79abf252
- x64 nullsoft (user): bruno_3.1.1_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.1/bruno_3.1.1_x64_win.exe
  - sha256: 26186247b493a6531b5d45ec575ba5a1a2cd3e677bc9ec3b391fd37b79abf252
- x64 wix (machine): bruno_3.1.1_x64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.1/bruno_3.1.1_x64_win.msi
  - sha256: 17f1f350fa2165b2ce9f9a399344b9afe74157f7ffcc0e30d82af4f69515e11b
- x64 zip: bruno_3.1.1_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.1/bruno_3.1.1_x64_win.zip
  - sha256: 5e09af3e4c7b046a97df7aa0632761cef309744200f7dd1f0d725161dcfb1127
- arm64 nullsoft: bruno_3.1.1_arm64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.1/bruno_3.1.1_arm64_win.exe
  - sha256: 9b25603fcd2a396885d9d2ba60d4a96518a36b9bc2ed8454e96bb4444d2ebf28
- arm64 wix (machine): bruno_3.1.1_arm64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.1/bruno_3.1.1_arm64_win.msi
  - sha256: b76dde758094730b36e2c979d89556023dabb3773a907b441fa58369fc6b8c41
- arm64 zip: bruno_3.1.1_arm64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.1/bruno_3.1.1_arm64_win.zip
  - sha256: 51b345fe3dc262bffb5ecb4cb6e29f5b6445e167b9f9aeb97622ea96b15b738f
Release notes: Changlog Fixes - fix: update protobuf and import path handling in opencollection by @naman-bruno in #7166 - fix: use cached system proxy and newer proxy config for license and secret managers by @lohit-bruno - fix: secret configuration not loading for Git-imported collections on Windows by @gopu-bruno - fix: allow proxy to make pinned cert checks by @sid-bruno

Pin: `winget install --id Bruno.Bruno --version 3.1.1 --exact`

#### 3.1.0 — 2026-02-16

- x64 nullsoft (machine): bruno_3.1.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.0/bruno_3.1.0_x64_win.exe
  - sha256: 5c67bca7187edb9ddc25d4b16872f9a3b3da13cf2f3b6051d68aba0b49422e0b
- x64 nullsoft (user): bruno_3.1.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.0/bruno_3.1.0_x64_win.exe
  - sha256: 5c67bca7187edb9ddc25d4b16872f9a3b3da13cf2f3b6051d68aba0b49422e0b
- x64 wix (machine): bruno_3.1.0_x64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.0/bruno_3.1.0_x64_win.msi
  - sha256: 4a1a78006b6c5905fdfaf5f5482f9cc54107072e9189df2b2833def9fa576b6b
- x64 zip: bruno_3.1.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.0/bruno_3.1.0_x64_win.zip
  - sha256: e51131d3e78f688c72fd66debae155d06077323ff330e96d81d6132d5c99fd6f
- arm64 nullsoft: bruno_3.1.0_arm64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.0/bruno_3.1.0_arm64_win.exe
  - sha256: e63f6830bb4c8729137cffd7548a839013a5eb71d609340c6bdf17e2b8682807
- arm64 wix (machine): bruno_3.1.0_arm64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.0/bruno_3.1.0_arm64_win.msi
  - sha256: 9aa1164b969b41a8230bbfba8f42f9a0cd0ba31777adcb3c6578562b80448346
- arm64 zip: bruno_3.1.0_arm64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.1.0/bruno_3.1.0_arm64_win.zip
  - sha256: 8c2e9e4e2070adbc96bd1670b5ce263039f3cf444222120a8427cb0c0d15de03
Release notes: Changelog Features - feat: add script to list changed packages by @sid-bruno in #6678 - feat: add zoom controls to key mappings and update key display in preferences by @Pragadesh-45 in #6765 - feat: apply modified dataBuffer to the response by @Pragadesh-45 in #6023 - feat: add default .gitignore file creation in workspace and collection by @naman-bruno in #6778 - feat: workspace .env file support by @naman-bruno in #6777 - feat: Improve response content type detection and SVG handling by @abhishek-bruno in #6741 - feat: autosave missing actions in middleware by @pooja-bruno in #6781 - feat: show skipped requests with parsing errors in report by @sanjaikumar-bruno in #6780 - feat: allow collection environment and environment file to be used together in run command by @abhishek-bruno in #6784 - feat: implement translation utilities for converting Bruno scripts to pm format by @sanish-bruno in #6761 - feat: add node-vault util functions by @lohit-bruno in #6796 - feat: add support for interpolation on mockDataFunctions by @Pragadesh-45 in #6393 - feat: Implement isSafeMode() API by @datag and @pooja-bruno in #5760 - feat: enhance SaveRequestsModal to handle environment drafts by @naman-bruno in #6857 - feat: add certs and proxy config for bruno-cli oauth2 requests by @lohit-bruno in #6423 - feat: add user-agent support in gRPC client channel options by @sanish-bruno in #6808 - feat: enhance OAuth2 support in snippet generation by @stupidly-logical in #6592 - feat: js api supports get path params by @Skrivoo in #5235 - feat: status indicator for pre and post request scripts by @Pragadesh-45 in #6865 - feat: preferences as tab by @Pragadesh-45 and @anusree-bruno in #6786 - feat: bruno app instances handling updates by @lohit-bruno in #6748 - feat: add header validation by @pooja-bruno in #6859 - feat: transient request by @chirag-bruno in #6878 - feat: Environments color by @MathieuDreano, @sid-bruno, and @pooja-bruno in #6970 - feat: add resizable columns to table by @pooja-bruno in #6843 - feat: add search functionality to environment variables by @Pragadesh-45 in #6659 - feat: add custom AppMenu component for windows & linux by @naman-bruno in #6934 - feat: implement dynamic terminal theming based on app theme by @chirag-bruno in #6812 - feat: support for additional context roots in opencollection by @naman-bruno in #6995 - feat: add certs and proxy config to bru.sendRequest API by @lohit-bruno in #6988 - feat: dotenv visual editor by @naman-bruno in #6964 - feat: enhance ShareCollection component by @naman-bruno in #7016 - feat: add ZIP file import for collections by @naman-bruno in #7063 - feat: add nightly build configuration for Windows and update build scripts by @Pragadesh44-Bruno and @sid-bruno - feat: autosave for script files by @pooja-bruno - feat: enhance GitHubTab and UrlTab with error handling and form submission by @abhishek-bruno - feat: asymmetric keys by @sid-bruno - feat: git auto fetch by @chirag-bruno - feat: Improve secret variable masking for CLI env files by @abhishek-bruno - feat: enhance workspace tab management by adding missing permanent tabs by @sanjaikumar-bruno - feat: MSI autoupdate config internal by @sid-bruno - feat: visual git diff viewer by @naman-bruno - feat: git option in share modal by @naman-bruno - feat: filter out transient items in collection exports and requests by @chirag-bruno Fixes - fix: Large Response Warning download button functionality by @gopu-bruno in #6695 - fix: opencollection format registration on collection import by @naman-bruno in #6735 - fix: update ResponseExampleUrlBar styles for better overflow handling by @abhishek-bruno in #6535 - fix: seq becoming NaN when moving requests to collection root by @sanjaikumar-bruno in #6727 - fix: ephemeral environment variables being saved to filesystem by @sanjaikumar-bruno in #6723 - fix: Handle deleted environment variables in UI by @sanjaikumar-bruno in #6703 - fix: import paths are not considered when refreshing methods within grpc by @sanish-bruno in #6726 - fix: correct GitHub version badge URL in readme files by @anzz14 in #6772 - fix: workspace name case mismatch by @abhishek-bruno in #6560 - fix: update modal size in CreateEnvironment component from small to medium for consistency by @abhishek-bruno in #6791 - fix: autosave for environment tabs and folder-level auth by @sanjaikumar-bruno in #6510 - fix: move yup from peerDependencies to dependencies by @gopu-bruno in #6794 - fix: handle optional clientSecret in OAuth2 authorization header by @abhishek-bruno in #6186 - fix: websocket message scroll by @pooja-bruno in #6503 - fix: env vars loading and switching using react-virtuoso by @shubh-bruno in #6790 - fix: add compute key for virtual table by @sid-bruno in #6807 - fix: response format auto-switch on content type change by @shubh-bruno in #6773 - fix: rename requests double notifications by @shubh-bruno in #6677 - fix: prevent URL marking within variable patterns in CodeMirror by @chirag-bruno in #6680 - fix: timestamp tooltip message by @pooja-bruno in #6688 - fix: resolve Load Request button error when loading large collection by @sreelakshmi-bruno in #6809 - fix: basic Auth inheritance in code generation by @sanjaikumar-bruno in #6805 - fix: resolve tab flickering when switching between requests by @gopu-bruno in #6825 - fix: improve {{var}} detection using cursor-based brace matching by @shubh-bruno in #6691 - fix: variables set via setVar should be interpolated only during runtime by @bijin-bruno in #6823 - fix: cli proxy config updates by @lohit-bruno in #6846 - fix: update clone collection location logic based on active workspace by @naman-bruno in #6841 - fix: lag when moving Electron window (issue #5203) by @qweme32 in #6771 - fix: prevent JS hint leak on Ctrl+Space and show allowed root hints by @Abhinandan-pixel in #6776 - fix: get certs and proxy config based on oauth2 token and refresh urls instead of resource url by @lohit-bruno in #6164 - fix: prevent response truncation in recursive collection runner by @gopu-bruno in #6862 - fix: openapi query param import by @pooja-bruno in #6241 - fix: autosave for global environments by @sanjaikumar-bruno in #6872 - fix: Code Generation for Basic Auth by @sanjaikumar-bruno in #6814 - fix(websocket): add API Key query params support and OAuth2 inheritance by @pooja-bruno in #6271 - fix: update linting commands to use npx for better compatibility by @kanakkholwal in #6840 - fix: disable editing runtime variable if key is same as collection by @shubh-bruno in #6835 - fix: openapi spec with example values by @pooja-bruno in #6476 - fix: duplicate toast when saving an example by @sanish-bruno in #6952 - fix: path-param variable edit popup by @shubh-bruno in #6955 - fix: ensure terminal gains focus upon opening in the console tab by @abhishek-bruno in #6951 - fix: CLI Buffer handling in variable interpolation by @so-iwamoto in #6922 - fix: prevent crash when reordering query params with empty name by @gopu-bruno in #6938 - fix: system proxy resolver logic updates by @lohit-bruno in #6273 - fix: async fns calls window.send after the window is destroyed by @sanish-bruno in #6747 - fix: cURL auth import for digest and ntlm by @pooja-bruno in #6292 - fix: refresh scopeInfo after variable save in tooltip editor by @pooja-bruno in #6935 - fix: global environment flag for cli by @naman-bruno in #6969 - fix: update certificate type handling in stringifyCollection function by @naman-bruno in #6986 - fix: ensure app gains focus when restoring main window by @lohit-bruno in #6984 - fix: cache system proxy by @lohit-bruno in #6990 - fix: support multiline example names by @gopu-bruno in #6895 - fix: support multiline descriptions in example blocks by @gopu-bruno in #6879 - fix: restore cursor focus on save and show placeholder for empty cells by @pooja-bruno in #6795 - fix: response pane actions for GQL requests by @shubh-bruno in #6911 - fix: refocus search bar in code editor on Ctrl/Cmd + F by @shubh-bruno in #6980 - fix: update sidebar item copy toast message by @gopu-bruno in #7011 - fix: YML parsing and stringification to support post-response variables by @naman-bruno in #7009 - fix: default format on import modal by @naman-bruno in #7017 - fix: add missing URL helper translations for Bruno to Postman export by @pooja-bruno in #7026 - fix: code editor null value crash by @pooja-bruno in #7039 - fix: close saved deleting collections by @chirag-bruno in #7048 - fix: improve error message formatting by @chirag-bruno in #7059 - fix: handle tests while importing opencollection yml files by @naman-bruno in #7067 - fix: header and var tooltip overflow by @pooja-bruno in #7082 - fix: disable text-overflow ellipsis on checkbox column by @gopu-bruno in #7080 - fix(bruno-requests): mark node.js built-in modules as external in rollup config by @lohit-bruno in #7095 - fix: improve value handling in editor components by @sid-bruno in #7098 - fix: improve environment variable comparison by stripping UIDs by @sid-bruno in #7100 - fix: filter existing paths for apispec in workspace by @naman-bruno in #7104 - fix: update codemirror bg for pastel light theme by @gopu-bruno in #7110 - fix: example response statusCode not persisted in yml file by @abhishek-bruno in #7117 - fix: fix save all modified requests while closing the app by @bijin-bruno in #7118 - fix: enhance tag handling and validation in collection import/export by @abhishek-bruno in #7107 - fix(node-vm): scripting context and module resolution by @lohit-bruno in #7033 - fix: resolve 'unknown collection format' error in OpenAPI open in bruno import by @gopu-bruno - fix: on instead of once by @sid-bruno - fix: removed node-vault library, added certs and proxy support for bruno-cli node-vault by @lohit-bruno - fix: remove period validation from collection item names by @naman-bruno - fix: update collection location logic in import collection modals by @naman-bruno

Pin: `winget install --id Bruno.Bruno --version 3.1.0 --exact`

#### 3.0.2 — 2026-01-07

- x64 nullsoft (machine): bruno_3.0.2_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.0.2/bruno_3.0.2_x64_win.exe
  - sha256: 9520156b5d187b8ba896ec9b4a5153cc912be26f18efce898518a852899af246
- x64 nullsoft (user): bruno_3.0.2_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.0.2/bruno_3.0.2_x64_win.exe
  - sha256: 9520156b5d187b8ba896ec9b4a5153cc912be26f18efce898518a852899af246
- x64 wix (machine): bruno_3.0.2_x64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.0.2/bruno_3.0.2_x64_win.msi
  - sha256: 6fe2265aec496f93cc53ec6bcf3750da9d790b5daa809b2814e94fc90ca647cb
- x64 zip: bruno_3.0.2_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.0.2/bruno_3.0.2_x64_win.zip
  - sha256: bb1e3c609cb6855fb40b9dc1b8ee5446677ad6e9b02bcdcc15de09370dd544e7
- arm64 nullsoft: bruno_3.0.2_arm64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.0.2/bruno_3.0.2_arm64_win.exe
  - sha256: 695286e25d208e7b1a9c7fbb1e4ba693eae409b7a36f988df6402b751712c3e4
- arm64 wix (machine): bruno_3.0.2_arm64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.0.2/bruno_3.0.2_arm64_win.msi
  - sha256: 224c80c2ef2990e0162924333965c898578fb472e7670312e5099c050c8ff6a8
- arm64 zip: bruno_3.0.2_arm64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.0.2/bruno_3.0.2_arm64_win.zip
  - sha256: 05dba1426f2e126d956cf6dc74b7886b165a366b945d8551e56dd6846697822b
Release notes: Changelog Fixes - refactor: improve tab state management in ResponsiveTabs component by @abhishek-bruno in #6687 - fix: Query URL overflow pushes the action buttons outside view in gRPC and HTTP by @chirag-bruno in #6706 - chore: minor url bar alignment fixes and refactor by @bijin-bruno in #6714 - fix: allow normal paste behavior for non-cURL commands in QueryUrl component by @abhishek-bruno in #6718 - fix: workspace already opened by @naman-bruno in #6721 - refactor: remove HTML validation functions and simplify HtmlPreview component logic by @abhishek-bruno in #6730 - fix: opencollection format registration on collection import by @naman-bruno in #6735

Pin: `winget install --id Bruno.Bruno --version 3.0.2 --exact`

#### 3.0.1 — 2026-01-06

- x64 nullsoft (machine): bruno_3.0.1_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.0.1/bruno_3.0.1_x64_win.exe
  - sha256: b33d0ae7b9026a5f2b59ed3d88161e7c08ac150fc7aeb8fc61c7868e939facd1
- x64 nullsoft (user): bruno_3.0.1_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.0.1/bruno_3.0.1_x64_win.exe
  - sha256: b33d0ae7b9026a5f2b59ed3d88161e7c08ac150fc7aeb8fc61c7868e939facd1
- x64 wix (machine): bruno_3.0.1_x64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.0.1/bruno_3.0.1_x64_win.msi
  - sha256: a274da9ad1b646301b77c3674af138a887ad8f69f8a5c4345bb53a9d0d3eb3c8
- x64 zip: bruno_3.0.1_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.0.1/bruno_3.0.1_x64_win.zip
  - sha256: d63367d8d986ebd55985120dde75e86ee52a2d86dc3e2ab958d2b2f4280860d9
- arm64 nullsoft: bruno_3.0.1_arm64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.0.1/bruno_3.0.1_arm64_win.exe
  - sha256: ea326f7ffa824c5cceca67c1110c9f365e15b3dfb40c71aad46b716a0241e581
- arm64 wix (machine): bruno_3.0.1_arm64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.0.1/bruno_3.0.1_arm64_win.msi
  - sha256: 88cb07acfe4dd0c50a66888820ded7ac0b78f2a5ae03a4b1723d6a40ab611283
- arm64 zip: bruno_3.0.1_arm64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.0.1/bruno_3.0.1_arm64_win.zip
  - sha256: 6f1a5eac93bb90a08cae3411f3eb37ccbb55a3b1e7300e3b97aabab5e06b2622
Release notes: Resolved an issue causing the app to fail to open on macOS x64/Intel systems by @sid-bruno

Pin: `winget install --id Bruno.Bruno --version 3.0.1 --exact`

#### 3.0.0 — 2026-01-05

- x64 nullsoft (machine): bruno_3.0.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.0.0/bruno_3.0.0_x64_win.exe
  - sha256: 2c2ba793d3d9796676a99a954072eca13a159e9a77bb7d8062333b4596300252
- x64 nullsoft (user): bruno_3.0.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.0.0/bruno_3.0.0_x64_win.exe
  - sha256: 2c2ba793d3d9796676a99a954072eca13a159e9a77bb7d8062333b4596300252
- x64 wix (machine): bruno_3.0.0_x64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.0.0/bruno_3.0.0_x64_win.msi
  - sha256: b9a661b26f391ccc42a483ff52b45d9bccef9aa88a8ce6ea2a8b17f8d6648969
- x64 zip: bruno_3.0.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.0.0/bruno_3.0.0_x64_win.zip
  - sha256: 2c5594a82781debada61f3275d733175a6026a1edb8df35151607eac84d595af
- arm64 nullsoft: bruno_3.0.0_arm64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v3.0.0/bruno_3.0.0_arm64_win.exe
  - sha256: d291697e7a256c682e0fb50d42e6b7796889c08f71c2d61a8a44992101e4980f
- arm64 wix (machine): bruno_3.0.0_arm64_win.msi
  - url: https://github.com/usebruno/bruno/releases/download/v3.0.0/bruno_3.0.0_arm64_win.msi
  - sha256: e48c477c06d37063f2e4cdc95fcda218b47bf58f089b401cc2f5da3106f059f0
- arm64 zip: bruno_3.0.0_arm64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v3.0.0/bruno_3.0.0_arm64_win.zip
  - sha256: 53bb2801eeec9e626907a6879bc773424ecfca35d322a36eb4572c853b4cffdd
Release notes: Changelog Fixes - fix: prevent double serialization of websocket text messages (#6173) by @Praveenkumar02023 in #6182 - fix: inaccurate process metrics by @chirag-bruno in #6257 - fix: WS and GRPC request not getting saved (opencollection) by @naman-bruno in #6267 - fix: Exporting Bruno collection as Postman collection omits collection variables by @chirag-bruno in #6117 - fix: match to full string by @sid-bruno in #6272 - fix: WS variable interpolation by @chirag-bruno in #6184 - fix: wrap script in async IIFE to create isolated scope by @sanish-bruno in #6229 - fix: update content security policy to remove unsafe-inline by @sid-bruno in #6305 - fix: clone collection by @naman-bruno in #6322 - fix: traffic light styling on light mode by @naman-bruno in #6333 - fix: path for newly added collection & remove option for outside collections by @naman-bruno in #6331 - fix: CWE-347: Improper Verification of Cryptographic Signature by @bijin-bruno in #6336 - fix: Folder-level configuration not applied when using "Configure requests to run" by @Pragadesh-45 in #6320 - fix: Support @contentType for multiline values by @SrsDanny in #6217 - fix: for 'Enter' key double submission issue by @james-ha-bruno in #6356 - fix: update default state for advanced options and change default collection format by @abhishek-bruno in #6366 - fix: Consistent multipart form handling and @contentType support in examples by @sanish-bruno in #6325 - fix: gRPC oauth2 call is not taking ssl cert and proxy config by @sanish-bruno in #6313 - fix: tag persistence tests by @sanish-bruno in #6384 - fix: workspace env count & path issue by @naman-bruno in #6383 - fix: refactor response examples to use MenuDropdown and Editable components by @sanish-bruno in #6382 - fix: default workspace error checking by @naman-bruno in #6379 - fix: Improved logic for determining right side expandability of Response Actions by @abhishek-bruno in #6398 - fix: import modal logic by @naman-bruno in #6409 - fix: bruno crash on request rename by @naman-bruno in #6410 - fix: tabs z-index issue by @naman-bruno in #6411 - fix: include request URL in prompt variable extraction by @Pragadesh-45 in #6412 - fix: response pane optimizations by @abhishek-bruno in #6395 - fix: openapi body import by @pooja-bruno in #6288 - fix: Only update scroll position when unmounting the editor by @Its-treason in #6420 - fix(playwright): interpolate request url with odata param by @bijin-bruno in #6428 - fix: response pane size when devtool open by @pooja-bruno in #6380 - fix: OpenAPI import fails when securitySchemes are not defined by @sanjaikumar-bruno in #6429 - fix: close all collection in workspace by @naman-bruno in #6434 - fix: app titlebar windows by @abhishek-bruno in #6437 - fix: opencollection export as bruno json by @naman-bruno in #6444 - fix: crash when saving empty GraphQL query in YAML collections by @sanjaikumar-bruno in #6453 - fix: duplicate message on workspace rename and close by @naman-bruno in #6457 - fix: unable to add assertions to a request by @sanish-bruno in #6435 - fix: move gql variables prettify icon to a better position by @barelyhuman in #6455 - fix: example icon color by @sanish-bruno in #6447 - fix: export/import icons and styles by @naman-bruno in #6462 - fix: updated the selected state colors of tabs in dev tools by @chirag-bruno in #6465 - fix: Terminal Resize by @chirag-bruno in #6448 - fix: reverted the easy creation flow to the old, modal based approach by @chirag-bruno in #6449 - fix: auto-expand collapsed sidebar section when clicking action buttons by @pooja-bruno in #6468 - fix: restrict keyboard event handling to modal elements only by @Pragadesh-45 in #6408 - fix: var into tooltip for faker vars by @pooja-bruno in #6312 - fix: refactor default tab selection logic for correct tab persistance by @abhishek-bruno in #6473 - fix: copy response based on preview toggle and selected format by @pooja-bruno in #6436 - fix: update selectedTab prop to use selectedViewTab by @abhishek-bruno in #6478 - fix: run formatResponse execution on copy button click by @pooja-bruno in #6485 - fix: JSON response examples being saved as [object Object] in YAML format by @sanjaikumar-bruno in #6488 - fix: oauth2 url update by @lohit-bruno in #6489 - fix: linux titlebar by @naman-bruno in #6483 - fix: prevent double serialization of websocket text messages (#6173) by @Praveenkumar02023 in #6182 - fix: handle additional context root paths for node-vm by @lohit-bruno in #6491 - fix: update SensitiveFieldWarning prop name in WsseAuth component by @abhishek-bruno in #6492 - fix: autosave by @pooja-bruno in #6392 - fix: pasting request ito parent folder even if request is selected by @pooja-bruno in #6446 - fix: initialize selected environment correctly to prevent flicker by @abhishek-bruno in #6536 - fix: replace hardcoded yellow text color with theme brand color by @gopu-bruno in #6538 - fix: update dropdown item text color to use theme text color by @abhishek-bruno in #6543 - fix: unify hover and keyboard focus styles for collection component by @gopu-bruno in #6544 - fix: default workspace docs by @naman-bruno in #6548 - fix: error style for env & workspace rename by @naman-bruno in #6553 - fix: update secret var alert icon to use danger text color by @gopu-bruno in #6562 - fix: example tab not closing post delete, tab not found issue when i … by @sanish-bruno in #6561 - fix: use generic error component, tab padding fixes by @sanish-bruno in #6563 - fix: colors by @sanish-bruno in #6564 - fix: oauth setup component colors by @sanish-bruno in #6565 - fix: oauth checkbox, button styles by @sanish-bruno in #6572 - fix: use themes within protobuf section by @sanish-bruno in #6575 - fix: radios buttons to use primary color by @sanish-bruno in #6576 - fix: cookie modal theme by @sanish-bruno in #6580 - fix: Add New Request CTA alignment in tabs by @chirag-bruno in #6584 - fix: oauth2 callback url field placeholder text update by @lohit-bruno in #6588 - fix: auth panel UI updates by @gopu-bruno in #6590 - fix: UI table border color by @gopu-bruno in #6597 - fix: prefrence modal width by @pooja-bruno in #6595 - fix: theme within grpc timeline by @sanish-bruno in #6581 - fix: collection already opened in other workspace by @naman-bruno in #6574 - fix: resolve request pane tooltip visibility issue by @gopu-bruno in #6615 - fix: folder docs save button visibility issue by @gopu-bruno in #6617 - fix: use theme styling within timeline by @sanish-bruno in #6604 - fix: invalid collection in workspace by @naman-bruno in #6612 - fix: update @opencollection/types to version 0.6.0 and refactor auth … by @helloanoop in #6619 - fix(UX): fix sandbox selector options background color by @bijin-bruno in #6626 - fix: toggle switch color by @pooja-bruno in #6627 - fix: modal icon colors to match button colors by @sanjaikumar-bruno in #6624 - fix: folder settings var panel table alignment by @gopu-bruno in #6631 - fix: text size inconsistency in collection settings by @sanjaikumar-bruno in #6630 - fix: add authmode selector within in graphql by @sanish-bruno in #6636 - fix: file picker component overflow by @sanish-bruno in #6635 - fix: tooltip styling by @sanish-bruno in #6632 - fix: codeMirror error colors to respect theme by @sanjaikumar-bruno in #6633 - fix: add a hard sequence in SSE and WS requests by @SW881 in #6569 - fix: escape closing tags in generated docs by @naman-bruno in #6645 - fix(ux): fix sidebar invisible for environments tab, grpc and ws by @bijin-bruno in #6648 - fix: reverse sorting order for websocket messages by @sid-bruno in #6652 - fix: update logic for checking formdata instances by @lohit-bruno in #6643 - fix: lighten dark pastel theme modal background color by @bijin-bruno in #6653 - fix: apply infoTip styling to CodeMirror tooltip by @gopu-bruno in #6658 - fix: update hover background color in dark theme by @abhishek-bruno in #6666 - fix: atomic write issue by @naman-bruno in #6664 - fix: opencollection export as bruno json by @pooja-bruno - fix: api spec feature respect preference settings by @abhishek-bruno - fix: duplicate toast notifications and incorrect count in collection import by @sanjaikumar-bruno - fix: Git sidebar upgrade banner crash by @sanjaikumar-bruno - fix: format JSON responses in History tab by @sanjaikumar-bruno - fix: share button colors by @naman-bruno - fix: Change buttons in Trial UI to match v3 by @sid-bruno - fix: apply global checkbox styling in Run Collection Item by @gopu-bruno - fix: vault test by @lohit-bruno - fix(theme): file item name color by @bijin-bruno - fix: license input width by @pooja-bruno - fix: yml file save by @naman-bruno - fix: git UI theme by @chirag-bruno - fix: right align action items in git status bar by @gopu-bruno - fix: import collection modal theme by @chirag-bruno - fix: vault tests by @lohit-bruno - fix: improve secrets manager table styling with theme consistency by @gopu-bruno Features - feat: autoSave by @srikary12 in #582 - feat: add copy paste feature for folder by @pooja-bruno in #6097 - feat: Inbuilt Terminal by @naman-bruno @chirag-bruno in #6066 - feat: introduce REQUEST_TYPES constant and update item deletion logic by @abhishek-bruno in #6244 - feat: Streamline gRPC requests to use right context by @Pragadesh-45 in #6308 - feat: Include pre-request and post-response tests in JUnit reports by @sanjaikumar-bruno in #6284 - feat: enhance collection settings with environment modals by @sanjaikumar-bruno in #6242 - feat: Moved Workspace Selector to the Titlebar of the window. by @abhishek-bruno in #6319 - feat: Increase visibility of text in Request tabs by @sanjaikumar-bruno in #6243 - feat: changes to incorporate oc schema updates by @helloanoop in #6335 - feat: apispec support by @naman-bruno in #6337 - feat: add hideApiSpecPage dispatch by @naman-bruno in #6344 - feat: design updates by @helloanoop in #6345

Pin: `winget install --id Bruno.Bruno --version 3.0.0 --exact`

#### 2.15.1 — 2025-12-05

- x64 nullsoft (user): bruno_2.15.1_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.15.1/bruno_2.15.1_x64_win.exe
  - sha256: 03ea7056f521deefdbf58806144b448f197eabb0d3eb7e9d38876675e9fa21cd
- x64 zip: bruno_2.15.1_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.15.1/bruno_2.15.1_x64_win.zip
  - sha256: 50512534bf19ab16c311b3cbf7a2e344a8300041017a45d7d55234f1470c561d
Release notes: Fixes - fix: variable value handling in the inline variable editor by @Pragadesh-45 in #6281 - fix: request and response pane resize logic by @pooja-bruno in #6294 - fix: sso login issue, user getting redirected to incorrect idp by @naman-bruno - fix: streamline gRPC requests to use right context by @Pragadesh-45 in #6308 Others - feat: remove deprecation warnings from post response vars in Collection, Folder, and RequestPane settings by @sanjaikumar-bruno in #6291

Pin: `winget install --id Bruno.Bruno --version 2.15.1 --exact`

#### 2.15.0 — 2025-11-28

- x64 nullsoft (user): bruno_2.15.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.15.0/bruno_2.15.0_x64_win.exe
  - sha256: 951be0e6d6fc8f4b48bd5573f5d4990806c1cd92737d4e977c0fee6f523a33ec
- x64 zip: bruno_2.15.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.15.0/bruno_2.15.0_x64_win.zip
  - sha256: ac3a7a58482621b6528b151be8d5f14c8c9271b4364af2f25af3adc67e86b41f
Release notes: Features - feat: Allow ctrl/cmd + click to open URLs present in codemirror by @abansal21 @chirag-bruno @sid-bruno in #5930 - feat: add stop request button in api url bar by @adarshajit in #5993 - feat: support newlines in params, and variables by @pooja-bruno in #5795 - feat: edit variable in place by @pooja-bruno in #6069 - feat: prompt save before collection close by @chirag-bruno in #6062 - feat: user prompt variables by @rbonestell @bijin-bruno in #6104 - feat: add variable interpolation support for WebSocket requests by @chirag-bruno in #6064 - feat: HTTP Streaming by @davirxavier @sid-bruno in #6074 - feat: collection test results and filtering by @morgan-se @sid-bruno in #6070 - feat: support v1 reflection for grpc server reflection by @sanish-bruno in #5653 - feat: Add tabs component for pre-request and post-response scripts by @pooja-bruno in #5926 - feat: encapsulate tab boundaries into a hook for managing pane dimensions by @barelyhuman in #5878 - feat: close all collections at once by @Kwaadpepper @sanjaikumar-bruno in #5994 - feat: test runner ui revamp by @chirag-bruno in #6011 - feat: mask secret values from --env-var flags in CLI reports by @sanjaikumar-bruno - feat: ultimate edition self serve trials by @sid-bruno Fixes - fix: modify bruno to postman converter to include tests in event section by @abhishek-bruno in #6051 - fix: update json request and response formatting logic by @lohit-bruno in #6079 - fix: handle escaped forward slashes by fast-json-format library upgrade by @lohit-bruno in #6075 - fix: curl import fails for custom content-types by @dawidgora in #6083 - fix: import multiple types of example formats from openapi by @sanish-bruno in #6039 - fix: update result structure to use 'name' instead of 'suitename' in JUnit output by @abhishek-bruno in #6120 - fix: environment display in HTML report by @sanjaikumar-bruno in #6055 - fix: prevent import failure for Postman collections with missing responses by @pooja-bruno in #6129 - fix: push event only if exec has content by @Pragadesh-45 in #6121 - fix: sync bruno to postman converter with enterprise edition by @bijin-bruno in #6162 - fix: reduce font size of tab test by @pooja-bruno in #6169 - fix(security): prototype pollution vulnerability in js-yaml by @bijin-bruno in #6168 - fix: Add Error constructors to NodeVM context to fix jsonwebtoken test failures by @chirag-bruno in #6209 - fix: grpc messages vanishes after save if the body contains variables by @sanish-bruno in #6216 - fix: fetching reflection adds draft state in gRPC by @sanish-bruno in #6218 - fix: Enhance Request Item sequencing by @Skewnart @abhishek-bruno in #5975 - fix: hashicorp error message by @ganesh-bruno - fix: improve runner results ui layout and fix autoscroll behaviour by @chirag-bruno Others - chore: refactor bruno to postman converter by @bijin-bruno in #6162 - test: Add test for restoring duplicate hashes in patternHasher by @barelyhuman in #6071 - add: tests for grpc requests by @sanish-bruno in #5800 - refactor: update deprecation messages for Presets and Post Response Vars by @sanjaikumar-bruno in #6230 - add: coderabbit integration by @sid-bruno in #6141 - add: draft for collection and folder settings by @pooja-bruno in #5947 - refactor: update runner tests to use new filter implementation and reusable helpers by @chirag-bruno in #6085 - move: import setting into import collection modal by @pooja-bruno in #5929 - feat: Add deprecation warnings for Presets and Post Response Vars by @sanjaikumar-bruno in #6212 - feat: combine Import Summary & Settings by @pooja-bruno New Contributors - @morgan-se made their first contribution in #3808 - @davirxavier made their first contribution in #4472 - @sajadoncode made their first contribution in #6027 - @adarshajit made their first contribution in #5993 - @dawidgora made their first contribution in #6083 Full Changelog: v2.14.2...v2.15.0

Pin: `winget install --id Bruno.Bruno --version 2.15.0 --exact`

#### 2.14.2 — 2025-11-12

- x64 nullsoft (user): bruno_2.14.2_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.14.2/bruno_2.14.2_x64_win.exe
  - sha256: c30716691b45ef05f69d66ae347d8ab4da4ff16245bc9ad0e814d939d24eb855
- x64 zip: bruno_2.14.2_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.14.2/bruno_2.14.2_x64_win.zip
  - sha256: 7227e0dca0e625e1c79ea22644220751d930aa46a5c57acd7d231fb3708bc1f1
Release notes: Fixes - fix: replace regex with replaceAll for secure string replace by @barelyhuman #6071 - fix JSON body prettify issues by @lohit-bruno #6079 Full Changelog: v2.14.1...v2.14.2

Pin: `winget install --id Bruno.Bruno --version 2.14.2 --exact`

#### 2.14.1 — 2025-11-10

- x64 nullsoft (user): bruno_2.14.1_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.14.1/bruno_2.14.1_x64_win.exe
  - sha256: 9df1bd6681568f7e88deb4d285df6c4170060bcf95bbf42aba057fcc48c6d889
- x64 zip: bruno_2.14.1_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.14.1/bruno_2.14.1_x64_win.zip
  - sha256: 16f79a166406ba9ff70860fe3ba639e0a03ad08f694d03254ac5ae2daaf2e0ab
Release notes: Fixes - fix: URL validation for code generator by @barelyhuman #6054 - fix: render unicodes by fast-json-format library upgrade by @lohit-bruno in #6053 - fix: request tags get removed upon clicking anywhere on the tag #6042 Full Changelog: v2.14.0...v2.14.1

Pin: `winget install --id Bruno.Bruno --version 2.14.1 --exact`

#### 2.14.0 — 2025-11-07

- x64 nullsoft (user): bruno_2.14.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.14.0/bruno_2.14.0_x64_win.exe
  - sha256: bde411165fdbd148c7668fe545b667f65ec583db90a6d3cd9bc70456fe5f9346
- x64 zip: bruno_2.14.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.14.0/bruno_2.14.0_x64_win.zip
  - sha256: 6cda2bd85442baba137354f63cba65ed0aa73d9e9102fe367cfd656616967d2b
Release notes: Features - feat: add visual indicator for GQL requests by @mheidinger in #5679 - feat: add process.env variable support to GraphQL introspection by @anusree-bruno in #5008 - feat: add API Key auth in code generator by @naman-bruno in #4279 - feat: add bru.utils.minifyXml and bru.utils.minifyJson by @0x416c6578 in #5809 - feat: add copy and paste functionality for requests by @pooja-bruno in #5907 - feat: Import Insomnia environments by @sanjaikumar-bruno in #5716 - feat: enhance environment variable persistence handling by @sanjaikumar-bruno in #5783 - feat: fuzzy search for grpc methods list by @abhishek-bruno in #5940 - feat: import and export functionality for collection and global environments by @lohit-bruno in #5910 - feat: response examples by @sanish-bruno in #5936 - feat: Import WSDL to collection by @tester22 in #5015 - feat: add for vault auth mode by @pooja-bruno - feat: import postman/insomnia urls functionality added by @abhishek-bruno Fixes - fix: resolve global env variable becoming undefined on script execution by @abhishek-bruno in #5816 - feat: Optimize MaskedEditor Performance and Simplify Masking Logic by @Pragadesh-45 in #5748 - fix: saving url in response pane by @BlakeGuilloud in #5829 - fix: prettify JSON with variables by @usuhayaa and @lohit-bruno in #5113 and #6038 - fix: show dot on used preset setting by @josbiz in #5164 - fix: dot on unused proxy settings by @josbiz in #5163 - fix: grpc timeline crash by @sanish-bruno in #5999 - fix: High CPU due to WMI queries by @naman-bruno in #5924 - fix: crash on viewing large responses by @naman-bruno in #5647 - fix: Error importing curl with no space in header by @TanishqSingla in #5897 - Fix/client cert passphrase issues by @abhishek-bruno in #5898 - fix: restore text selection and copy in read-only CodeEditor - Issue #5982 by @drchiodo in #5983 - fix: improve URL validation in GenerateCodeItem by @barelyhuman in #5998 - fix: handle options prop defaults for req body apis in safe mode by @lohit-bruno in #6001 - fix: ensure protocolVersion is a number in WebSocket options by @barelyhuman in #6013 - fix: support bin header in gRPC by @jporsay @sanish-bruno in #5869 - fix: handle options in getBody for QuickJS VM by @anusree-bruno in #4614 - fix: process uptime in dev tools by @aquacash5 in #5961 - fix: import environment functionality validations and fixes by @lohit-bruno in #5964 - fix: issue with saving Auth mode by @pooja-bruno in #4708 - fix: added option to revert changes by @anusree-bruno in #4503 - fix: moved custom search to components folder by @anusree-bruno in #5750 - fix: added jsonwebtoken as inbuilt library by @anusree-bruno in #5535 - fix: Fix the space encoding issue by @vipin-sundar in #4478 - fix: incorrect space encode by @chirag-bruno in #5870 - fix: Generate Code does urlencoding twice by @sid-bruno in #5881 - fix: recursive interpolation of dynamic variable by @chirag-bruno in #5900 - fix: export folder and collection level scripts by @abhishek-bruno in #5942 - fix: safe serialise TypedArrays to avoid loosing constructor information by @barelyhuman in #5941 - fix: Multi sub protocol support for web sockets by @barelyhuman in #5903 - fix: Azure CLI not accessible when app launched from Finder on macOS by @pooja-bruno - fix: update $PATH command by @lohit-bruno - fix: vault secrets manager certs and proxy fixes by @lohit-bruno - fix: add defaults for params and headers request prop by @lohit-bruno Others - feat(common): add patternHasher utility for hashing and restoring string from special characters by @sid-bruno in #6032 - tests: add tests for URN parsing by @Pragadesh-45 in #5819 - tests: added tests for replacing invalid variable characters in Postman collection Env by @sanjaikumar-bruno in #4634 - tests: playwright tests for create request with http, gRPC, ws, graphql by @sanish-bruno @abhishek-bruno in #5952 - tests: Change how test runner handles pageWithUserData tests by @sid-bruno in #5922 - tests: refactor request creation location checks in a collection by @bijin-bruno in #5958 - docs: update readme_cn.md by @ZieglerZhu in #4747 - docs: add arch linux install to readme by @bupd in #4569 - docs: Update readme.md by @kosarinin in #5883 - tests: flaky large response test and update app preferences for few tests by @bijin-bruno in #5963 - tests: update test URLs having httpbin. Add redirect chain endpoint to test server by @abhishek-bruno in #5989 - tests: revert increasing playwright worker count by @bijin-bruno in #5906 - fix: incomplete tests by @barelyhuman in #5824 New Contributors - @abhishek-bruno made their first contribution in #5816 - @BlakeGuilloud made their first contribution in #5829 - @ZieglerZhu made their first contribution in #4747 - @usuhayaa made their first contribution in #5113 - @0x416c6578 made their first contribution in #5809 - @bupd made their first contribution in #4569 - @vipin-sundar made their first contribution in #4478 - @kosarinin made their first contribution in #5883 - @TanishqSingla made their first contribution in #5897 - @aquacash5 made their first contribution in #5961 - @drchiodo made their first contribution in #5983 Full Changelog: v2.13.2...2.14.0

Pin: `winget install --id Bruno.Bruno --version 2.14.0 --exact`

#### 2.13.2 — 2025-10-17

- x64 nullsoft (user): bruno_2.13.2_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.13.2/bruno_2.13.2_x64_win.exe
  - sha256: 65f7e8acdf4ab95644e6867ea7ac9efff6520eb31d86379f4f82f6b5b2a06085
- x64 zip: bruno_2.13.2_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.13.2/bruno_2.13.2_x64_win.zip
  - sha256: 03049e6eb93b44b49a4fd6c1fbf43eb5ff74ce71801f0e177ce3ce322eb3c3a1
Release notes: Fixes - fix: harden type checks for buildFormUrlEncodedPayload by @barelyhuman #5811 - fix: enhance URL parameter parsing and interpolation logic by @Pragadesh-45 in #5812 - fix: form-urlencoded logic updates by @lohit-bruno in #5820 - fix: preserve original casing in websocket URL by @sid-bruno in #5822 Full Changelog: v2.13.1...v2.13.2

Pin: `winget install --id Bruno.Bruno --version 2.13.2 --exact`

#### 2.13.1 — 2025-10-15

- x64 nullsoft (user): bruno_2.13.1_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.13.1/bruno_2.13.1_x64_win.exe
  - sha256: 5d57aeeb78c85da84d66d31dbebfb406c10d7e033552e10428f5cf2eb31e5ec9
- x64 zip: bruno_2.13.1_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.13.1/bruno_2.13.1_x64_win.zip
  - sha256: 1b74bdb8bcb14d63524028dde9b51d48b3b96582bf30f25a85723bd01fd7a7bb
Release notes: Fixes - fix: duplicate gRPC requests by @sanish-bruno in #5793 - fix: remove redundant ipcRenderer ready invocation by @barelyhuman in #5799 Full Changelog: v2.13.0...v2.13.1

Pin: `winget install --id Bruno.Bruno --version 2.13.1 --exact`

#### 2.13.0 — 2025-10-14

- x64 nullsoft (user): bruno_2.13.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.13.0/bruno_2.13.0_x64_win.exe
  - sha256: fa4495909305fcf93f93501a6e1165bc5f6ddf1781e3ce37f8fc550b56c7a95c
- x64 zip: bruno_2.13.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.13.0/bruno_2.13.0_x64_win.zip
  - sha256: 9062cb7ea3ae4aaef5224feaa7cd158930f7f7b88bcaaed5a4a32d25377e4517
Release notes: Features - feat: add support for file body mode in bruno-cli by @pooja-bruno in #5427 - feat: default location for collections by @Pragadesh-45 in #5557 - feat: Add button to copy environment variable from popover by @RudraPatel2003 in #5416 - Feature: Add collapse full collection feature by @maurisq12 in #4492 - add: system monitor by @naman-bruno in #5635 - feat: make tabs reorderable by @roele in #5413 - feat: import multiple collections from a parent folder by @jayakrishnancn in #5431 - feat: add draggable tabs component by @sid-bruno in #5669 - feat: Enhance EnvironmentVariables component with read-only support for non-string values by @sanjaikumar-bruno in #5616 - feat: adding req getTags methods by @james-ha-bruno in #5690 - feat: use request directory as the destination for saving response by @andriyor in #5699 - feat: support import paths for gRPC by @sanish-bruno in #5573 - feat: enhance json environment file support in bruno-cli by @sanjaikumar-bruno in #5660 - feat: add Rosetta detection for Apple Silicon by @barelyhuman in #5717 - feat: add path based grouping for openapi by @pooja-bruno in #5638 - feat(cli): ignore and skip invalid .bru file by @Pragadesh-45 in #5711 - feat: Websocket Support by @barelyhuman in #5480 - feat/editor custom search by @anusree-bruno in #5278 - feat: add redirect and timeout in request settings by @pooja-bruno in #5672 - feat: add transformDescription function to handle new description schema by @sanish-bruno in #5744 - add: path based grouping in openapi import by @pooja-bruno - add profile based authentication in AWS secret manager by @sreelakshmi-bruno Fixes - fix: openapi request import by @pooja-bruno in #5586 - fix: improve file upload handling in prepare-request to use streaming by @sanjaikumar-bruno in #5637 - fix: Show active global environment in config modal by @pooja-bruno in #5698 - fix(digest-auth): fix Digest Auth when no QOP is set by @pkolmann in #5386 - fix: fixing tests using locale on numbers by @Skewnart in #5733 - fix: filter out internal content-type headers for no body requests in axiosinstance by @sanjaikumar-bruno in #5591 - fix: reimplement payload serialization for x-www-form-encoded by @barelyhuman in #5713 - fix(bru-1928): bruno-cli oauth2 updates and fixes by @lohit-bruno in #5729 - fix(bru-1939): oauth2 credentials not persisting across requests in the same collection run by @lohit-bruno in #5730 - fix: Cross button not resetting timeout to inherit by @pooja-bruno in #5749 - fix: remove menu from the About Bruno secondary window by @barelyhuman in #5712 - fix: make environment name width flexible up to 35% and disable tooltip for short names by @bijin-bruno in #5778 - fix: limit dropdown width to 650px and fix alignment by @bijin-bruno in #5781 - fix: Enhance error log for OAuth2 when certificate error by @wbw1537 in #5757 - fix: override normalizing on whitespace in markdown editor by @Pragadesh-45 in #5754 - fix: newly created requests should be added within the directory context by @sanish-bruno in #5784 Others - Support for Odata style path params by @tester22 in #5048 - Support for Odata style path params by @bijin-bruno in #5615 - tests: additional tests for path params and odata by @sid-bruno in #5610 - chore: atomic diff based formatting by @barelyhuman in #5592 - Refactor: Remove normalizeNewlines function and update tests to preserve newline types by @Pragadesh-45 in #5697 - Enable gRPC (Beta to GA) by @sanish-bruno in #5687 - chore(bru-1943): upgrade electron version to v37.6.1 by @lohit-bruno in #5752 - chore(#1693): better comment explaining why bruno sets content-type header as false by @helloanoop in #5765 New Contributors - @sid-bruno made their first contribution in #5610 - @RudraPatel2003 made their first contribution in #5416 - @maurisq12 made their first contribution in #4492 - @roele made their first contribution in #5413 - @jayakrishnancn made their first contribution in #5431 - @james-ha-bruno made their first contribution in #5690 - @andriyor made their first contribution in #5699 - @pkolmann made their first contribution in #5386 - @Skewnart made their first contribution in #5733 - @wbw1537 made their first contribution in #5757 Full Changelog: v2.11.0...v2.12.0

Pin: `winget install --id Bruno.Bruno --version 2.13.0 --exact`

#### 2.12.0 — 2025-09-25

- x64 nullsoft (user): bruno_2.12.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.12.0/bruno_2.12.0_x64_win.exe
  - sha256: 74bfd0dfd07fef1ffec26347154f8cff58afda4eb7f36f318ad0f33b0cac6c53
- x64 zip: bruno_2.12.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.12.0/bruno_2.12.0_x64_win.zip
  - sha256: fe5c859435ab22da4290ad674ed4f75983588208aa9db6024519dddb46359727
Release notes: Features - feat: moving requests cross collection by @jayakrishnancn @sanish-bruno in #5525 - feat: Add default sample collection on first app launch by @sanjaikumar-bruno in #5536 - feat: collection and global env selector dropdown by @pooja-bruno in #5542 - feat: new import ui by @pooja-bruno Fixes - fix: tags removed while moving request by @sanish-bruno in #5526 - fix(electron): avoid double encoding urls params. Fixes #5380. by @barelyhuman in #5507 - fix crypto-js in safe mode by @lohit-bruno in #5566 - fix: environment list scroll by @pooja-bruno in #5585 - fix: env name overflow by @pooja-bruno in #5598 - fix: Replace SingleLineEditor with MultiLineEditor in EnvironmentVariables components and add masking functionality by @Pragadesh-45 in #5576 - fix: Add null safety checks in GlobalSearchModal by @pooja-bruno #5625 - fix: add xdg-portal version override for Linux by @Pragadesh-45 #5618 - fix e2e tests by @lohit-bruno - fix: git url validation by @pooja-bruno Others - add end-to-end tests for collection run reports by @sanjaikumar-bruno in #5562 - Update digest authentication test cases with new URLs and credentials by @helloanoop in #5531 New Contributors - @jayakrishnancn made their first contribution in #5525

Pin: `winget install --id Bruno.Bruno --version 2.12.0 --exact`

#### 2.11.0 — 2025-09-12

- x64 nullsoft (user): bruno_2.11.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.11.0/bruno_2.11.0_x64_win.exe
  - sha256: af1ccd4e6ea31d5e5e99b1a9004b1ad1842c3752acda6304deff2d513e5977bc
- x64 zip: bruno_2.11.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.11.0/bruno_2.11.0_x64_win.zip
  - sha256: 827912b219953773ccda0aebabf9f77aa2b69c3a0c1ba1faeb52bc280e87f90a
Release notes: Features - Add: Bulk and url import support by @pooja-bruno - Feat: Masking secret values within downloaded reports by @sanjaikumar-bruno - Feat: Persist response body scroll position across tabs by @terminal-overflow in #3902 - Feat: New import modal by @pooja-bruno in #5050 - Include oauth2 additional parameters in bruno collection exports by @lohit-bruno in #5422 - Change landing page of Bruno by @ganesh-bruno in #5436 - Feat: Add WSSE authentication support to gRPC requests by @sanish-bruno in #5455 - Feat: Custom HTTP method by @sanjaikumar-bruno in #4841 - Add: Global search modal by @pooja-bruno in #5400 - Feat: Adding metadata to report by @sreelakshmi-bruno in #5360 Fixes - Fix: Github scripts tests by @lohit-bruno - Fix: Collection runner download - add missing fs lib import by @lohit-bruno - Fix: Skip disables secrets from azure secret fetch by @pooja-bruno - Fix: Show request body in devtools #5336 by @tlaloc911 in #5337 - Fix: Large response crash bruno by @naman-bruno in #5385 - Fix: Environment persistence and UI by @sanjaikumar-bruno in #5404 - Fix: Incorrectly counts running/in-progress requests by @jokj624 in #5253 - Fix: Resolve URL and search string for proper handling in digest auth interceptor by @Pragadesh-45 in #5317 - Fix: Store redirect cookies under initial request domain by @pooja-bruno in #5387 - Fix: Unable to set request bodies with colon characters in their names by @pietrygamat in #3178 - Fix: Openapi auth import in bruno by @pooja-bruno in #5354 - Fix: GraphQL documentation theme by @notKvS in #5435 - Fix(Curl-parser): Curl commands with url without protocol by @bijin-bruno in #5453 - Fix(Apt): Ensure Bruno repo key is world-readable on Debian 12+ by @Pragadesh-45 in #5474 - Fix: Bruno GUI hangs on 308 redirect by @naman-bruno in #5445 - Bugfix/Global shortcut unfocused by @bernborgess in #5490 - Fix: Add z-index to CodeMirror hint box by @josbiz in #5459 - Fix: Remove use of globalShortcut for minimize/hide to avoid hijacking system shortcuts by @Pragadesh-45 in #5458 - Fix: Ca certs fixes and tests by @lohit-bruno in #5429 Others - Update: Paid modal language by @rreyn-bruno - Rename: Golden edition to features in preference in modal by @pooja-bruno - Added dev utils and remove chrome console by @ganesh-bruno - Moved e2e import tests to the tests folder by @lohit-bruno - Chore: Electron builder updates by @lohit-bruno in #5425 - Chore: Eslint updates and fixes by @lohit-bruno in #5402 - Update: Readme.md installation instructions via Apt (#5411) by @jbraconig in #5412 - Rename: Query table value from path to value by @ganesh-bruno in #5139 - Changed example to cjs syntax by @ganesh-bruno in #4526 - [Snyk] Upgrade @faker-js/faker from 8.4.0 to 8.4.1 by @bijin-bruno in #5347 - Update: The grpc tagline by @ganesh-bruno in #5449 - Add: Playwright tests for Notifications modal and Sidebar toggle by @helloanoop in #5466 - Update: Bruno's age 🎉 by @Pragadesh-45 in #5328 - Add: HttpMethodSelector component tests by @helloanoop in #5481 - Add: Playwright test for import collection modal by @pooja-bruno in #5487 - Add: Vscode image by @naman-bruno in #5491 - Refactor: Tests by @helloanoop in #5517 - Feat: Script to calculate locs of repo by @helloanoop in #5238 - Add: Playwright testing guide for Bruno application by @sanish-bruno in #5262 - Node VM support by @lohit-bruno in #5518 New Contributors - @terminal-overflow made their first contribution in #3902 - @jbraconig made their first contribution in #5412 - @josbiz made their first contribution in #5459 - @notKvS made their first contribution in #5435 - @bernborgess made their first contribution in #5490

Pin: `winget install --id Bruno.Bruno --version 2.11.0 --exact`

#### 2.10.1 — 2025-09-04

- x64 nullsoft (user): bruno_2.10.1_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.10.1/bruno_2.10.1_x64_win.exe
  - sha256: 22d440a60c5fb68a4a6f74906dad9b39190610f52199faade6df5a684d51307b
- x64 zip: bruno_2.10.1_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.10.1/bruno_2.10.1_x64_win.zip
  - sha256: 4ef2e3b7738f34adc27ae1e932a6366740704198569bc2c1645f62d662e3a56d
Release notes: Patch Fix - Revert "Feat/ Add Global Shortcuts for Zoom, Minimize, and Close on Windows by @Pragadesh-45 in #5504

Pin: `winget install --id Bruno.Bruno --version 2.10.1 --exact`

#### 2.10.0 — 2025-08-28

- x64 nullsoft (user): bruno_2.10.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.10.0/bruno_2.10.0_x64_win.exe
  - sha256: 8e1205fdace3149cbb1caaba2e8501a375e9bd33f984d2584716967cc25a8660
- x64 zip: bruno_2.10.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.10.0/bruno_2.10.0_x64_win.zip
  - sha256: 3ce1e2561498a69193266df51b9e570069cbb9209e69229bfa9e928b7c5b291a
Release notes: Features - feat: gRPC Support by @sanish-bruno in #5148 - feat: Add Global Shortcuts for Zoom, Minimize, and Close on Windows (fixes: #4108) by @Pragadesh-45 in #4110 - feat: persist cookies in app by @pooja-bruno in #5318 - feat: add persistent environment variable handling in IPC events and Bru class by @sanjaikumar-bruno in #5172 - feat: bulk edit for collection and folder header by @pooja-bruno in #5279 - feat: add support for additional parameters in oauth2 requests by @lohxt1 in #4447 - feat: add parallel execution option for CSV iterations in run command by @sanjaikumar-bruno - improve: toolbar ui by @pooja-bruno Fixes - fix: test only flag in cli to include pre and post test by @pooja-bruno in #5216 - fix: url interpolation in code gen by @pooja-bruno in #5187 - fix: cli test for cookie by @pooja-bruno in #5327 - fix(security): patch CVE-2025-7783 by forcing form-data@4.0.4 by @bijin-bruno in #5329 - fix: update authentication mode to inherit in OpenAPI to Bruno by @sanish-bruno in #5300 - Fix: OAuth2 Token Scope Handling and Optional Client Secret by @naman-bruno in #5259 - fix: client id placement issue by @naman-bruno in #5348 - fix: consider delay when running again by @naman-bruno in #5349 - fix(cookie-store): defer encryption setup to prevent early macOS by @pooja-bruno in #5373 - CLI Fix: OAuth2 Token Scope Handling and encode Client Secret by @naman-bruno in #5377 - fix: Bruno collection import corrupt files by @naman-bruno in #5393 - fix: global env issue on bulk import by @sreelakshmi-bruno in #5396 - fix: option to parse large bru files by @lohit-bruno in #5324 - fix: Add missing stringifyRequest import for bruno-cli by @abborg in #5282 - fix: add global env var in codegen url interpolation by @pooja-bruno in #5397 - fix: Add type field to env when not present by @sreelakshmi-bruno in #5401 - fix: Updated axios request to include httpAgent and httpsAgent for Discovery process SSO by @Pragadesh44-Bruno - fix: updated envSecrets logic for creating api spec from collection and added missing imports by @lohit-bruno Others - move: cookie file in bruno-request package by @pooja-bruno in #5384 New Contributors - @abborg made their first contribution in #5282 - @bijin-bruno made their first contribution in #5329 Full Changelog: v2.9.0...v2.10.0

Pin: `winget install --id Bruno.Bruno --version 2.10.0 --exact`

#### 2.9.1 — 2025-08-11

- x64 nullsoft (user): bruno_2.9.1_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.9.1/bruno_2.9.1_x64_win.exe
  - sha256: 3513f02051afa225560afcc5f719f01764ae131d6efcaa35d04a951d2fbb7116
- x64 zip: bruno_2.9.1_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.9.1/bruno_2.9.1_x64_win.zip
  - sha256: 18d16deaeac816e2682ee3c4d3df196c4500f1fa036273d7e20a066ffc7033b7
Release notes: Fixes - Fix OpenAPI import issue in bruno-cli by @abborg in #5282 - Gracefully handle decryption failures for secret environment variables by @sreelakshmi-bruno in #5285 Full Changelog: v2.9.0...v2.9.1

Pin: `winget install --id Bruno.Bruno --version 2.9.1 --exact`

#### 2.9.0 — 2025-08-06

- x64 nullsoft (user): bruno_2.9.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.9.0/bruno_2.9.0_x64_win.exe
  - sha256: 9f2cd375db5335c63d93cffd536d3670857deb46f286255bf56a40cbcd79bf03
- x64 zip: bruno_2.9.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.9.0/bruno_2.9.0_x64_win.zip
  - sha256: 13bc98852a3e76ab8d209bbfd399a201f9a888488c8999ca55164dca849bac6f
Release notes: Features - Added warnings for sensitive fields other auths by @sanjaikumar-bruno in #5100 - Added cookie apis by @pooja-bruno in #5117 - Added sensitive field warnings for collection and folder auth in Environment modal by @sanjaikumar-bruno in #5230 - Implemented Response URL variable by @nikischin in #2983 - Added Select/Deselect and Reorder Capabilities to Collection Runner by @naman-bruno in #5195 - Git UI Revamp by @Pragadesh44-Bruno Fixes - Fix loading state while collection mount by @naman-bruno in #5138 - Fix request tab opening unintentionally by @naman-bruno in #5240 - Fix password field binding in DigestAuth component by @sanjaikumar-bruno in #5242 - Fix file editor view scroll issues by @lohit-bruno - Fix height in filemode by @naman-bruno - Fix scrollbar in runner by @naman-bruno - Fix app crashes while upgrading the version by @lohit-bruno - Fix whitespace from remote name and URL in AddRemoteModal by @sanish-bruno Others - Add @usebruno/filestore package by @naman-bruno in #5130 - Added response url api hint words by @lohit-bruno in #5234 - Error handling for fetching global environments by @lohit-bruno in #5241 Full Changelog: v2.8.1...v2.9.0

Pin: `winget install --id Bruno.Bruno --version 2.9.0 --exact`

#### 2.8.1 — 2025-07-25

- x64 nullsoft (user): bruno_2.8.1_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.8.1/bruno_2.8.1_x64_win.exe
  - sha256: 43e3ff6a49c9d50210dd33124662987049c7618e7567ae4e5bc81333ecded429
- x64 zip: bruno_2.8.1_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.8.1/bruno_2.8.1_x64_win.zip
  - sha256: 1d6101a7ebd8a424d213ad05498e4271c1d0e18930c6f074640fd47e0baa0e46
Release notes: What's Changed Fixes - Fix: always showing scrollbar by @naman-bruno in #5184 - Fix: update statusbar styling, enhance cookie button accessibility, and adjust theme colors by @helloanoop in #5185 - Fix:list block grammar fixes by @lohit-bruno in #5180 - Revert "disable ssl/tls & enable system proxy" (Revert OSS PR: 5125) by @helloanoop in #5196 - Fix: insecure requests not working by @naman-bruno in #5197 - Fix: add update notification styles to StatusBar component @sanjaikumar-bruno - Fix: insecure ssl @naman-bruno

Pin: `winget install --id Bruno.Bruno --version 2.8.1 --exact`

#### 2.8.0 — 2025-07-22

- x64 nullsoft (user): bruno_2.8.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.8.0/bruno_2.8.0_x64_win.exe
  - sha256: 473460988bf8823c3e513e2b957832359c61df31fd4485f847b8dbbd03447264
- x64 zip: bruno_2.8.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.8.0/bruno_2.8.0_x64_win.zip
  - sha256: 565a08db9cc51cdb70da852ae435b799037a69c806f2b6341089f2fb1e901ecf
Release notes: What's Changed Features Feat: Tagging requests and filtering collection runs using tags by @asonkeri in #2716 Feat: validator to check if a given path is inside an open Collection by @ramki-bruno in #4800 Feat: add dataBuffer to response for test scripts by @RainoPikkarainen in #1881 Feat: introduce res.getSize() helper (header/body/total) by @pooja-bruno in #5018 Feat: OAuth2 implicit grant type by @naman-bruno in #4307 Feat: add status bar & console by @naman-bruno in #4922 Feat: toggle encoding of URL query parameters by @maintainer-bruno in #5089 Feat: import URL-encode settings from Postman and Insomnia by @maintainer-bruno in #5102 Feat: folder sequencing sort in bruno-cli by @lohxt1 in #5111 Feat: disable SSL/TLS & enable system proxy by @lohxt1 in #5125 Feat: enable/disable collection/folder run buttons based on filtered requests by @lohxt1 in #5131 Feat: Support AWS Session Token for SSO and Temporary Credentials by @pooja-bruno Feat: Auto-updater improvements. by @sanjaikumar-bruno Feat: Azure cli auth for secrets fetching by @pooja-bruno Feat: pass item and collection props to RunnerTimeline component by @sanjaikumar-bruno Fixes Fix: reset test-results state on each new request run by @pooja-bruno in #5022 Fix: handle undefined title and improve error handling by @sanjaikumar-bruno in #5009 Fix: collection request-numbers font family by @pooja-bruno in #4248 Fix: restrict {{$randomInt}} to 0–1000 by @junglesub in #4938 Fix: include draft tags while filtering requests for runs by @lohxt1 in #5142 Fix: move URL-encoding utils to bruno common by @maintainer-bruno in #5098 Fix: export for folder-level auth by @pooja-bruno in #5041 Fix: add rsbuild watchFiles config & forceRefreshWatcher option by @lohxt1 in #4766 Fix: runner result scroll by @pooja-bruno in #5062 Fix: use SingleLineEditor for env-variable highlighting by @bacteriostat in #4954 Fix: add script error card in collection runner by @pooja-bruno in #4984 Fix: code-generator headers and multipart-form bug by @pooja-bruno in #5056 Fix: OAuth2 token-request refactor and fixes by @lohxt1 in #5066 Fix: scroll issue in collection & folder settings by @naman-bruno in #5093 Fix: AWS v4 signature error by @pooja-bruno in #5099 Fix: ignore empty header on Auth API-Key (Header) by @wibaek in #5007 Fix: timeline scroll behaviour, border colour, tooltip opacity by @naman-bruno in #5108 Fix: timeline responsePane scroll by @naman-bruno in #5110 Fix: enhance path validation to include last-opened collections by @Pragadesh-45 in #5123 Fix: status-bar & dev-tools z-index issue by @naman-bruno in #5132 Fix: improve handling of “Inherit” for folders & requests by @sanish-bruno in #5107 Fix: crash on double-click for collection & collection item by @sanish-bruno in #5151 Fix: console-design tweaks by @naman-bruno in #5103 Fix: sort folders by name first then sequence by @lohxt1 in #5063 Fix: add: iterationIndex in notifyScriptExecution by @pooja-bruno Fix: runner scroll fixes by @lohit-bruno Others Warning-message content updated by @Joseph-PS in #5032 Content updated by @Joseph-PS in #5027 Manage-secrets modal content updated by @Joseph-PS in #5034 Collection-runner tags updates by @lohit-bruno in #5069 Capitalize toast message by @stupidly-logical in #5083 Rename: devtools to devUtils by @naman-bruno Full Changelog: v2.7.0..._v2.8.0

Pin: `winget install --id Bruno.Bruno --version 2.8.0 --exact`

#### 2.7.0 — 2025-07-03

- x64 nullsoft (user): bruno_2.7.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.7.0/bruno_2.7.0_x64_win.exe
  - sha256: f25115a31ad539f00e32c77fc81ca25c4644fca24e5fe829b8f30fadd1141107
- x64 zip: bruno_2.7.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.7.0/bruno_2.7.0_x64_win.zip
  - sha256: a4f122a9c0342b81e41c65390268acd16b5a892b951fe1ce83bacd802894654e
Release notes: What's Changed Features - Autocomplete random variables by @sanjaikumar-bruno in #4695 - feature: add randomNanoId to dynamic variables by @henripqt in #4932 - feat: implement vertical layout for response pane and enhance drag by @helloanoop in #4957 - feat: Add placeholder for SingleLineEditor by @bacteriostat in #4956 - feat: add dropdown to select language and add lib selector in code gen by @pooja-bruno in #4345 - Feat: Update serialization logic for application/x-www-form-urlencoded body type by @Pragadesh-45 in #4943 - Improved feat: add bulk edit mode for request headers by @sanjaikumar-bruno in #4958 - feat: support onFail api to catch errors in pre req by @pooja-bruno in #4581 Fixes - fix: handle falsy values in Postman environment and collection variables by @sanish-bruno in #4924 - Fix: postman collection fails when auth object missing auth values by @sanish-bruno in #4794 - fix(import): curl parser library by @maintainer-bruno in #4959 - Fix: Made reporter-skip-headers option case-insensitive in bruno-cli by @ganesh-bruno in #4799 - Fix: undefined auth fields in folder-level authentication by @pooja-bruno in #4907 - fix: oauth2 tokenHeaderPrefix can be set to an empty string value by @lohxt1 in #4928 - fix(layout): minor layout css fixes by @maintainer-bruno in #4994 - fix(import): handle repeated query keys and improve error handling in curl import by @maintainer-bruno in #4992 - Fix: Allow empty Content-Type when no body (#1693) by @betawait in #3973 - fix: include unsaved changes in generate code by @pooja-bruno in #4995 - Bugfix/4749 generate code error with binary file request by @Art051 in #4752 - fix: set default proxy value as false for bru.sendRequest' axios request config by @lohxt1 in #4973 - fix: Add null check for collection root in snippet generator #5029 by @stupidly-logical in #5030 Others - Add Debian dependencies (in particular, for "libasound2") by @Nikolai2038 in #2356 - Update Spanish contribution guide for clarity and accuracy by @georgegiosue in #4859 - docs(#1036): Update linux installation instructions via apt by @Nikolai2038 in #1037 - Update wording for clarification. Add tooltip. by @JohannKaspar in #4761 - Add support for integer and boolean in OpenAPI to Bruno converter by @philjones88 in #4734 - Enable variable tootlip in json request body by @stupidly-logical in #4885 - add explicit HTTP agents with keepAlive to bru.sendRequest axios request config by @lohxt1 in #4969 - Removed text from runtime var section by @ganesh-bruno in #4970 - Remove scope parameter from token request when empty by @naman-bruno in #4987 - codemirror api/variables autocomplete refactor by @lohxt1 in #4980 - removed BETA keyword by @ganesh-bruno in #4999 - handle requestConfig translations for variable references in pm.sendRequest calls by @lohxt1 in #5020 New Contributors - @Nikolai2038 made their first contribution in #2356 - @georgegiosue made their first contribution in #4859 - @henripqt made their first contribution in #4932 - @JohannKaspar made their first contribution in #4761 - @philjones88 made their first contribution in #4734 - @bacteriostat made their first contribution in #4956 - @betawait made their first contribution in #3973 Full Changelog: v2.6.1...v2.7.0

Pin: `winget install --id Bruno.Bruno --version 2.7.0 --exact`

#### 2.6.1 — 2025-06-18

- x64 nullsoft (user): bruno_2.6.1_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.6.1/bruno_2.6.1_x64_win.exe
  - sha256: 9b0ec439a4b468a2c9d88bcf60bf9fd5102b062e472bc11d023bb555e650d55d
- x64 zip: bruno_2.6.1_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.6.1/bruno_2.6.1_x64_win.zip
  - sha256: e85cf0c85bc1a39b505241747d4acbf6547adb00ac7851fe73666e07aa90b573
Release notes: What's Changed Fixes - Fix: Added logic to process tests defined in Pre-request and Post-response tabs into the iteration runner UI and HTML report by @pooja-bruno in #4931 Full Changelog: v2.6.0...v2.6.1

Pin: `winget install --id Bruno.Bruno --version 2.6.1 --exact`

#### 2.6.0 — 2025-06-17

- x64 nullsoft (user): bruno_2.6.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.6.0/bruno_2.6.0_x64_win.exe
  - sha256: 937160a7b6c74d6872c68ec624667033db982c456e456f11a4b25e6fc78b116e
- x64 zip: bruno_2.6.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.6.0/bruno_2.6.0_x64_win.zip
  - sha256: c5e1f0b24b0cfb04cb32251394b70c1fce2c795d04e57fced8337eb5a6918d17
Release notes: What's Changed 🖥️ Desktop App Features - feat: bru.sendRequest api by @lohxt1 in #4867 - feat: add prompt for handling large responses by @Pragadesh-45 in #4866 Fixes - Fix: resolved issue on Windows installation where admin rights were previously required to access the temp folder; this is no longer needed. - Fix watcher error message typo by @stupidly-logical in #4893 - Fix Digest auth header field key value extraction by @jonman5 in #4514 - fix: handle undefined bearer token to send an empty string instead by @sanish-bruno in #4886 - Fix: showing test script errors by @naman-bruno in #4902 - fix: timeline scroll by @naman-bruno in #4914 Others - Added Hindi translation of Readme file by @ShrutiShahi18 in #4758 - fix(workflow): ensure E2E test collection dependencies are installed … by @maintainer-bruno in #4923 📟 CLI Features - feat(cli): add support for environment file input in run command by @Pragadesh-45 in #4908 - Feat: Enhance run command to accept multiple inputs for requests and folders in Bruno CLI in #4901 New Contributors - @ShrutiShahi18 made their first contribution in #4758 - @stupidly-logical made their first contribution in #4893 - @jonman5 made their first contribution in #4514 Full Changelog: v2.5.0...v2.6.0

Pin: `winget install --id Bruno.Bruno --version 2.6.0 --exact`

#### 2.5.0 — 2025-06-11

- x64 nullsoft (user): bruno_2.5.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.5.0/bruno_2.5.0_x64_win.exe
  - sha256: 220180470e89429e01db534c63a599a9025c68eb5324590193bef5e9b8dd77e5
- x64 zip: bruno_2.5.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.5.0/bruno_2.5.0_x64_win.zip
  - sha256: 2712ae12b650b1b2dabede7778a14f0e962ace1c4bc028509542153f7b89aa84
Release notes: What's Changed Features - Feat: Support chai in scripts by @pooja-bruno in #4552 - Feat: Migrate Postman Post Response scripts to Bruno Post Response scripts instead of Tests by @pooja-bruno in #4552 - Feat: Added combined Vars for prepareGqlIntrospectionRequest for all interpolations by @devendra-bruno in #4661 Fixes - Fix: Fixed issue where requests would get stuck in a loading state and the cancel button was unresponsive by @lohxt1 in #4863 - Fix: Special URI characters in proxy username/password is giving error by @ramki-bruno in #4782 - Fix: Single line editor component onChange validations update by @lohxt1 in #4765 - Fix: Secrets appear as null instead of an empty value by @pooja-bruno in #4693 Others - Improve: Rename 'New Script' to 'New JS Script' in collection and folder menus by @pooja-bruno - Enhance hot reload development setup by @maintainer-bruno in #4837 - Improvements in Playwright setup and added tests for running bruno-testbench by @ramki-bruno in #4694 - Tests for responseSize component by @sreelakshmi-bruno in #4750 New Contributors - @maintainer-bruno made their first contribution in #4837 Full Changelog: v2.4.0...v2.5.0

Pin: `winget install --id Bruno.Bruno --version 2.5.0 --exact`

#### 2.4.0 — 2025-05-30

- x64 nullsoft (user): bruno_2.4.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.4.0/bruno_2.4.0_x64_win.exe
  - sha256: d29fdcb5af71b36cbec6e2d5059ef29ec23491967d6974c9da8f29327fa1b1bd
- x64 zip: bruno_2.4.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.4.0/bruno_2.4.0_x64_win.zip
  - sha256: 6223596e028449221341cdcf8259d2fd5f75f29efc77023ce2dac13eee6c2276
Release notes: What's Changed Features - Feat: Add function in bruno-converters package by @pooja-bruno #4669 - Feat: Enhance curl parsing for multipart form data by @Pragadesh-45 #4366 - Feat: Extend support for more auth in folder level by @pooja-bruno #4609 - Feat: Add req.getName & bru.getCollectionName API by @poojabela #4590 - Feat: Implemented bru.interpolate by @sanish-bruno #4122 - Feat: Add RFC 6761–compliant localhost loopback checks so secure cookies work on localhost (fixes: #1676) by @Chriss4123 #4038 - Feat: Enhance Axios instance with redirect handling and cookie management in CLI by @sanjaikumar-bruno #4662 - Feat: Custom installation path for GUI installer on Windows by @Pragadesh-45 #4173 Fixes - Fix: Properly handling redirects with status code by @naman-bruno #4561 - Fix: Bruno converters test for reg.getName() by @lohxt1 #4697 - Fix: SVG render response panel by @devendra-bruno #4655 - Fix: Circular recursion for OpenAPI import by @pooja-bruno #4729 - Fix: Request timer reset while switching tabs by @pooja-bruno #4165 - Fix: Ensure timestamp and isoTimestamp return current time instead of random values by @anusree-bruno #4679 - Fix: New request shortcut key by @lohxt1 #4764 - Fix: Consider request execution errors as CLI Tests workflow failure by @lohxt1 #4770 - Fix: Return the actual axios error in bruno-cli for URL-redirect related errors by @lohxt1 #4775 - Fix: Collection auth default value access fix and validations by @lohxt1 #4796 Others - Added option to customize userData path on dev mode by @ramki-bruno #4160 - Added proxy flag for CLI by @naman-bruno #3963 - Add: noproxy flag in options by @naman-bruno #4696 - Playwright: Support Element Verification by @ved-bruno #4706 - Switch GraphQL variables code editor to JSON linting by @claypowers #4756 New Contributors - @devendra-bruno made their first contribution in #4655 - @ved-bruno made their first contribution in #4706 - @claypowers made their first contribution in #4756 - @Chriss4123 made their first contribution in #4038 Full Changelog: v2.3.0...v2.4.0

Pin: `winget install --id Bruno.Bruno --version 2.4.0 --exact`

#### 2.3.0 — 2025-05-14

- x64 nullsoft (user): bruno_2.3.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.3.0/bruno_2.3.0_x64_win.exe
  - sha256: c238fa645dd9131755698625418895150e7877452a6722c6d049b1c024c13538
- x64 zip: bruno_2.3.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.3.0/bruno_2.3.0_x64_win.zip
  - sha256: 897785640ee2f52eb62596660a7b03599072e2b2f445c6e8be4cde1c81e16f79
Release notes: https://github.com/usebruno/bruno/releases/tag/v2.3.0

Pin: `winget install --id Bruno.Bruno --version 2.3.0 --exact`

#### 2.2.0 — 2025-04-23

- x64 nullsoft (user): bruno_2.2.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.2.0/bruno_2.2.0_x64_win.exe
  - sha256: 063ac5247c125b43f2b5fb4db5154ae131548c69048ef451bb5188c4bb45af5a
- x64 zip: bruno_2.2.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.2.0/bruno_2.2.0_x64_win.zip
  - sha256: 168039b58a6d41938506ec0be45d08939e6da82d8e61fda406de3f63b5eef181
Release notes: What's Changed Features - Feat: added bruno converters package in workflow file by @pooja-bruno in #4465 - Feat: added @usebruno/request package with digest authentication support by @sanjaikumar-bruno in#4417 - Feat: added tests for mock variable interpolation in interpolate function by @sanjaikumar-bruno in#4507 - Feat: added insomnia v5 import by @pooja-bruno in#4468 - Feat: improved postman translations: pm.request and pm.response by @pooja-bruno in#4517 - Feat: added support for various authentication types in the Postman to Bruno converter by @Pragadesh-45 in#4475 Fixes - Fix: header key variables not interpolating with capital letters by @pooja-bruno in#4264 - Fix: update global env in collection runner by @pooja-bruno in#4135 - Fix: Prevent --bail option from treating skipped requests as failures by @pooja-bruno in#4166 - Fix: Mock/Random built-in variables related issues by @ramki-bruno in#4483 - Fix: Missing bruno-requests module in setup.js and package-lock.json by @Skrivoo in#4487 - Fix: lint errors for atob/btoa redefinition by @pooja-bruno in#4509 - Fix: add cheerio and xml2js modules to post-response scripts by @andreas-wirth in#4516 - Fix: folder drag-and-drop crash by @pooja-bruno in#3944 - Fix: add json parsing and error handling for postman environment imports by @lohxt1 in#4523 - Fix: styled skipped requests by @nikischin in#3853 - Fix: added null checks and fallbacks to Bruno-to-Postman converter to… by @pooja-bruno in#4525 - Fix: included globalEnvironmentVariables in runPostResponseVars result by @anusree-bruno in#4520 Others - Updated required node version in german contributing file by @0xflotus in #3875 - Added example to readme file by @ganesh-bruno in#4471 - Fixed chokidar disables globbing by @lzl0304 in#2958 - Move mock builtin vars interpolation to bruno-common for CLI support by @sanjaikumar-bruno in#4497 - Refactor bruno-common interpolate fn by @lohxt1 in#4519 - Added html reports submodule setup in the bruno-common package by @lohxt1 in#4536 - Reorganize Postman translation tests into modular file by @pooja-bruno in #4524

Pin: `winget install --id Bruno.Bruno --version 2.2.0 --exact`

#### 2.1.0 — 2025-04-08

- x64 nullsoft (user): bruno_2.1.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.1.0/bruno_2.1.0_x64_win.exe
  - sha256: 21bca77a8d241432196b14c2bbb5f895491a50cb4bd144ca609b9221614aa662
- x64 zip: bruno_2.1.0_x64_win.zip
  - url: https://github.com/usebruno/bruno/releases/download/v2.1.0/bruno_2.1.0_x64_win.zip
  - sha256: 8d065e27b3a4f035dcf9b25fd793e87c45cc29ac0055452a8aacd9c81071291c
Release notes: What's Changed Features - Feature: Random/Mock Variables support by @sanjaikumar-bruno @ramki-bruno in #4146 - Feat: @usebruno/converters package by @thim81 @lohxt1 in #4433 - Feat/ Set default names for folders and requests in Postman collection importer (fixes: #4277) by @Pragadesh-45 in #4278 - feat(scripting): allow multiple script context roots in response scripts by @carlosflorencio in #1397 - Added Playwright-codegen setup by @ramki-bruno in #4394 - feat: pass global env vars for fetch and refresh token oauth2 calls, and ui updates by @lohxt1 in #4362 Fixes - Fix: res.setBody fails for Object in Developer-mode by @sanish-bruno in #3958 - fix: handle empty script.exec cases in postman collection importer by @Pragadesh-45 in #4399 - fix console error Invalid DOM property stroke-width (fixes #4371) by @tlaloc911 in #4372 - fix unsupport symbolic link folders by @taodawn in #4056 - Fix: Highlight matching brackets pair by @symtalha14 in #4440 - fix: Oauth2 toast typo by @dnnr1 in #4449 - fix: user agent header by @therealrinku in #4432 - improve network error handling, oauth2 logic cleanup, tls settings, and ui/test updates by @lohxt1 in #4444 - Oauth2 refresh token call fixes by @lohxt1 in #4460 - fixes for postman-to-bruno converter package by @lohxt1 in #4462 Others - Update/link from collection overview by @ganesh-bruno in #4375 - Fix: Remove unwanted transitive devDependencies of electron-store by @ramki-bruno in #4400 - Update contributing.md with contribution guidelines and setup instructions by @ganesh-bruno in #4377 - updated bruno cli readme file by @ganesh-bruno in #4420 - Rename "custom" and "default" to "Custom" and "Default" (Case Sensitive) for Consistency by @ganesh-bruno in #4419 - Updating issue template for github to track regression bugs by @sreelakshmi-bruno in #4437 New Contributors - @carlosflorencio made their first contribution in #1397 - @taodawn made their first contribution in #4056 - @symtalha14 made their first contribution in #4440 Full Changelog: https://github.com/usebruno/bruno/compare/v2.0.1...v2.1.0

Pin: `winget install --id Bruno.Bruno --version 2.1.0 --exact`

#### 2.0.1 — 2025-03-29

- x64 nullsoft (user): bruno_2.0.1_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.0.1/bruno_2.0.1_x64_win.exe
  - sha256: 752c61de59e46dcf76121b54d4679dae11f27806d9645a66d5d09d129ee751b2
Release notes: What's Changed Fixes: - fix: request run crash by @pooja-bruno in #4301 - fix: Redirect not working on proxy by @naman-bruno in #4324 - fix: codemirror lint errors by @pooja-bruno in #4321 - revert "Fix: Prettify JSON for Res-preview without parsing to avoid J… by @ramki-bruno in #4331 - perf improvements in Response-preview with useMemo by @ramki-bruno in #4334 - removed Bruno blank folder by @ganesh-bruno in #4343 - fix: TLS settings not applying to proxied connections by @naman-bruno in #4340 - fix: system proxy agent by @naman-bruno in #4353 - fix: oauth2 related improvements and fixes by @lohxt1 in #4297 #4300 #4309 #4322 #4323 #4325 #4328 #4330 #4359 Others: - Remove sponsorship content from repository by @rreyn-bruno in #4205 - Create SECURITY.md by @anusree-bruno in #4266 New Contributors - @anusree-bruno made their first contribution in #4266 Full Changelog: https://github.com/usebruno/bruno/compare/v2.0.0...v2.0.1

Pin: `winget install --id Bruno.Bruno --version 2.0.1 --exact`

#### 2.0.0 — 2025-03-29

- x64 nullsoft (user): bruno_2.0.0_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v2.0.0/bruno_2.0.0_x64_win.exe
  - sha256: 4fddc40013db7ff283a06f0f13bcee0c217ee91aae778182b6fd1f04b31e4603
Release notes: Features: - feat: OAuth2 Revamp by @helloanoop in #3867 - feat: Improvements to OAuth2-related user interface by @pietrygamat in #2077 - feat: oauth2 ui/ux improvements by @lohxt1 in #3868 #3947 #3874 #3876 #3989 - feat: add refresh url for oauth2 by @pooja-bruno in #4028 - feat: Oauth2 folder by @naman-bruno in #4105 Fixes: - fix: redirect to relative path by @naman-bruno in #4167 - fix: Updated timeline to show body in oauth access token req by @naman-bruno in #4168 Others: - chore: version upgrade to 2.0.0 by @lohxt1 in #4296 Full Changelog: https://github.com/usebruno/bruno/compare/v1.40.0...v2.0.0

Pin: `winget install --id Bruno.Bruno --version 2.0.0 --exact`

#### 1.40.1 — 2025-03-25

- x64 nullsoft (user): bruno_1.40.1_x64_win.exe
  - url: https://github.com/usebruno/bruno/releases/download/v1.40.1/bruno_1.40.1_x64_win.exe
  - sha256: e2b22338e2621a3f3b8b18b4a867423f05753e52e5a12b8608644140d1895d33
Release notes: What's Changed Fixed issue causing the app to become unresponsive when handling large JSON responses.Fixes - Revert "Fix: Prettify JSON for Res-preview without parsing to avoid J… by @ramki-bruno in #4332 - Perf improvements in Response-preview with useMemo by @ramki-bruno in #4335 Full Changelog: https://github.com/usebruno/bruno/compare/v1.40.0...v1.40.1

Pin: `winget install --id Bruno.Bruno --version 1.40.1 --exact`

## macOS

### What the installer does
- Delivered as a disk image (.dmg) for Intel (x64) and Apple silicon (ARM64).
- Installs the app `Bruno.app` into the Applications folder.
- The app updates itself, so it may be newer than the version Homebrew lists.
- A full “zap” removal also deletes up to 6 support, cache and preference locations in your home folder.

### Versions (newest first) — Homebrew lists only the current release

#### 4.3.0

- x64 dmg: bruno_4.3.0_x64_mac.dmg
  - url: https://github.com/usebruno/bruno/releases/download/v4.3.0/bruno_4.3.0_x64_mac.dmg
  - sha256: d17034ae3f444215419d64dee5d5fbd28a728b54181bef4a70692cee259b722a
- arm64 dmg: bruno_4.3.0_arm64_mac.dmg
  - url: https://github.com/usebruno/bruno/releases/download/v4.3.0/bruno_4.3.0_arm64_mac.dmg
  - sha256: bb4c4d8de817a6f529880627606137fd16346ddece547c6a0862e84bd1cc69bf

Install: `brew install --cask bruno`
