A Bruno environment is a set of key–value variables that let you switch configurations—such as URLs, tokens, or credentials—so you can run the same API requests across different contexts like development, staging, or production.
Bruno Environment
A Bruno environment is a named set of key–value variables that Bruno, an open-source and offline-first API client, uses to parameterize a collection of requests. Instead of hard-coding a base URL, an API key, or a token into each request, you reference a variable like `` and let the active environment supply the value. Switching environments swaps every one of those values at once, so the same collection runs cleanly against development, staging, or production.
- Named variables - Each environment holds a set of
name/valuepairs that requests interpolate at run time. - Enabled toggles - Individual variables can be turned on or off without deleting them, so you can keep alternates ready.
- Secret variables - Values marked secret are masked in the UI and can be kept out of version control, separating credentials from the shareable collection.
- Ephemeral vs. persisted values - Runtime values captured during a request can live only for the session or be written back and persisted for later runs.
In practice a Bruno environment is where the messy operational reality of running an API lives, kept apart from the clean, checked-in collection. Because Bruno stores collections as plain files in a Git repository, a team can commit the requests while keeping each engineer’s secrets in a local environment, which is exactly the split I wrote about when working through API secrets in Bruno. Paired with an OpenAPI definition and an APIs.json index, a Bruno collection and its environments give you a portable, forkable way to exercise an API across contexts.
Referenced on the API Evangelist blog
Where this standard shows up across sixteen years of my writing at apievangelist.com — how it fits into API design, governance, and the agentic turn.