Updated 2d ago
by chrisgliddon
bevy-skills
Unofficial open source AI skills for Bevy, inspired by PixiJS Skills. These skills teach AI coding agents how to correctly use Bevy.
28 GitHub stars (28)
+12 in 30 days
| Period | New stars |
|---|---|
| Oct 1 | 0 |
| Oct 2 | 0 |
| Oct 3 | 0 |
| Oct 4 | 0 |
| Oct 5 | 0 |
| Oct 6 | 0 |
| Oct 7 | 0 |
| Oct 8 | +1 |
| Oct 9 | 0 |
| Oct 10 | +1 |
| Oct 11 | 0 |
| Oct 12 | 0 |
| Oct 13 | 0 |
| Oct 14 | 0 |
| Oct 15 | +1 |
| Oct 16 | 0 |
| Oct 17 | +2 |
| Oct 18 | 0 |
| Oct 19 | +1 |
| Oct 20 | 0 |
| Oct 21 | +1 |
| Oct 22 | +1 |
| Oct 23 | +1 |
| Oct 24 | 0 |
| Oct 25 | 0 |
| Oct 26 | 0 |
| Oct 27 | 0 |
| Oct 28 | 0 |
| Oct 29 | +1 |
| Oct 30 | +1 |
| Oct 31 | 0 |
| Nov 1 | 0 |
| Nov 2 | 0 |
| Nov 3 | 0 |
| Nov 4 | +1 |
| Nov 5 | 0 |
- 30 skills (30 skills found in its SKILL.md files)
- 6 forks (6 forks)
- 2d ago last update (Last updated 2d ago)
Install
Skills CLI
npx skills add chrisgliddon/bevy-skills
Asks which skills and agents to install. Just one: npx skills add chrisgliddon/bevy-skills --skill bevy-a11y — add -g for every project.
Claude Code
git clone https://github.com/chrisgliddon/bevy-skillscp -r "bevy-skills/skills/bevy-a11y" ~/.claude/skills/
Copies the bevy-a11y skill into ~/.claude/skills/ for every project (use .claude/skills/ for one project). Repeat for the other skills listed below.
Plugin
/plugin marketplace add chrisgliddon/bevy-skills
Run inside Claude Code if the repository ships a plugin marketplace, then pick plugins from /plugin.
Skills can run code on your machine — read the SKILL.md first.
What it does
In the author's own words, from each skill's SKILL.md — showing the first 30 of 32 files.
-
bevy-a11y
Use when designing or auditing high-standard video-game accessibility in Bevy 0.20, integrating screen readers and focus navigation, supporting adaptive controllers and complete remapping, implementing captions or audio description, checking contrast and motion safety, or building disabled-player test evidence.
skills/bevy-a11y/ on GitHub (opens in a new tab)SKILL.md -
bevy-animation
Use when wiring `AnimationPlayer` + `AnimationGraphHandle`, building an `AnimationGraph` from glTF clips, blending state-driven animations with `AnimationTransitions::play`, isolating body parts with `AnimationMask`, firing gameplay sync via `#[derive(AnimationEvent)]` + `On<E>` observers, tweening with `AnimatableCurve` / `EaseFunction` / `CubicSegment::new_bezier_easing` from `bevy::curve`, or…
skills/bevy-animation/ on GitHub (opens in a new tab)SKILL.md -
bevy-assets
Use when loading with `AssetServer::load` or `AssetServer::load_builder().with_settings(..)`, holding a `Handle<T>`, spawning a glTF scene with `WorldAssetRoot` (`Handle<WorldAsset>`), mutating through `Assets::get_mut` / `AssetMut`, polling `LoadState::is_loaded`, resolving an `AssetPath`, or replacing `AssetId::invalid()` with `Option<AssetId<T>>` in Bevy 0.20.
skills/bevy-assets/ on GitHub (opens in a new tab)SKILL.md -
bevy-audio
Use when implementing audio in Bevy 0.20 with `AudioPlayer`, `PlaybackSettings`, `AudioSink` or `SpatialAudioSink`, spatial listeners, application mix groups, ambience/music transitions, asset lifetime, browser gesture restrictions, or choosing built-in audio versus `bevy_seedling 0.8`.
skills/bevy-audio/ on GitHub (opens in a new tab)SKILL.md -
bevy-cameras
Use when spawning `Camera3d` or `Camera2d`, choosing a `Projection`, rendering to an image with the `RenderTarget` component, adding `Hdr` / `Tonemapping::Linear` / `ScreenSpaceTransmission` to a camera, wiring `FreeCamera`, `PanCamera` or the new `PanOrbitCamera` from `bevy::camera_controller`, ordering views with `Camera::order`, or setting a per-camera `AmbientLight` in Bevy 0.20.
skills/bevy-cameras/ on GitHub (opens in a new tab)SKILL.md -
bevy-capture
Use when adding `CapturePlugin` to record a `Camera3d` or `Camera2d` to video, spawning `CaptureBundle` with `RenderTarget::target_headless`, calling `Capture::start` with `Mp4Openh264Encoder`, `Mp4FfmpegCliEncoder`, `Mp4FfmpegCliPipeEncoder`, `GifEncoder` or `FramesEncoder`, pausing with `Capture::pause`, or hitting "failed to select a version for bevy_capture" because the crate still pins Bevy…
skills/bevy-capture/ on GitHub (opens in a new tab)SKILL.md -
bevy-cargo-features
Use when picking Bevy 0.20 Cargo features — top-level `2d`/`3d`/`ui`/`audio`, mid-level `3d_api`/`3d_bevy_render`/`ui_api`/`common_api`, headless `default_app`, input opt-ins `mouse`/`keyboard`/`gamepad`, `bevy_curve` (was `bevy_math/curve`), `compressed_image_saver_universal`, `render_dev_tools`, or debugging missing UI/audio/window after `default-features = false`.
skills/bevy-cargo-features/ on GitHub (opens in a new tab)SKILL.md -
bevy-core-concepts
Use when wiring up an `App`, writing a `Plugin`, choosing between `Update` and `FixedUpdate`, ordering `Startup`/`PreUpdate`/`PostUpdate`, writing an exclusive system that takes `&mut World` as a `SystemParam`, or deciding between `.chain()` and `.chain_weak()` in Bevy 0.20. Covers the schedule graph, run order, `set_executor`, and ambiguity detection.
skills/bevy-core-concepts/ on GitHub (opens in a new tab)SKILL.md -
bevy-custom-assets
Use when implementing `AssetLoader` for a custom format, deriving `TypePath` on the loader, loading dependencies through `LoadContext::load` or `LoadContext::load_builder().with_settings(..).load(..)`, marking handle fields `#[dependency]`, reading with `Reader::read_to_end`, seeking via `Reader::seekable` / `AsyncSeekExt`, or implementing the required `Reader::seekable` on your own reader in Bev…
skills/bevy-custom-assets/ on GitHub (opens in a new tab)SKILL.md -
bevy-diagnostics-profiling
Use when profiling Bevy 0.20 with `DiagnosticPath`, `DiagnosticsStore`, `info_span!`, `RenderDiagnosticsPlugin`, or the `RenderDebugOverlay`: custom metrics, CPU/GPU pass timings, queue/task/upload telemetry, stale-result counts, and native, Steam Deck, or WebGPU budgets.
skills/bevy-diagnostics-profiling/ on GitHub (opens in a new tab)SKILL.md -
bevy-ecs-components
Use when defining `#[derive(Component)]`, declaring required components with `#[require(...)]`, writing observers with `On<E>` or lifecycle observers with `On<Add<T>>` (NOT `On<Add, T>`), choosing Table versus SparseSet storage, or registering `on_add`/`on_insert`/`on_discard`/`on_remove` hooks in Bevy 0.20.
skills/bevy-ecs-components/ on GitHub (opens in a new tab)SKILL.md -
bevy-ecs-queries
Use when writing `Query<D, F>` with `With`/`Without`/`Or`, detecting changes with `Changed<T>`/`Added<T>`, parallelising with `par_iter_mut`, looking up entity lists with `iter_many(..).matched()`, building a lens with `transmute_lens`, filtering resource entities with `Without<IsResource>`, or fixing generic-query errors naming `IterQueryData` or `SingleEntityQueryData` in Bevy 0.20.
skills/bevy-ecs-queries/ on GitHub (opens in a new tab)SKILL.md -
bevy-ecs-systems
Use when deriving `SystemParam`, grouping with `SystemSet`, gating execution with `.run_if(on_message::<M>)` / `in_state(...)` / `resource_exists::<R>`, combining conditions with `.and_then()` / `.or_else()`, ordering with `.before`/`.after`/`.chain()`/`.chain_weak()`, driving states with `NextState::set_if_different`, or removing systems with `remove_systems_in_set` in Bevy 0.20.
skills/bevy-ecs-systems/ on GitHub (opens in a new tab)SKILL.md -
bevy-fluent
Use when adding localization to a Bevy 0.20 app with `es-fluent-manager-bevy` 0.21, defining typed messages with `#[derive(EsFluent)]`, wrapping UI text in `FluentText<T>`, auto-registering locale updates with `#[derive(BevyFluentText)]`, or switching locales via `LocaleChangeMessage` / `LocaleChangedMessage`. Covers `I18nPlugin`, `RequestedLanguageId`, `ActiveLanguageId`, `i18n.toml` config, and…
skills/bevy-fluent/ on GitHub (opens in a new tab)SKILL.md -
bevy-input-actions
Use when building Bevy 0.20 input with `InputSystems`, entity-based `Gamepad`/`GamepadSettings`, `AccumulatedMouseMotion`, or `CursorOptions`: rebindable actions, hot-plugging, deadzones, Steam Deck, accessibility controllers, and correct transfer into `FixedUpdate`.
skills/bevy-input-actions/ on GitHub (opens in a new tab)SKILL.md -
bevy-migration-0-17-to-0-18
Use when upgrading from Bevy 0.17 to Bevy 0.18, when an LLM writes `EventReader`/`EventWriter`/`Trigger<E>` instead of `MessageReader`/`MessageWriter`/`On<E>`, when `mesh.insert_attribute` fails to compile, when `AmbientLight` no longer works as a resource, or when `Camera { target: ... }` errors on the `target` field. Index of every breaking 0.17→0.18 change.
skills/bevy-migration-0-17-to-0-18/ on GitHub (opens in a new tab)SKILL.md -
bevy-migration-0-18-to-0-19
Use when upgrading from Bevy 0.18 to Bevy 0.19, when `TextLayout::new_with_justify` or `TextFont { font_size: 24.0, font: handle }` stops compiling (now `TextLayout::justify`, `FontSize::Px`, `FontSource`), when `bevy_scene`/`DynamicScene` serialization moved to `bevy_world_serialization` (`WorldAsset`/`DynamicWorld`), when a `#[derive(Resource)]` type now also matches `&T` component queries, or…
skills/bevy-migration-0-18-to-0-19/ on GitHub (opens in a new tab)SKILL.md -
bevy-migration-0-19-to-0-20
Use when upgrading from Bevy 0.19 to Bevy 0.20, when `On<Add, T>` or `On<Pointer<Click>>` stops compiling (now `On<Add<T>>` and `On<PointerClick>`), when `ui::Interaction`/`ui::widgets::Button` warn as deprecated (use `ui_widgets::Button` + `Hovered` + `Pressed`), when a `.wgsl` shader with `#import`/`#ifdef` fails to load (WESL), when `iter_many` yields `Result`, when `NextState::set_if_neq` or…
skills/bevy-migration-0-19-to-0-20/ on GitHub (opens in a new tab)SKILL.md -
bevy-pbr-materials
Use when spawning `Mesh3d` with `StandardMaterial`, writing a custom `Material` with `AsBindGroup` and a `.wesl` shader, enabling `shadow_maps_enabled` / `contact_shadows_enabled` on lights, adding `ContactShadows` or `ScreenSpaceTransmission` to a `Camera3d`, spawning an `Atmosphere` entity, loading glTF `#Material0/std` sub-assets, or fixing `#import` / `#ifdef` shader errors after the WESL swi…
skills/bevy-pbr-materials/ on GitHub (opens in a new tab)SKILL.md -
bevy-physics
Use when adding `RapierPhysicsPlugin`, spawning `RigidBody`/`Collider`, reading `CollisionEvent` or `PhysicsQuarantineEvent`, querying with `ReadRapierContext`, configuring `KinematicCharacterController`, or ordering gameplay around `PhysicsSet` in Bevy 0.20.
skills/bevy-physics/ on GitHub (opens in a new tab)SKILL.md -
bevy-porting
Use when porting a game project to Bevy 0.20 from another engine — Unity (Prefab, MonoBehaviour, Animator, UGUI), Unreal, Godot, Cocos, vanilla JavaScript / Phaser, Flash/SWF, Defold, Roblox, or GameMaker — and need a mapping of each engine's primitives to Bevy equivalents (`WorldAssetRoot`, `MessageWriter`, `ui_widgets::Button` + `Hovered`/`Pressed`, `AnimationGraph`, `AudioPlayer`), plus invent…
skills/bevy-porting/ on GitHub (opens in a new tab)SKILL.md -
bevy-rendering
Use when choosing Bevy 0.20's built-in renderer versus an API-only, headless, or external renderer; selecting forward or deferred PBR; writing render systems in `Core3d`/`Core3dSystems`; porting naga_oil shaders to WESL; opting into `ScreenSpaceTransmission` or `Tonemapping::Linear`; configuring 2D/3D render Cargo features; or deciding how physics crates such as `bevy_rapier3d` relate to renderin…
skills/bevy-rendering/ on GitHub (opens in a new tab)SKILL.md -
bevy-save-load
Use when designing Bevy 0.20 persistence with `DynamicWorldBuilder`, `DynamicWorld::serialize`, `WorldAssetRoot`, `IoTaskPool`, or `SettingsPlugin`: stable IDs, versioned save DTOs/migrations, checksums and atomic writes, snapshots plus sparse deltas, native/browser storage, and safe ECS serialization boundaries.
skills/bevy-save-load/ on GitHub (opens in a new tab)SKILL.md -
bevy-testing
Use when testing Bevy 0.20 with `App::update`, `TimeUpdateStrategy`, `FixedUpdate`, `MessageCursor`, or `On<E>` observers: deterministic stepping, async-task draining with `poll_once` and no sleeps, headless worlds, and capture-based visual regression.
skills/bevy-testing/ on GitHub (opens in a new tab)SKILL.md -
bevy-ui
Use when building Bevy 0.20 UI with `Node`, `ui_widgets::Button`, `Hovered` / `Pressed` / `Activate`, `children![]`, `TextFont` with `FontSource` and `FontSize`, `BorderRadius` / `CornerRadius`, `BackgroundColor`, `BorderColor`, `InputFocus`, or `AccessibleLabel`, or when `ui::Interaction` and `Changed<Interaction>` show deprecation warnings.
skills/bevy-ui/ on GitHub (opens in a new tab)SKILL.md -
bevy-vfx
Use when adding GPU particles via `bevy_hanabi 0.20.0` (`HanabiPlugin`, `EffectAsset`, `ParticleEffect`, `ExprWriter`, `SpawnerSettings`, modifiers like `SetPositionSphereModifier` / `ColorOverLifetimeModifier`), rendering Gaussian splats via `bevy_spark`, picking between hanabi and `bevy_spritesheet_animation` flipbooks or `bevy_vector_shapes`, writing custom `Material` + `.wesl` shaders for fir…
skills/bevy-vfx/ on GitHub (opens in a new tab)SKILL.md -
bevy-voxel-data
Use when defining voxel blocks in RON (`name`, `textures`, `flags`), building a runtime palette mapping `BlockId -> BlockDef`, baking per-block textures into a KTX2 atlas (`ktx2` + `zstd_rust` features), or binding the atlas as `StandardMaterial.base_color_texture` with an `ImageSampler` so meshed quads sample by face index. Generic Bevy 0.20 voxel-data patterns — no game-specific data baked in.
skills/bevy-voxel-data/ on GitHub (opens in a new tab)SKILL.md -
bevy-voxel-pipeline
Use when meshing voxel chunks with `block-mesh-rs` (`greedy_quads` / `visible_block_faces`), translating a `GreedyQuadsBuffer` into a Bevy 0.20 `Mesh` via `try_insert_attribute`, choosing between greedy and simple meshing, or scheduling chunk meshing on `AsyncComputeTaskPool` with `poll_once` so the main thread doesn't stall. Covers Bevy 0.20 voxel meshing.
skills/bevy-voxel-pipeline/ on GitHub (opens in a new tab)SKILL.md -
bevy-voxel-runtime
Use when turning voxel edits into production Bevy 0.20 remesh work with `AsyncComputeTaskPool`, `poll_once`, `Mesh3d`, and Rapier `Collider`: dirty/halo fan-out, revision tokens, stale-result rejection, coalescing, priority, bounded uploads, or atomic swaps.
skills/bevy-voxel-runtime/ on GitHub (opens in a new tab)SKILL.md -
bevy-wasm-webgpu
Use when targeting Bevy 0.20 at `wasm32-unknown-unknown`, choosing the `webgl2` or `webgpu` feature, setting `WgpuSettings { backends, priority: WgpuSettingsPriority::WebGPU }`, attaching to a canvas with `Window { canvas, fit_canvas_to_parent }`, generating glue with `wasm-bindgen`, or debugging asset HTTP 404s and `Task` cancellation in the browser.
skills/bevy-wasm-webgpu/ on GitHub (opens in a new tab)SKILL.md
No skill matches that filter.
Review before you install
A skill is a set of instructions and scripts your agent will follow, and it can run code on your machine. Read the SKILL.md and any scripts first — this listing is not a security review.