Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions ai/integration/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,9 @@ See [Use cases](./use-cases) for common workflows (generating collections, writi
- [VS Code](https://code.visualstudio.com) with GitHub Copilot - Popular editor with built-in AI code completion
- [Codex](https://developers.openai.com/codex/) - OpenAI's coding agent; uses `AGENTS.md` for custom instructions
- [Claude](https://claude.ai) - AI agent for writing code and automating workflows

## MCP support

Bruno does not currently provide an MCP (Model Context Protocol) server or MCP client integration.

MCP is not needed for agents to work with Bruno. Collections are plain text files on your local filesystem, so any AI agent can read and edit them directly. Each integration works through the agent's own instruction file, such as `.cursor/rules` for [Cursor](/ai/integration/cursor), `AGENTS.md` for [Codex](/ai/integration/codex), or `.claude/CLAUDE.md` for [Claude](/ai/integration/claude).
4 changes: 4 additions & 0 deletions get-started/configure/settings.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@

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.

<Note>
Bruno's interface is available in English only. There is no setting to change the display language.
</Note>

![display-settings](/images/screenshots/get-started/config/settings/display-settings.webp)

## Proxy
Expand Down Expand Up @@ -94,7 +98,7 @@

- **AI Assistant** — Generate scripts, tests, and documentation from the request tab. See the [Bruno AI](/ai/bruno-ai/introduction) guide.
- **File cache** — Speed up how quickly your collections open by keeping a local cache on disk. Manage it from the [Cache](#cache) tab.
- **Akamai EdgeGrid** — Sign requests with the Akamai EdgeGrid authentication scheme. See the [Akamai EdgeGrid auth](/auth/akamai-edgegrid) guide.

Check warning on line 101 in get-started/configure/settings.mdx

View check run for this annotation

Mintlify / Mintlify Validation (bruno-a6972042) - vale-spellcheck

get-started/configure/settings.mdx#L101

Did you really mean 'Akamai'?

Check warning on line 101 in get-started/configure/settings.mdx

View check run for this annotation

Mintlify / Mintlify Validation (bruno-a6972042) - vale-spellcheck

get-started/configure/settings.mdx#L101

Did you really mean 'Akamai'?
- **Mock Server** — Run a local [mock server](/mock-servers/create-mock-server) using response examples defined in your collection. Useful for serving mock API responses during frontend development without a real backend.

The list of available beta features changes as new capabilities are promoted or graduated to general availability. If the tab shows "No beta features are currently available", none are opt-in in your version.
Expand All @@ -113,7 +117,7 @@

## 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.

Check warning on line 120 in get-started/configure/settings.mdx

View check run for this annotation

Mintlify / Mintlify Validation (bruno-a6972042) - vale-spellcheck

get-started/configure/settings.mdx#L120

Did you really mean 'anonymized'?

The **Telemetry** toggle is available in the global preferences panel under the **About** tab (refer to the [About](#about) section for more details).

Expand Down
6 changes: 6 additions & 0 deletions mock-servers/overview.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Mock Servers"
sidebarTitle: "Overview"
description: "Introduction to Mock Servers in Bruno, usecase and features overview."

Check warning on line 4 in mock-servers/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (bruno-a6972042) - vale-spellcheck

mock-servers/overview.mdx#L4

Did you really mean 'usecase'?
---

<Warning>
Expand Down Expand Up @@ -38,13 +38,19 @@

The Request Log is **in-memory only** (most recent 500 entries per server). It is a debugging aid, not an audit log.

## Scope and limitations

- **App only.** Mock servers start and stop from the Bruno app. Bruno CLI has no command to run a mock server, and Bruno does not ship a standalone mock server binary or container image. You cannot deploy a Bruno mock server to a remote environment such as Kubernetes.
- **Local only.** A running mock server binds to a port on your machine and stops when you close Bruno.
- **No separate export.** Mock server definitions are stored as `.yml` files in the `mocks` folder of your workspace. To share a mock server or move it to another machine, commit these files to version control or copy them directly. Teammates who open the same workspace get the same mock servers.

## Share feedback

Share your feedback on Mock Servers directly on usebruno [GitHub Discussions](https://github.com/usebruno/bruno/discussions/9014).

Check warning on line 49 in mock-servers/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (bruno-a6972042) - vale-spellcheck

mock-servers/overview.mdx#L49

Did you really mean 'usebruno'?

## Next steps

- [Create a mock server](./create-mock-server) - enable the beta flag, create a mock server from a collection or an API spec, then start and use the base URL
- [Run a mock server](./run-mock-server) - interface walkthrough, server controls, request log, response examples, and more.

Check warning on line 54 in mock-servers/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (bruno-a6972042) - vale-spellcheck

mock-servers/overview.mdx#L54

Did you really mean 'walkthrough'?
- [Mock Servers from Collection](./tutorial/mock-from-response-examples) - save collection examples and turn them into a local mock
- [Mock Servers from OpenAPI](./tutorial/mock-from-openapi) - generate a mock from an OpenAPI spec
112 changes: 112 additions & 0 deletions opencollection-yaml/structure-reference.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@
|-------------|-------------|
| `before-request` | Runs before the request is sent |
| `after-response` | Runs after the response is received |
| `tests` | Test assertions using the Chai assertion library |

Check warning on line 211 in opencollection-yaml/structure-reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (bruno-a6972042) - vale-spellcheck

opencollection-yaml/structure-reference.mdx#L211

Did you really mean 'Chai'?

### runtime.assertions

Expand Down Expand Up @@ -264,3 +264,115 @@
- email: User's email address
```

## Collection Root File (`opencollection.yml`)

The `opencollection.yml` file at the root of a collection replaces `bruno.json`. It holds the collection name, collection-level request defaults, configuration, and Bruno-specific extensions.

```yaml
opencollection: 1.0.0

info:
name: My Collection
version: "1"

request: # Collection-level defaults inherited by requests
headers:
- name: X-Api-Version
value: "2"
auth:
type: bearer
bearer:
token: "{{token}}"
scripts:
- type: before-request
code: |-
console.log("runs before every request");

config: # Proxy, client certificates, and protobuf settings
protobuf:
protoFiles:
- type: file
path: ./protos/service.proto
importPaths:
- path: ./protos

extensions:
bruno: # Bruno-specific settings
ignore:
- node_modules
- .git
presets:
request:
type: http
url: https://api.example.com
scripts:
flow: sequential
additionalContextRoots:
- ../libs

docs: |-
Collection-level documentation in Markdown.
```

| Section | Description |
|---------|-------------|
| `opencollection` | OpenCollection spec version |
| `info` | Collection metadata: `name` and optional `version` |
| `request` | Collection-level defaults: `headers`, `auth`, `variables`, and `scripts` (equivalent to `collection.bru` in the Bru format) |

Check warning on line 321 in opencollection-yaml/structure-reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (bruno-a6972042) - vale-spellcheck

opencollection-yaml/structure-reference.mdx#L321

Did you really mean 'Bru'?
| `config` | Collection configuration: `proxy`, `clientCertificates`, and `protobuf` |
| `extensions.bruno` | Bruno-specific settings: `ignore`, `presets`, and `scripts` (`flow`, `additionalContextRoots`) |
| `docs` | Collection-level documentation in Markdown |

### Mapping from `bruno.json`

| `bruno.json` field | `opencollection.yml` equivalent |
|--------------------|--------------------------------|
| `name` | `info.name` |
| `version` | `info.version` |
| `ignore` | `extensions.bruno.ignore` |
| `presets` | `extensions.bruno.presets` |
| `scripts.flow` | `extensions.bruno.scripts.flow` |
| `scripts.additionalContextRoots` | `extensions.bruno.scripts.additionalContextRoots` |
| `proxy` | `config.proxy` |
| `clientCertificates` | `config.clientCertificates` |
| `protobuf` | `config.protobuf` |

<Note>
The `scripts.moduleWhitelist` and `scripts.filesystemAccess` settings from `bruno.json` have no equivalent in `opencollection.yml`. See [Whitelisting Modules](/testing/script/whitelisting-modules) for how these settings work in the Bru format.

Check warning on line 341 in opencollection-yaml/structure-reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (bruno-a6972042) - vale-spellcheck

opencollection-yaml/structure-reference.mdx#L341

Did you really mean 'Bru'?
</Note>

## Environment Files

Environments are stored as `.yml` files in the `environments` folder of the collection (for example, `environments/development.yml`). Each file contains the environment name and its variables.

```yaml
name: development
variables:
- name: host
value: http://localhost:8787
description: Base URL for the local server
- name: port
value:
type: number
data: "8080"
- name: legacyFlag
value: "true"
disabled: true
- secret: true
name: apiKey
```

| Field | Type | Description |
|-------|------|-------------|
| `name` | string | The display name of the environment |
| `variables` | array | The environment's variables |

Each entry in `variables` supports:

| Field | Type | Description |
|-------|------|-------------|
| `name` | string | The variable name |
| `value` | string or object | The value. Use an object with `type` (`number`, `boolean`, `object`) and `data` for typed values |
| `description` | string | Optional description |
| `disabled` | boolean | Set to `true` to disable the variable |
| `secret` | boolean | Set to `true` to mark the variable as a secret. Secret values are not written to the file |
12 changes: 11 additions & 1 deletion send-requests/grpc/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,14 @@ Explore our sample [gRPC collection](https://github.com/bruno-collections/gRPC-a
1. Click the **Fetch in Bruno** button below
2. Choose a location to store the collection locally and start exploring gRPC feature

<BrunoButton collectionUrl="https://github.com/bruno-collections/gRPC-api-collection" width={160} height={40} />
<BrunoButton collectionUrl="https://github.com/bruno-collections/gRPC-api-collection" width={160} height={40} />

## Automation limitations

gRPC requests are designed for interactive use in the Bruno app. Automated runs skip them:

- The Collection Runner skips gRPC requests during folder and collection runs.
- Bruno CLI (`bru run`) does not execute gRPC requests.
- `bru.runRequest()` only executes HTTP and GraphQL requests. Calling a gRPC request from a script resolves with `{ status: 'skipped' }`. See the [JavaScript reference](/testing/script/javascript-reference#brurunrequestrequestpathname).

To automate a workflow that depends on a gRPC call, trigger the gRPC request manually in the app, or expose the same operation over HTTP for automated runs.
4 changes: 4 additions & 0 deletions testing/script/whitelisting-modules.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: "Whitelisting Modules"
---

The scripts can use both [external libraries](/testing/script/external-libraries) (via package.json and npm install) and certain [built-in](/testing/script/inbuilt-libraries) modules in Node.js (like fs, path, etc.). However, for security reasons, not all built-in Node.js modules are made accessible by default in Bruno scripts.

Check warning on line 5 in testing/script/whitelisting-modules.mdx

View check run for this annotation

Mintlify / Mintlify Validation (bruno-a6972042) - vale-spellcheck

testing/script/whitelisting-modules.mdx#L5

Did you really mean 'fs'?

## Why Whitelisting

Expand Down Expand Up @@ -44,3 +44,7 @@
```

Only whitelist modules that you trust and that are necessary for your script to function properly.

<Note>
`moduleWhitelist` and `filesystemAccess` are settings of the `bruno.json` file used by Bru format collections. Collections that use the [OpenCollection YAML format](/opencollection-yaml/overview) (`opencollection.yml`) have no equivalent for these settings. See the [YAML Structure Reference](/opencollection-yaml/structure-reference#collection-root-file-opencollection-yml) for the settings that `opencollection.yml` supports.
</Note>
Loading