The examples below are self-contained. Paste any of them into the App tab’s code editor, save, and activate App Mode to try them out.
bru.ctx data arrives asynchronously after page load. Always do the first render inside bru.ctx.onInit, then react to later changes via on*Change callbacks. Reading state at the top level or on DOMContentLoaded returns null or empty values.
Request Apps
Send a request and display the response
A minimal form that sends the parent request with a custom variable and renders the JSON response.
Add {{search}} somewhere in your request — URL, body, params, or headers. Bruno will interpolate it at runtime.
React to responses without polling
Renders the latest response instantly whenever one arrives — from the Send button, the runner, or another App call. No polling or manual refresh needed.
Useful for any POST /login or POST /auth/token endpoint. Displays the status code and extracted token after a successful login.
Your request body should reference {{email}} and {{password}}.
Display test and assertion results
Shows a live summary of which tests and assertions passed or failed for the most recent response.
Collection Apps
List all requests in a collection
Displays every request in the collection and lets you run any one of them with a click.
Run all GET requests and show a status summary
A one-click smoke test runner that hits every GET endpoint in the collection and reports pass/fail.
Chain requests — login then fetch data
Logs in, stores the token as a runtime variable, then uses it to fetch a protected resource.
Your collection should have a Login request (returns { token: "…" }) and a Get Profile request that uses {{token}} in an Authorization header.
E-commerce customer dashboard
Loads a customer record, their orders, and product recommendations in parallel, then renders everything in one view.
Assumes requests named Get Customer, Get Orders, and Get Recommendations, each accepting a {{customerId}} runtime variable.
Using external libraries
Apps run outside Bruno’s CSP so any CDN library works. Pin versions for stability.
Chart.js response visualiser
Renders a bar chart from a JSON array response (e.g. [{ label: "A", value: 10 }, …]).
React App
JSX is transpiled in-browser via @babel/standalone. Pin to @7 (the newer automatic JSX runtime emits import statements that inline text/babel scripts cannot handle).