Common use cases
Human review and annotation
Human review and annotation
Build custom annotation interfaces for large-scale human review tasks, surfacing only relevant information for annotators and subject matter experts.
Simplifying traces for non-engineers
Simplifying traces for non-engineers
Replace JSON with intuitive UI components like carousels, playlists, or structured summaries to make traces accessible to PMs, legal reviewers, and domain experts.
Industry-specific visualizations
Industry-specific visualizations
Create views that mirror your product experience:
- Playlist-style views for music applications
- Interactive source-and-answer layouts
- Custom dashboards for internal evaluations
Multi-turn conversation analysis
Multi-turn conversation analysis
Aggregate and display data across conversation turns to analyze dialogue flow and long-running interactions.
Create views
To create a custom view using Loop:- Select a trace or open a dataset row.
- Select Views.
- Describe how you want to view your data.
- Trace views
- Dataset views
- “Create a view that renders a list of all tools available in this trace and their outputs”
- “Build an interface to review each trace one by one with easy switching between traces”
- “Create a conversation-style view that highlights user messages and assistant responses”
- “Render the video url from the trace’s metadata field and show simple thumbs up/down buttons”
Self-hosted deployments: If you restrict outbound access, allowlist
https://www.braintrustsandbox.dev to enable custom views. This domain hosts the sandboxed iframe that securely renders custom view code.Share views
Custom views are stored differently depending on whether they’ve been saved:- Unsaved views exist only in the browser where you created them. If you close the browser, clear browser data, or switch to a different device, the view will not be available.
- Saved views are stored in Braintrust, versioned, and available to all team members in the project.
- Select Save in the view editor.
- Choose Save as new view version.
- Select Update to make it available project-wide.
tv parameter for traces or a dv parameter for datasets. Copy the URL to share a link that opens that exact view, even if the project has multiple saved views. Unsaved views aren’t written to the URL.
Edit view React code
Custom views are React components that run inside Braintrust. You can edit the component code directly to customize behavior beyond what Loop generates. To edit the React code:- Go to the custom view.
- Select in the lower left of the view.
- Select Edit.
- Trace views
- Dataset views
The
trace object includes:rootSpanId,selectedSpanId- Current span contextspanOrder- All span IDs in execution orderspans- Map of span_id → span (IDs/relationships only)fetchSpanFields- Fetch full data for multiple spans (see Access data from multiple spans)update- Write supported fields back to a trace span
- Reuse custom views outside of Braintrust
- Integrate review interfaces into internal tools
- Build standalone annotation applications
- Create consistent review experiences across different contexts
Add interactive controls
Custom views support interactive elements that write data back to traces and dataset rows. Add buttons, inputs, or custom controls to collect:- Thumbs up/down feedback.
- Custom metadata fields.
- Dataset input corrections.
- Dataset expected output corrections.
- Tags.
trace.update to write metadata or tags back to a trace span. In dataset views, use the update prop to write metadata, input, expected, or tags back to the current dataset row. Braintrust applies the update only when the current view is writable. Dataset fields like input and expected require the current view to support editing that field.
By default,
trace.update writes to the selected span. Use the optional target field to write to another span:
Example: Add thumbs up/down buttons
Example: Update a dataset row
Access data from multiple spans
By default, only the selected span has full data (input, output, expected, metadata). To access data from other spans, usefetchSpanFields:
Example: Display all span inputs
Render attachments
Attachments (images, videos, audio, and other binary data) logged in your traces can be displayed directly in custom views. When span data is fetched, Braintrust automatically converts attachment references toinline_attachment objects with pre-signed URLs ready for rendering.
Attachments in span data are automatically transformed into objects with this structure:
type field identifies the object as an attachment, src contains a pre-signed URL that works directly in image, video, or audio tags, and content_type indicates the media type.
For text-based attachment references (JSON, plain text, CSV, XML, and Markdown) that Braintrust signs on the viewer’s behalf, Braintrust pre-fetches the content and populates the data field with the text string. Structured inline_attachment objects you log directly with an http or data: URL in src are passed through unchanged and will not have data populated. When data is present, render it directly instead of loading from src.
Size limits apply to pre-fetching: 1MB per individual attachment and 5MB in aggregate across the entire payload being processed. The initial custom view load signs the full
{trace, span} object (which includes all spans in the trace), and each fetchSpanFields call signs all spans in that response together. Once the 5MB aggregate is reached within a single payload, remaining text attachments will have data omitted even if each individual attachment is under 1MB. The content is still accessible via src in all cases.Example: Input/output verification

Duplicate views
Duplicate custom views to reuse them across different projects or organizations. This lets you create a view once and apply the same interface across multiple projects without rebuilding from scratch. To duplicate a custom view:- Open the custom view you want to duplicate.
- Select in the lower left of the view.
- Select Duplicate.
- Give the new view a name.
- Choose the target organization and project.
- Select Duplicate to create a copy in the selected project.
Rename views
To rename a custom view:- Go to the custom view.
- Select in the lower left of the view.
- Select Rename.
- Enter a new name for the view.
- Select Save to save the changes.
Access version history
Every time you save changes to a custom view, Braintrust creates a new version with a timestamp. To view or switch between previous versions:- Go to the custom view.
- Select in the lower left of the view.
- Select Version to see all past versions.
- Choose any previous version to switch to it.
Next steps
- Add human feedback
- Build datasets from annotated traces
- Learn about Loop for AI-assisted development