← Package directory
Available on winget

Install Bruno

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

Install with winget
winget install --id Bruno.Bruno
Upgrade
winget upgrade --id Bruno.Bruno
Uninstall
winget uninstall --id Bruno.Bruno

About Bruno

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.

What's new in 3.4.0

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 @Pragad...

Read release notes

Version history

Version Updated Notes
3.4.0 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...
3.3.0 Unknown 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 - fea...
3.2.2 Unknown 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 wit...
3.2.0 Unknown 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 f...
3.1.4 Unknown 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 is...
3.1.3 Unknown 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: disab...
3.1.2 Unknown 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 c...
3.1.1 Unknown 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: secre...
3.1.0 Unknown 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 dataB...
3.0.2 Unknown 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...
3.0.1 Unknown Resolved an issue causing the app to fail to open on macOS x64/Intel systems by @sid-bruno
3.0.0 Unknown 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 sav...
2.15.1 Unknown 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 incor...
2.15.0 Unknown 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 i...
2.14.2 Unknown 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
2.14.1 Unknown 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 #...
2.14.0 Unknown 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 @n...
2.13.2 Unknown 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-b...
2.13.1 Unknown 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
2.13.0 Unknown 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 @Ru...