# Create a Collection Source: https://docs.usebruno.com/get-started/bruno-basics/create-a-collection A collection in Bruno is a structured group of API requests, tests, and related resources that helps you organize and manage your API testing workflow. If you have an existing collection inside of another tool that you would like to import, please see [Importing Collections ](../import-export-data/import-collections). ## How to Create a Collection 1. Open Bruno and navigate to the **home screen** 2. Click on the `+` button and select **Create Collection** from the dropdown. Create collection 3. Enter a name for your collection. 4. **(Optional)**: * To store the collection at a custom location: click the **settings icon** (advanced options) and choose the desired folder on your system. * Click on **Options** dropdown and select **YAML** to change the file format to YAML or BRU -> YAML recommended. Advanced options – choose location If you skip this, the collection is stored at the default location: `~/Documents/bruno` (e.g. `/Users/username/Documents/bruno`). You can view or change the default location in **Preferences** → **General** tab. See [Settings](/get-started/configure/settings#general). select file format 5. Choose or confirm the location on your filesystem for the collection. 6. Click **Create** Starting with Bruno v3.1.0, YAML (OpenCollection format) is the default file format when creating new collections. Learn more about [OpenCollection YAML](/opencollection-yaml/overview). ## Automatic Git Configuration When you create a new collection or workspace, Bruno automatically generates a `.gitignore` file with recommended settings to ensure proper Git hygiene out of the box. **What's Included in `.gitignore`:** * Temporary files and caches * Environment variable files with sensitive data * Generated metadata * System-specific files The automatically generated `.gitignore` file helps prevent accidentally committing sensitive information (like API keys in environment variables) or unnecessary files to version control. ## Custom Collection Names You can use any characters in your collection names, including special characters like `/`, `[`, `]`, `*`, etc. Bruno automatically handles filesystem compatibility by replacing unsupported characters with `-` in the filenames while preserving your original collection name. [Add a request ](https://docs.usebruno.com/get-started/bruno-basics/create-a-request) to your collection as a next step! If you're looking to collaborate and share with your team, please see [Collaboration in Bruno ](https://docs.usebruno.com/git-integration/overview). # Create a Folder Source: https://docs.usebruno.com/get-started/bruno-basics/create-a-folder Bruno helps you organize your API requests efficiently by grouping them into folders. You can create a structured hierarchy that matches your API's organization, making it easier to manage and navigate your collections. ## Creating a New Folder 1. Select your Collection from the sidebar. 2. Click on the `···` button. 3. Select `New Folder` from the dropdown menu. create folder 4. Enter a name for your folder. 5. Click `Create` to finish. new folder dialog Your new folder is now ready to organize your requests! ## Custom Folder Names You can use any characters in your folder names, including special characters like `/`, `[`, `]`, `*`, etc. Bruno automatically handles filesystem compatibility by replacing unsupported characters with `-` in the filenames while preserving your original folder name. ### How to View or Customize Filesystem Names 1. Select **Show Filesystem Name.** show filesystem name 2. You can now see how your folder name is stored on the filesystem. filesystem name view 3. (Optional) Click the edit icon to customize the filesystem name while keeping your display name intact. This feature allows you to: * Create more descriptive folder organization. * Use special characters freely. * Maintain filesystem compatibility automatically. * Keep your collection structure clean and organized. ### Example You could name a folder "API \[v2.0] / Authentication" and Bruno will automatically handle the filesystem compatibility while preserving your desired display name. # Create a Request Source: https://docs.usebruno.com/get-started/bruno-basics/create-a-request Bruno supports multiple ways to create API requests. You can work with HTTP, GraphQL, gRPC, WebSocket, or convert cURL commands into reusable requests. ## Create a first request 1. Open **Bruno** (workspace **Home**). 2. Click the **`+`** button to create a request. Bruno home — start a new request from + 3. Enter a URL (e.g. `https://api.github.com/users/userbruno`) and press **Enter**. Request tab after creating from home You can also create requests from a collection menu or without a collection. Read below sections to learn more. **Three ways to create a request:** 1. **[Within a collection](#1-create-a-request-within-a-collection)** – Create a new request from the collection menu (saved to that collection). 2. **[Without a collection](#2-create-a-request-without-a-collection)** – Create an unsaved request from Workspace Home; save to a collection later (or discard). 3. **[Inline "+" button](#3-create-a-request-with-the-inline-button)** – Create a new request from the "+" icon next to the request tabs (within a collection context). *** ## 1. Create a request within a collection Create a new request that belongs to a collection from the start: 1. Open your **Collection** and click the **`···`** button. 2. Select **New Request** in the dropdown menu. create request dialog 3. In the dialog, set: * **Request Type** (HTTP, GraphQL, or from cURL) * **Request Name** * **HTTP Method** (GET, POST, PUT, etc.) * **URL** create-new-request 4. Click **Create**. The request is created in your collection. You can add headers, query parameters, body, and other options as needed. *** ## 2. Create a request without a collection Send a request without creating or opening a collection first—useful for ad-hoc checks (e.g. verifying an endpoint) or quick cURL-style calls. 1. Open **Workspace Home** and click the **"+"** icon in the tabs area. create request without a collection 2. A new **unsaved request** opens in the editor (not tied to any collection). 3. **Configure and run** the request: URL, method, headers, auth, body, scripts, and tests are all supported. created request without a collection 4. **Save (optional):** Click **Save** to open a modal where you can: * Save to an **existing collection** from the list of open collections, or * **Create a new collection** and save the request there. If no collections are open, the flow defaults to creating a new collection. After saving, you're taken to the collection tab with the request open. 5. **Find unsaved requests** again via the **Home** icon or the workspace/collection dropdown. 6. **Closing the workspace** with unsaved requests open will prompt you that those requests will be lost unless you save them. *** ## 3. Create a request with the inline "+" button **Quick request creation (v3.1.0+):** Create requests from the **"+"** icon next to the request tabs—no collection menu needed. The new request inherits the current collection's settings. ### Create an HTTP request * **Click the "+" icon** next to the request tabs to create a new HTTP request in a new tab. ### Create GraphQL, gRPC, or WebSocket requests 1. **Right-click the "+" icon** next to the request tabs. 2. Choose the request type: **HTTP**, **GraphQL**, **gRPC**, or **WebSocket**. Inline Request Creation 3. The new request opens in a new tab. ### How it works * A new **"Untitled"** request opens immediately; no file is created until you save. * The request **inherits collection-level settings** (auth, headers, etc.) and any **presets** from collection settings. * When you **Save**, Bruno prompts you to choose a location (collection root or folder) and confirm the name. This workflow is useful for rapid prototyping: create and run requests, then save only when you're satisfied. *** ## Custom Request Filenames You can use any characters in your request names, including special characters like `/`, `[`, `]`, `*`, etc. Bruno automatically handles filesystem compatibility by replacing unsupported characters with `-` in the filenames while preserving your original request name. ### To view or customize the filesystem name 1. Select **Show Filesystem Name.** file-system-name 2. You can now see how your request name is stored on the filesystem. file-system-name 3. (Optional) Click the edit icon to customize the filename while keeping your display name intact. This feature gives you complete freedom in naming your requests while ensuring filesystem compatibility. # Create a Test Source: https://docs.usebruno.com/get-started/bruno-basics/create-a-test Bruno uses the [Chai library ](https://www.chaijs.com/), so you can follow the same syntax for writing assertions in your tests. To ensure your API is behaving as expected, create a test against it. Bruno supports writing tests by through either: * Assertions to declaratively write tests * JavaScript ## Assertion To get familiar with testing: 1. open a Collection 2. Select a request 3. Click on the `Assertions` tab You can then dictate an expression, operator, and value to test against. bru assertions ## Testing with JavaScript Bruno also supports writing automation test scripts in JavaScript for more advanced API testing scenarios. By automating your tests, you can increase efficiency and coverage, and integrate testing into CI/CD pipelines. #### Example ```js copy theme={null} test("should be able to login", function () { const data = res.getBody(); expect(res.getStatus()).to.equal(200); }); test("should return json", function () { const data = res.getBody(); expect(res.getBody()).to.eql({ hello: "Bruno", }); }); ``` bru test script In this example: 1. The first test checks that the response status is 200 (indicating a successful login). 2. The second test verifies that the response body is equal to the expected JSON object. For more advanced testing scenarios and tips, view the [Scripting ](https://docs.usebruno.com/scripting/getting-started) docs. # Create a Workspace Source: https://docs.usebruno.com/get-started/bruno-basics/create-a-workspace A workspace in Bruno is a container that helps you organize multiple collections, API specifications, and environments together. Workspaces allow you to group related projects, making it easier to switch between different teams or projects while keeping your API development workflow organized. Workspaces are available in [Bruno 3.0.0](https://www.usebruno.com/downloads) and higher versions. ## Why Use Workspaces? Workspaces provide several benefits: * **Project Organization** - Group related collections together by project, team, or client * **Git Integration** - Store workspaces in version-controlled directories for easy collaboration * **Environment Isolation** - Each workspace can have its own global environments * **Quick Switching** - Easily switch between different projects without losing context * **Pin Favorites** - Pin frequently used workspaces for quick access ## Types of Workspaces Bruno supports two types of workspaces: ### Default Workspace The Default Workspace is automatically created when you first launch Bruno. It is stored in Bruno's application data folder and serves as your starting point. This workspace cannot be closed or deleted. ### Custom Workspaces Custom workspaces are stored in a location of your choice on your filesystem. This makes them ideal for: * Syncing with version control systems like Git * Sharing with team members * Organizing collections by project or team ## Workspace Structure When you create a workspace, Bruno creates the following structure on your filesystem: ``` my-workspace/ ├── workspace.yml # Workspace configuration file ├── collections/ # Directory for collections └── environments/ # Directory for global environments ``` The `workspace.yml` file contains the workspace configuration, including: * Workspace name * List of collections in the workspace * API specifications ## How to Create a Workspace 1. Open Bruno and click on the **workspace dropdown** in the top-left corner. 2. Select **Create workspace** from the menu. Create Workspace 3. Enter a **name** for your workspace (1-255 characters). 4. **(Optional)** To store the workspace at a custom location: click the **settings icon** (advanced options) and choose the desired folder on your system. Advanced options – choose location If you skip this, the workspace is stored at the default location: `~/Documents/bruno` (e.g. `/Users/username/Documents/bruno`). You can view or change the default location in **Preferences** → **General** tab. See [Settings](/get-started/configure/settings#general). 5. Click **Browse** to choose or confirm the location on your filesystem (or use the default). 6. Click **Create Workspace**. Bruno will create the workspace folder structure and automatically switch to the new workspace. Workspace names must be unique. You cannot create a workspace with the same name as an existing workspace. ## Managing Workspaces ### Switching Between Workspaces 1. Click on the **workspace dropdown** in the top-left corner 2. Click on any workspace name to switch to it The active workspace is indicated with a checkmark. ### Pinning Workspaces You can pin frequently used workspaces for quick access: 1. Hover over a workspace in the dropdown menu 2. Click the **pin icon** to pin or unpin the workspace Pinned workspaces appear at the top of the workspace list. ### Managing Workspaces To access workspace management options: 1. Click on the **workspace dropdown** in the top-left corner 2. Select **Manage workspaces** from the menu From the Manage Workspace screen, you can: * **Open** - Switch to a different workspace * **Show in folder** - Open the workspace location in your file explorer * **Rename** - Change the workspace name (available from the workspace home screen) * **Close** - Remove the workspace from Bruno (files remain on disk) ### Renaming a Workspace 1. Open the workspace you want to rename 2. Click on the **workspace home icon** (or navigate to the workspace overview) 3. Click the **menu icon** (three dots) next to the workspace name 4. Select **Rename** and enter the new name ## Opening Workspaces Bruno's Free and Open Source versions support having two (2) Workspaces open at a time. If you'd like to have additional Workspaces open, consider upgrading to one of our [paid plans](https://www.usebruno.com/pricing). If you have an existing workspace folder that you've either created or copied to your system (for example, cloned from a Git repository or received from a colleague in a .zip): 1. Click on the **workspace dropdown** in the top-left corner 2. Select **Open workspace** from the menu 3. Navigate to and select the workspace folder containing `workspace.yml` 4. Click **Open** Bruno will validate the workspace configuration and open it. ## Importing a Workspace Workspaces can be imported from zip files or from git repositories. To import a workspace: 1. Click on the **workspace dropdown** in the top-left corner 2. Select **Import workspace** from the menu 3. Follow the import wizard to complete the process from a `File` or `Git Repository` Import Workspace For detailed instructions on importing and exporting workspaces, including Git-based workflows, see the [Import/Export Workspace Guide](/get-started/import-export-data/import-export-workspace). ## Closing a Workspace To close a workspace (remove it from Bruno without deleting files): 1. Open the workspace you want to close 2. Navigate to the workspace overview 3. Click the **menu icon** and select **Close** Closing a workspace only removes it from Bruno's workspace list. The files remain on your filesystem and can be re-opened at any time. ## Next Steps Once you've created a workspace, you can [create a collection](./create-a-collection) inside it to start organizing your API requests. # Download & Install Source: https://docs.usebruno.com/get-started/bruno-basics/download Bruno is an open-source, fast and lightweight API client for exploring and testing APIs. It's designed to be a modern alternative to traditional API clients with a focus on speed, simplicity, and collaboration. ## Installation Options Bruno can be installed via direct download or through package managers on supported platforms. Starting with Bruno v3, native ARM64 binaries are available for [Windows ARM64 devices ](https://www.usebruno.com/downloads). ### Direct Download Download the latest macOS version from the [official downloads page ](https://www.usebruno.com/downloads). ### Homebrew ```bash theme={null} brew install bruno ``` ### Direct Download Download the latest Windows installer from the [official downloads page ](https://www.usebruno.com/downloads). **Enterprise MSI Installation** When installing Bruno using an MSI installer, IT administrators can control auto-update behavior by passing the `AUTOUPDATE_ENABLED` flag during installation: * Set to `false` to disable auto-updates enterprise-wide * If auto-updates are disabled by the enterprise, users cannot enable them manually * If no enterprise setting exists, Bruno respects individual user preferences Example: `msiexec /i Bruno.msi AUTOUPDATE_ENABLED=false` ### Using Package Managers **Chocolatey** ```bash theme={null} choco install bruno ``` **Winget** ```bash theme={null} winget install Bruno.Bruno ``` **Scoop** ```bash theme={null} scoop install bruno ``` ### Direct Download Download the latest Linux package from the [official downloads page ](https://www.usebruno.com/downloads). ### Using Package Managers **APT (Debian/Ubuntu)** ```bash theme={null} # Create keyrings directory sudo mkdir -p /etc/apt/keyrings # Update and install GPG and curl sudo apt update && sudo apt install gpg curl # List existing keys (optional) sudo gpg --list-keys # Add the Bruno repository key curl -fsSL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x9FA6017ECABE0266" | gpg --dearmor | sudo tee /etc/apt/keyrings/bruno.gpg > /dev/null # Set permissions for the GPG key file sudo chmod 644 /etc/apt/keyrings/bruno.gpg # Add the Bruno repository echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/bruno.gpg] http://debian.usebruno.com/ bruno stable" | sudo tee /etc/apt/sources.list.d/bruno.list # Update and install Bruno sudo apt update && sudo apt install bruno ``` **Flatpak** ```bash theme={null} flatpak install flathub com.usebruno.Bruno ``` **Snap** ```bash theme={null} sudo snap install bruno ``` ## Nightly Builds Nightly builds are **pre-release** and may contain bugs. Use them to preview upcoming features and provide feedback - not for production. Nightly builds are published automatically for early testing of upcoming features. To get started, visit the [bruno-nightly-builds ](https://github.com/usebruno/bruno-nightly-builds) repository on GitHub and download the asset that matches your OS. Find the latest release in the [nightly builds repository ](https://github.com/usebruno/bruno-nightly-builds/releases) and download the installer for your platform: | Platform | File to download | | --------------------- | ------------------------------ | | macOS (Apple Silicon) | `.dmg` (arm64) | | macOS (Intel) | `.dmg` (x64) | | Windows | `.exe` or `.msi` installer | | Linux | `.AppImage`, `.deb`, or `.rpm` | Install it the same way as a regular Bruno release. The CLI nightly build is published as an npm tarball (`.tgz`). Installing it in an **isolated folder** keeps it separate from any globally installed version. **1. Prepare a test folder** Download the `.tgz` file from the [nightly builds repository ](https://github.com/usebruno/bruno-nightly-builds/releases) and keep the original filename unchanged. Then create a clean folder and move the file into it: ```bash theme={null} mkdir cli-portable-nightly mv usebruno-cli-*.tgz cli-portable-nightly/ cd cli-portable-nightly ``` **2. Install the bundle locally** ```bash theme={null} npm init -y npm install --offline ./usebruno-cli-.tgz ``` **3. Verify the installation** ```bash theme={null} npx bru --version # Expected output: the nightly version number, e.g. 3.5.0 ``` **4. Run your collection using the local CLI** The nightly binary is installed inside `cli-portable-nightly/node_modules/.bin/bru`. When you want to run a collection that lives in a **different folder**, you must use the full absolute path to that binary. Using `./node_modules/.bin/bru` only works from inside the `cli-portable-nightly` folder itself. ```bash theme={null} # Step into your collection folder cd /path/to/your-collection # macOS / Linux — use the absolute path to the nightly binary /path/to/cli-portable-nightly/node_modules/.bin/bru run --env # Windows C:\path\to\cli-portable-nightly\node_modules\.bin\bru run --env ``` If you are not sure of the path, run `pwd` while inside `cli-portable-nightly` to get it: ```bash theme={null} cd /path/to/cli-portable-nightly pwd # e.g. /Users/yourname/Downloads/cli-portable-nightly ``` Then use that output as the prefix: ```bash theme={null} cd /path/to/your-collection /Users/yourname/Downloads/cli-portable-nightly/node_modules/.bin/bru run --env ``` To avoid typing the full path every time, export it as a shell variable for your session: ```bash theme={null} export NIGHTLY_BRU=/Users/yourname/Downloads/cli-portable-nightly/node_modules/.bin/bru cd /path/to/your-collection $NIGHTLY_BRU run --env ``` *** ## Release Information Bruno follows semantic versioning. You can check the [GitHub Releases ](https://github.com/usebruno/bruno/releases) page for: * Latest version information * Release notes * Bug fixes * New features included in each release # Run a Collection Source: https://docs.usebruno.com/get-started/bruno-basics/run-a-collection Running a Bruno collection lets you exercise and test an API. You can run collections from the app (**Collection Runner**) or from the command line (**Bruno CLI**). ### Collection Runner The built-in Collection Runner supports **unlimited** runs. 1. **Open the Collection Runner** using either method: * In the sidebar, click **`···`** next to your collection, then select **Run**. Click Run from collection menu * Or click the **Collection Runner** icon in the top bar. Collection Runner icon in the top bar 2. **Configure the run** (optional): In the runner, set **parameters**, choose a **delay** between requests, and adjust any other options you need. 3. **Start the run** to execute the collection from the runner. The Collection Runner does not include gRPC and WebSocket requests. Only HTTP requests will be executed when running a collection. **Data-driven testing** (running a collection with a **CSV** data file) is available in [Bruno Pro](https://www.usebruno.com/pricing) and [Bruno Ultimate](https://www.usebruno.com/pricing). Collection Runner ### Automating Runs in CI/CD 1. **Use the Bruno CLI** to run collections from scripts and pipelines (no GUI required). 2. **Follow the CLI docs** to install the CLI, run a collection, and wire it into your CI/CD jobs: [Bruno CLI ](https://docs.usebruno.com/bru-cli/overview) # JavaScript Sandbox Source: https://docs.usebruno.com/get-started/configure/javascript-sandbox Bruno provides two modes for executing JavaScript code in your collections: 1. Safe Mode 2. Developer Mode Javascript Sandbox **Bruno CLI v3.0.0 Update**: When using Bruno CLI, the default mode is now **Safe Mode**. To use Developer Mode features in CLI, you must pass the `--sandbox=developer` flag. Learn more in the [Bruno CLI documentation](/bru-cli/runCollection#running-with-developer-mode). ## Safe Mode JavaScript code is executed in a secure sandbox and cannot access your filesystem or execute system commands. We recommend Safe Mode for most users. When in doubt, leave the Collection in Safe Mode. You can always switch to Developer Mode later. ## Developer Mode JavaScript code has access to the filesystem, can execute system commands and access sensitive information. #### When to use Developer Mode * You trust the collection source/authors (Ex: Collection maintained by you/your team) and Safe Mode is not enough for your use case. * You need to use external npm packages in your scripts * Your collection needs access to filesystem / system commands #### When to avoid Developer Mode * You are running a collection that you do not trust (Ex: Downloaded from the internet) Developer Mode can be dangerous and should only be used when you fully understand the implications. ## Detecting Sandbox Mode in Scripts You can programmatically detect the current sandbox mode in your pre-request, post-request, and test scripts using the `bru.isSafeMode()` API. **Use Case:** Some collections may require explicit Developer Mode features. By detecting the sandbox mode, you can log appropriate error messages or take alternative actions when the collection is run in Safe Mode. **Example:** ```javascript theme={null} // Check if running in Safe Mode if (bru.isSafeMode()) { console.log('⚠️ This collection requires Developer Mode.'); console.log('Please switch to Developer Mode to use filesystem and external packages.'); } else { console.log('✓ Running in Developer Mode - all features available.'); // Proceed with Developer Mode features const fs = require('fs'); // ... use filesystem operations } ``` **API Reference:** See the complete documentation in [JavaScript API Reference](/testing/script/javascript-reference#detecting-sandbox-mode). # Configuring Proxy Settings in Bruno Source: https://docs.usebruno.com/get-started/configure/proxy-config A proxy is an intermediary server that sits between a client application (like Bruno) and the destination server that the client is communicating with (like an API). The proxy server acts as a security barrier, making requests on your behalf to websites and other internet resources, and preventing others from accessing your internal network. If your machine sits behind a corporate network or firewall, you may need to configure the proxy settings in Bruno in order for requests to be made. ## Try it out Try the [proxy\_configuration](https://github.com/bruno-collections/proxy_configuration) sample collection to see proxy setups in action: Starting from v3.1.0+, **System Proxy is enabled by default for new users** and Existing users retain their current preference settings. Below are steps for configuring your proxy settings at different levels within Bruno. ## 1. Accessing Proxy Settings 1. Open Bruno. 2. Click on the **Preferences** section from the bottom left corner. 3. Navigate to the **Proxy** tab in the sidebar. proxy-settings ## 2. Configuring Proxy Mode Bruno provides four options for proxy mode: * **Off**: Disables proxy usage. * **On**: Enables proxy and routes requests through a manually configured proxy. * **System Proxy**: Uses the system-wide proxy settings. * **PAC**: Uses a [Proxy Auto-Configuration (PAC)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file) file to determine the proxy for each request. Select **On** if you want to configure a custom proxy, or **PAC** if your network uses a PAC file for automatic proxy configuration. Bruno automatically detects and uses the system proxy configuration, including PAC (Proxy Auto-Config) settings configured at the operating system level. ## 3. Selecting Proxy Protocol Bruno supports different proxy protocols. Choose one of the following: * **HTTP** * **HTTPS** * **SOCKS4** * **SOCKS5** ## 4. Entering Proxy Details Fill in the required fields: * **Hostname**: The proxy server's domain or IP address (e.g., `example.com`). * **Port**: The port number for the proxy connection (e.g., `3000`). ## 5. Enabling Authentication (Optional) If your proxy requires authentication: 1. Check the **Auth** checkbox. 2. Enter the **Username**. 3. Enter the **Password** (Click the eye icon to reveal the password if needed). ## 6. Configuring PAC proxy When you select the **PAC** proxy mode, Bruno resolves the appropriate proxy for each request using a PAC file. You can provide the PAC file in two ways: * **URL**: Enter the URL to your PAC file (e.g., `https://example.com/proxy.pac`). The URL must use the `http://`, `https://`, or `file://` protocol. * **File**: Click **Choose file...** to select a `.pac` file from your local filesystem. Bruno evaluates the `FindProxyForURL` function in the PAC file for each request and routes traffic through the returned proxy. pac-proxy ## 7. Configuring Proxy at Collection Level There may be instances in which your collection needs to use a different proxy than what you have configured globally. Configuring proxy settings at the collection level will override any configuration you've made in the preferences section. Below are instructions on proxy settings at the collection level: 1. Open the collection settings. 2. Navigate to the **Proxy** tab. collection-proxy ### **Choose the Configuration Mode:** * **inherit**: Uses the main proxy settings from Preferences. * **Enabled**: Enables a custom proxy for this collection. * **Disabled**: Disables the proxy for this collection. 3. Choose **inherit, enabled, or disabled**. 4. Enter the **Hostname, Port, Protocol, Username, and Password** if needed. 5. Click **Save** to apply the settings. # Settings Source: https://docs.usebruno.com/get-started/configure/settings You can customize Bruno settings according to your preferences. Bruno offers a variety of settings that can be tailored to suit your needs. Key settings include: * [General](#general) * [Themes](#themes) * [Display](#display) * [Proxy](#proxy) * [License](#license) * [Keybindings](#keybindings) * [Secrets](#secrets) * [Support](#support) * [About](#about) * [Telemetry](#telemetry) These are the core settings that you can adjust to optimize your Bruno experience. ## General The General settings include options for SSL/TLS, Custom CA certificates, and Cookies. You can customize how cookies are handled by choosing to store and send them automatically, or simply uncheck the box if you prefer not to store cookies. general-settings ## Themes Bruno offers a variety of themes to personalize your workspace. You can choose from different color schemes to match your preference and enhance your visual experience while working with APIs. themes ## Display In the Display section, you can control the appearance of the Bruno, choosing between Dark, Light, or System mode, based on your preference. Additionally, you can customize the code editor font to suit your style. display-settings ## Proxy You can customize the Proxy settings by selecting On, Off, or System, depending on your needs. For more details, you can refer to the [Proxy guide here](./proxy-config) to learn more. By default, the Proxy setting is Off in Bruno. proxy-settings ## License Bruno offers Ultimate and Pro plans for premium users. You can refer to the [Licensing guide](/license-management/overview) to learn more about the features and benefits of each plan. license-settings ## Keybindings Keybinding is available in Bruno **3.3.0+** or higher versions. You can customize the keybindings to suit your preferences. 1. Go to **Keybindings** tab from **Preferences** bottom left corner. 2. Click and enter the keybinding you want to customize. When defining keybindings, use at least one modifier key. On macOS, supported modifiers are Command, Option, Control, or Shift. On Windows, use Ctrl, Alt, or Shift. Operating system level keybindings cannot be used as shortcuts in Bruno. Click on **Reset Default** button to reset all keybindings to their default values. keybindings ## Secrets There are three primary ways to manage secrets in Bruno, which you can learn about in the [Secret Management Overview](/secrets-management/overview). This setting controls the integration with a Vault for secret management, which is available in Bruno **Ultimate Edition**. vault-secrets ## Support If you encounter issues or need assistance, you can access a range of troubleshooting resources to help resolve your problem quickly. support ## About View application details and enable the auto-update feature to keep your app up to date automatically. about ## Telemetry Bruno collects limited, anonymized usage telemetry to help improve the product. You have full control over this and can opt out at any time for privacy or compliance reasons. The **Telemetry** toggle is available in the global preferences panel under the **About** tab (refer to the [About](#about) section for more details). The telemetry is enabled by default but you can disable this from the About page in Preferences. telemetry # Exporting Collections Source: https://docs.usebruno.com/get-started/import-export-data/export-collections If your whole team isn't using Bruno (yet), no fear! You can export Bruno collections to other formats. Our preferred recommendation for sharing collections is using native Git versioning, but we realize there are other scenarios where exporting makes sense. Bruno allows you to export as: * Bruno Collection * Postman Collection * OpenAPI Specification To export: 1. Simply hover on the Collection you'd like to export 2. Click the `...` menu and select `Share` ExportDialog 3. You can then chose the format you'd like to export to and then designate a location for the file to be saved. ExportModal # Import collections Source: https://docs.usebruno.com/get-started/import-export-data/import-collections Bruno supports importing collections from multiple tools and formats, making it easy to transition from other API clients or work with API specifications. This guide provides step-by-step instructions for each import format. ## How to Access Import Collection You can import collections in two ways: **Option 1: From Home Screen** Import from home screen Click **Import Collection** on the Bruno home screen. **Option 2: From the + menu** Import from options menu Click the **+** button in the top-left corner and select **Import Collection**. **Import Options Dialog** Import options Once the import dialog opens, you'll see all available import formats. Select the one that matches your source. You can also import collections from GitHub directly with in App. See [GitHub Provider](/git-providers/github) for more details. *** ## Import Formats ### 1. Bruno Collection **Use this when:** A colleague shares their Bruno collection with you or you're restoring a backup. **Steps:** 1. Open Bruno 2. Click the **+** button in the top-left corner and select **Import Collection**. 3. Browse and select your Bruno collection folder 4. Click **Import** Your collection with all requests, folders, and configurations will be imported. *** ### 2. Postman Collection **Use this when:** You're migrating from Postman or importing collections shared by Postman users. **Steps:** 1. **Export from Postman:** * Open Postman * Click on your collection → **Export** * Choose **Collection** format * Save the `.json` file 2. **Import to Bruno:** * Open Bruno * Click the **+** button in the top-left corner and select **Import Collection**. * Drag and drop your exported `.json` file, or click to browse * Click **Import** **Learn more:** [Postman Migration](/get-started/import-export-data/postman-migration) *** ### 3. Postman Data Export **Postman Data Export** is available in our **Ultimate Edition**. This allows you to import all of your Postman data including collections, environments, and globals in one go. **Use this when:** You want to migrate all of your Postman data to Bruno. **Steps:** 1. **Export from Postman:** * Open Postman * Go to **Settings** → **Data** * Click **Export Data** * Choose what to include (collections, environments, globals) * Download the export file 2. **Import to Bruno:** * Open Bruno * Click the **+** button in the top-left corner and select **Import Collection**. * Select your exported data file * Click **Import** **Complete guide:** [Postman Migration Guide](/get-started/import-export-data/postman-migration) *** ### 4. Insomnia Collection **Use this when:** You're migrating from Insomnia or importing collections from Insomnia users. **Steps:** 1. **Export from Insomnia:** * Open Insomnia * Click on your workspace/collection * Go to **Application** menu → **Preferences** → **Data** * Click **Export Data** * Choose **Export Collections** or **Export Workspace** * Save the exported file Insomnia v4 exports collections in `.json` format, while Insomnia v5 and later export in `.yaml` format. Bruno supports importing both formats. 2. **Import to Bruno:** * Open Bruno * Click the **+** button in the top-left corner and select **Import Collection**. * Drag and drop your exported file (`.yaml` or `.json`), or click to browse * Click **Import** *** ### 5. Cloning a Git Repository **Use this when:** Your team stores Bruno collections in a Git repository for version control and collaboration. **Prerequisites:** * Make sure the Git repository contains a valid Bruno collection * Ensure you have access credentials for the repository **Steps:** 1. Open Bruno 2. Click the **+** button in the top-left corner and select **Import Collection**. 3. Select **Clone from Git Repository** 4. Enter the Git repository URL 5. Choose the local destination folder 6. Click **Clone** Clone Git Repository The collection will be cloned and you can start using it immediately. Any changes you make can be committed back to the repository. **Complete guide:** [Git Integration Overview](/git-integration/overview) *** ### 6. OpenAPI Specification **Use this when:** You have an OpenAPI (Swagger) specification file and want to generate API requests from it. #### Import from OpenAPI File **Steps:** 1. **Obtain your OpenAPI file:** * Get your OpenAPI specification file (`.json` or `.yaml` format) * Use a valid **OpenAPI 2.0** (Swagger 2.0) or **OpenAPI 3.x** spec 2. **Import to Bruno:** * Open Bruno * Click the **+** button in the top-left corner and select **Import Collection**. * Drag and drop your OpenAPI file (`.json` or `.yaml`), or click to browse * Click **Import** #### Import from OpenAPI URL **Steps:** 1. Open Bruno 2. Click the **+** button in the top-left corner and select **Import Collection**. 3. Enter the OpenAPI specification URL (e.g., `https://api.example.com/openapi.json`) 4. Click **Import** Import OpenAPI URL Bruno will automatically generate requests for all API endpoints defined in the specification. **Learn more:** [OpenAPI Guide](/open-api/importOAS) *** ### 7. WSDL (Web Services Description Language) **Use this when:** You're working with SOAP-based web services and have a WSDL file. #### Import from WSDL File **Steps:** 1. **Obtain your WSDL file:** * Get the `.wsdl` file from your SOAP service provider * Or download it from the service endpoint (usually available at `?wsdl`) 2. **Import to Bruno:** * Open Bruno * Click the **+** button in the top-left corner and select **Import Collection**. * Drag and drop your `.wsdl` file, or click to browse * Click **Import** **Complete guide:** [SOAP Requests](/converters/wsdl-to-bruno) *** ## After Import Once your collection is imported: 1. **Review the requests** - Check that all requests imported correctly 2. **Configure environments** - Set up variables for different environments (dev, staging, production) 3. **Test the requests** - Execute a few requests to ensure they work as expected 4. **Organize** - Create folders and organize requests if needed 5. **Set up authentication** - Configure authentication methods if required ## Need Help? If you encounter issues during import: * Check the format of your export file * Ensure you're using the latest version of Bruno * Visit our [GitHub Discussions](https://github.com/usebruno/bruno/discussions) for community support * Report bugs on [GitHub Issues](https://github.com/usebruno/bruno/issues) # Import Export Environment Variables Source: https://docs.usebruno.com/get-started/import-export-data/import-export-environments Make sure you have Bruno version 2.14 or later installed to use this feature. You can import and export environment variables (collection and global) to share them across teams or back them up for later use. ## Accessing Import/Export Options 1. Go to the **Environments** section (top right corner). Environment Variables location 2. Click on **Configure** to access the environment settings. 3. You will see the **Import** and **Export** options in the left sidebar. Export Option ## Importing Environment Variables The import feature accepts environment files in both **Bruno** and **Postman** formats. ### Steps to Import 1. Click on the **Import** button in the environment configuration screen. Export env 2. Select the environment file you want to import. 3. The variables will be added to your environment (global or collection, depending on which you're configuring). Import Environment ## Exporting Environment Variables ### Steps to Export 1. Go to the **Environments** section. 2. Click on **Configure**. 3. Click the **Export** button. Export env 4. If you have multiple environments, select which environments you want to export. 5. Choose the location where you want to save the exported JSON file. Export Collection Environment Location 6. The environment variables will be saved as a JSON file that can be shared or backed up. The export procedure is the same for both collection and global environment variables. Secret variables (variables marked as secret) will not be included in the exported JSON file for security reasons. # Import and Export Workspace Source: https://docs.usebruno.com/get-started/import-export-data/import-export-workspace Bruno workspaces allow you to group multiple collections together in a single workspace. You can import and export entire workspaces to easily share them with your team or migrate between environments. A workspace can contain multiple collections, along with global environment variables and workspace-level settings. ## Export Workspace Exporting a workspace allows you to package all collections and configurations into a single file for sharing or backup. ### Steps to Export a Workspace 1. Open Bruno and navigate to your workspace 2. Click the `...` (ellipsis) menu at the top 3. Select **Export Workspace** Export Workspace Option 4. After export you will get `.zip` file with all collections and configurations. *** ## Import Workspace You can import a workspace in two ways: from a ZIP file or by cloning from a Git repository. ### Option 1: Import from ZIP File **Use this when:** You have an exported workspace file or received a workspace backup from a colleague. **Steps:** 1. Open Bruno 2. Go to **Workspace** section and select **Import workspace** option from the dropdown menu. Import Workspace 3. Select **Import Workspace** 4. Choose **From ZIP File** Import Workspace from ZIP 5. Browse and select your workspace `.zip` file 6. Choose a destination folder on your filesystem 7. Click **Import** 8. After import you will see all collections and configurations in the workspace. *** ### Option 2: Import from Git Repository **Use this when:** Your workspace is stored in a Git repository for version control and team collaboration. **Prerequisites:** * The Git repository must contain a valid Bruno workspace * You need appropriate access credentials for the repository **Steps:** 1. Open Bruno 2. Go to **Workspace** section and select **Import workspace** option from the dropdown menu. Import Workspace 3. Select **Import Workspace** 4. Choose **Clone from Git Repository** Import Workspace from Git 5. Enter the Git repository URL 6. Choose a local destination folder 7. Click **Clone** The workspace will be cloned with full Git history. Any changes you make can be committed and pushed back to the repository. *** # Migrating from Postman Source: https://docs.usebruno.com/get-started/import-export-data/postman-migration Bruno makes migrating from Postman easy. All you need to do is export your collections and environments and import them to Bruno.