| Crates.io | bevy_brp_extras |
| lib.rs | bevy_brp_extras |
| version | 0.2.0 |
| created_at | 2025-06-20 20:43:31.523948+00 |
| updated_at | 2025-06-23 15:40:26.667883+00 |
| description | Extra BRP methods for Bevy apps including screenshot and shutdown capabilities |
| homepage | |
| repository | https://github.com/natepiano/bevy_brp_extras |
| max_upload_size | |
| id | 1720214 |
| size | 175,874 |
bevy_brp_extras does two things
| bevy | bevy_brp_extras |
|---|---|
| 0.16 | 0.1..0.2 |
The bevy_brp_extras crate follows Bevy's version numbering and releases new versions for each Bevy release. The table above shows which versions of bevy_brp_extras are compatible with which versions of Bevy.
Currently provides three BRP methods:
brp_extras/screenshot - Capture screenshots of the primary windowbrp_extras/shutdown - Gracefully shutdown the applicationbrp_extras/discover_format - Get correct data formats for BRP spawn/insert/mutation operationsAdd to your Cargo.toml:
[dependencies]
bevy_brp_extras = "0.2"
Add the plugin to your Bevy app
use bevy::prelude::*;
use bevy_brp_extras::BrpExtrasPlugin;
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugins(BrpExtrasPlugin) // will listen on BRP default port 15702
.run();
}
You can specify a custom port for the BRP server:
.add_plugins(BrpExtrasPlugin::with_port(8080))
brp_extras/screenshotpath (string, required): File path where the screenshot should be savedNote: If you're not using this with bevy_brp_mcp, you'll need to tell your AI agent that this method requires a path parameter, or let it discover this by trying the method and getting an error message.
brp_extras/shutdownbrp_extras/discover_formattypes (array of strings, required): Fully-qualified component type paths (e.g., "bevy_transform::components::transform::Transform", not just "Transform")Why this exists: Bevy's built-in bevy/registry/schema method provides type schemas, but doesn't show the actual JSON format needed for BRP operations. This method bridges that gap by providing the exact data structures required.
Without bevy_extras/discover_format what happens is the coding agent will try the BRP methods such as bevy/spawn and it will have to do trial and error, parsing error messages until it finally works. And it doesn't always work. With bevy_extras/discover_format providing the type information directly, the coding agent can avoid these issues and interact with the BRP much more efficiently.
Example:
curl -X POST http://localhost:15702/brp_extras/discover_format \
-H "Content-Type: application/json" \
-d '{"types": ["bevy_transform::components::transform::Transform", "bevy_core::name::Name"]}'
Important: Use fully-qualified type paths, not short names. Use bevy/list to find the correct paths.
Response shows:
spawn_format: How to structure data for bevy/spawn operationsmutation_info: Available mutation paths and formats for bevy/mutate_component operationsThis crate is designed to work seamlessly with bevy_brp_mcp, which provides a Model Context Protocol (MCP) server for controlling Bevy apps. When both are used together:
BrpExtrasPlugin to your Bevy appbevy_brp_mcp with your AI coding assistantDual-licensed under either:
at your option.