hz-unity-meta-mixed-reality-utility-kit
Skill200 starsChanged 53 days agoApache-2.0View on GitHub
Meta XR Mixed Reality Utility Kit (MRUK) (com.meta.xr.mrutilitykit) for Unity XR development. Use when working with Scene API data (rooms, walls, floors, furniture), spawning prefabs on scene anchors, placing virtual objects in the real world, world locking to prevent anchor drift, raycasting against room geometry, generating NavMesh from scene data, environment depth raycasting for instant placement without scanning, Passthrough Camera Access (PCA), trackable detection (keyboards, QR codes), destructible scene meshes, space maps, room sharing for multiplayer, or any MR scene-aware feature.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- mirzaaghazadeh/unity-meta-quest-skillsword for word, first seen Nov 15, 2026
Other versions1 project uses a version of this.
Word for word · 1
- mirzaaghazadeh/unity-meta-quest-skills★ 1100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository37 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- hz-android-2d-portingSkill
- hz-api-upgradeSkill
- hz-immersive-designerSkill
- hz-iwsdk-webxrSkill
- hz-metavrx-layout-sdkSkill
- hz-metavrx-ui-setSkill
- hz-new-project-creationSkill
- hz-perfetto-debugSkill
- hz-platform-sdkSkill
- hz-psdk-integrationSkill
- hz-quest-verify-firstSkill
- hz-react-native-expoSkill
- hz-simpleperf-debugSkill
- hz-spatial-sdkSkill
- hz-store-pwaSkill
- hz-store-submitSkill
- hz-unity-code-reviewSkill
- hz-unity-device-readinessSkill
- hz-unity-face-trackingSkill
- hz-unity-fbx-importSkill
- hz-unity-meta-core-sdkSkill
- hz-unity-meta-interaction-sdkSkill
- hz-unity-meta-movement-sdk-retargetingSkill
- hz-unity-meta-quest-uiSkill
- hz-unity-passthrough-camera-accessSkill
- hz-unity-placementSkill
- hz-unity-platform-sdkSkill
- hz-unity-project-analyzerSkill
- hz-unity-sdk-upgradeSkill
- hz-unity-tmp-resourcesSkill
- hz-vr-debugSkill
- hz-xr-simulator-controlSkill
- hz-xr-simulator-install-and-configureSkill
- metavr-cliSkill
- portalSkill
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 2 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 52
All source file paths are relative to the package root (see "Finding the SDK Source" above).
- Distinctive: line 75
All feature components (AnchorPrefabSpawner, EffectMesh, FindSpawnPositions, SceneNavigation, SpaceMapGPU, RoomGuardian, …
- Very specific: line 96
Use as flags: SceneLabels.TABLE | SceneLabels.COUCH matches tables OR couches.
- Very specific: line 284
Check EnvironmentRaycastManager.IsSupported before use.
- Very specific: line 358
Ensure OVRCameraRig is in the scene
- Very specific: line 359
Add an MRUK GameObject with the MRUK component to the scene
- Very specific: line 373
Keep the .cs outside Assets/ (path relative to the project root) so writing it triggers no import or domain reload, and add --dry_run true …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Meta XR Mixed Reality Utility Kit (MR Utility Kit, MRUK, com.meta.xr.mrutilitykit)
The Meta XR Mixed Reality Utility Kit (MR Utility Kit, MRUK) is a Unity package that provides high-level tools on top of the Scene API for building scene-aware Mixed Reality (MR) experiences. It is designed to be used in conjunction with the Meta XR Core SDK. It handles scene data loading and querying, spawning prefabs on real-world surfaces, world locking to prevent anchor drift, environment raycasting for instant placement without scanning, passthrough camera access, NavMesh generation from room geometry, and trackable detection (keyboards, QR codes).
Package: com.meta.xr.mrutilitykit
Finding the SDK Source
The package com.meta.xr.mrutilitykit may be located in different places depending on the project setup:
Library/PackageCache/com.meta.xr.mrutilitykit@<hash>/(cached from registry)Packages/com.meta.xr.mrutilitykit/(local package reference)- A custom on-disk path (embedded or local folder)
Before searching for SDK source, first locate the package root by searching for a known file by filename pattern:
**/com.meta.xr.mrutilitykit*/Core/Scripts/MRUK.csThen use the resolved parent path for all subsequent search operations.
Quick Reference
| Task | Class / Component | Source File | Key Entry Point |
| Load scene from device | MRUK | Scripts/MRUK.cs | LoadSceneFromDevice() |
| Load scene from prefab/JSON | MRUK | Scripts/MRUK.cs | LoadSceneFromPrefab(), LoadSceneFromJsonString() |
| Get current room | MRUK | Scripts/MRUK.cs | GetCurrentRoom() |
| Prevent anchor drift | MRUK | Scripts/MRUK.cs | EnableWorldLock = true |
| Query room geometry | MRUKRoom | Scripts/MRUKRoom.cs | Raycast(), IsPositionInRoom() |
| Find surfaces / closest point | MRUKRoom | Scripts/MRUKRoom.cs | TryGetClosestSurfacePosition(), GenerateRandomPositionOnSurface() |
| Get anchor properties | MRUKAnchor | Scripts/MRUKAnchor.cs | Label, PlaneRect, VolumeBounds |
| Spawn prefabs on anchors | AnchorPrefabSpawner | Scripts/AnchorPrefabSpawner.cs | PrefabsToSpawn, SpawnOnStart |
| Find random spawn positions | FindSpawnPositions | Scripts/FindSpawnPositions.cs | StartSpawn(), SpawnLocations |
| 27-slice mesh resizing | GridSliceResizer | Scripts/GridSliceResizer.cs | ResizeTo(Vector3) |
| Generate visual meshes | EffectMesh | Scripts/EffectMesh.cs | CreateMesh(), CutHoles |
| Breakable scene geometry | DestructibleGlobalMeshSpawner | Scripts/DestructibleGlobalMeshSpawner.cs | CreateOnRoomLoaded |
| GPU distance field texture | SpaceMapGPU | Scripts/SpaceMapGPU.cs | GetSpaceMap(), StartSpaceMap() |
| Boundary proximity fade | RoomGuardian | Scripts/RoomGuardian.cs | GuardianDistance, GuardianMaterial |
| NavMesh from scene | SceneNavigation | Scripts/SceneNavigation.cs | BuildSceneNavMesh() |
| Depth API raycasting | EnvironmentRaycastManager | Scripts/EnvironmentRaycastManager.cs | Raycast(), PlaceBox() |
| Passthrough camera images | PassthroughCameraAccess | Scripts/PassthroughCameraAccess.cs | GetTexture(), GetCameraPose() |
| Track keyboards / QR codes | MRUKTrackable | Scripts/MRUKTrackable.cs | TrackableType, MarkerPayloadString |
| Instant placement (no scan) | PointAndLocate | Scripts/BuildingBlocks/InstantContentPlacement/ | TryLocateSpace() |
| Share rooms (multiplayer) | MRUK | Scripts/MRUK.cs | ShareRoomsAsync(), LoadSceneFromSharedRooms() |
All source file paths are relative to the package root (see "Finding the SDK Source" above).
Architecture
Object Hierarchy
MRUK (singleton MonoBehaviour)
└── MRUKRoom (child GameObjects, one per room)
└── MRUKAnchor (children of rooms: walls, floors, furniture, etc.)MRUK.Instanceis the central hub. It loads scene data, manages rooms, handles world locking, and provides theSceneSettingsconfiguration.MRUKRoomrepresents a physical room. Provides spatial queries (raycasting, position checks, surface queries) and holdsAnchors,WallAnchors,FloorAnchors,CeilingAnchors,GlobalMeshAnchor.MRUKAnchorrepresents a single scene element (wall, table, couch, etc.). Has aLabel(SceneLabels flags), optionalPlaneRect(2D bounds),VolumeBounds(3D bounds), andPlaneBoundary2D(polygon points).MRUKTrackableextendsMRUKAnchorfor runtime-detected objects (keyboards, QR codes).
Native Library
A C/C++ shared library handles world locking, anchor discovery, and coordinate conversion (OpenXR right-handed ↔ Unity left-handed). A hidden MRUKGlobalContext MonoBehaviour (DontDestroyOnLoad) ticks the native context every frame. You never call these directly.
Component Pattern
All feature components (AnchorPrefabSpawner, EffectMesh, FindSpawnPositions, SceneNavigation, SpaceMapGPU, RoomGuardian, DestructibleGlobalMeshSpawner) follow the same pattern:
- A
SpawnOnStart/CreateOnStart/BuildOnSceneLoadedproperty of typeMRUK.RoomFiltercontrols automatic initialization - In
Start(), they callMRUK.Instance.RegisterSceneLoadedCallback(...)which fires immediately if the scene is already loaded - They also expose manual methods (
CreateMesh(),StartSpawn(),BuildSceneNavMesh(), etc.) for programmatic control
Dependencies
- Required:
com.meta.xr.sdk.core(OVRCameraRig, OVRPlugin, OVRSpatialAnchor, OVRSemanticLabels) com.unity.ai.navigation(for SceneNavigation)com.unity.nuget.newtonsoft-json(for JSON scene serialization)
Key Enums
MRUKAnchor.SceneLabels (Flags)
FLOOR, CEILING, WALL_FACE, TABLE, COUCH, DOOR_FRAME, WINDOW_FRAME,
OTHER, STORAGE, BED, SCREEN, LAMP, PLANT, WALL_ART, GLOBAL_MESH,
INVISIBLE_WALL_FACE, UNKNOWN, INNER_WALL_FACEUse as flags: SceneLabels.TABLE | SceneLabels.COUCH matches tables OR couches.
MRUKAnchor.ComponentType (Flags)
None = 0, Plane = 1, Volume = 2, All = Plane | VolumeAnchors can have plane geometry (2D rect), volume geometry (3D bounds), or both.
MRUK.SceneDataSource
Device // Load from device Scene API
Prefab // Load from room prefab GameObjects
DeviceWithPrefabFallback // Device first, prefab if no scene data (recommended for dev)
Json // Load from JSON string
DeviceWithJsonFallback // Device first, JSON if no scene dataMRUK.SurfaceType (Flags)
FACING_UP = 1 // Floors, table tops
FACING_DOWN = 2 // Ceilings, undersides
VERTICAL = 4 // WallsMRUK.RoomFilter
None // Don't auto-initialize
CurrentRoomOnly // Only the room the user is in
AllRooms // All loaded roomsMRUK.SceneModel
V1 // Standard scene model
V2 // High Fidelity: multiple floors/ceilings, slanted ceilings, inner walls
V2FallbackV1 // Try V2, fall back to V1 if unsupportedLabelFilter
Struct for filtering anchors by label and component type. Used in raycast, surface query, and spawn methods.
var filter = new LabelFilter(SceneLabels.TABLE | SceneLabels.COUCH, ComponentType.Volume);
bool passes = filter.PassesFilter(anchor.Label);MRUK.PositioningMethod
DEFAULT // Standard positioning
CENTER // Center of surface (e.g., center of table for chess board)
EDGE // Edge of surface (e.g., edge of table for piano)Core Classes
MRUK (Singleton)
Key Properties: Instance (static), IsInitialized, Rooms (List<MRUKRoom>), EnableWorldLock, IsWorldLockActive, TrackingSpaceOffset, SceneSettings
Key Methods:
GetCurrentRoom()→ MRUKRoomRegisterSceneLoadedCallback(UnityAction)— fires immediately if already loadedLoadSceneFromDevice(SceneModel)→ Task<LoadDeviceResult>LoadSceneFromPrefab(GameObject)→ Task<LoadDeviceResult>LoadSceneFromJsonString(string)→ Task<LoadDeviceResult>SaveSceneToJsonString()→ stringClearScene()HasSceneModel()→ Task<bool> (static, checks if device has scene data)ShareRoomsAsync(...),LoadSceneFromSharedRooms(...)— co-located multiplayer
Events: SceneLoadedEvent, RoomCreatedEvent, RoomUpdatedEvent, RoomRemovedEvent
MRUKSettings (serialized config): DataSource, RoomPrefabs[], SceneJsons[], LoadSceneOnStartup, EnableHighFidelityScene, SeatWidth, TrackerConfiguration
MRUKRoom
Key Properties: Anchors, WallAnchors, FloorAnchors, CeilingAnchors, GlobalMeshAnchor, IsLocal, RoomMeshData
Key Methods:
Raycast(Ray, float, out RaycastHit, out MRUKAnchor)— collisionless raycast against scene geometryRaycastAll(...)— all intersectionsIsPositionInRoom(Vector3),IsPositionInSceneVolume(Vector3)TryGetClosestSurfacePosition(Vector3, out Vector3, out MRUKAnchor, LabelFilter)→ float (distance)GenerateRandomPositionOnSurface(SurfaceType, float, LabelFilter, out Vector3, out Vector3)→ boolGenerateRandomPositionInRoom(float, bool)→ Vector3?FindLargestSurface(SceneLabels)→ MRUKAnchorGetRoomBounds()→ BoundsGetKeyWall(out Vector2, float)→ MRUKAnchor (widest wall facing room center)
Events: AnchorCreatedEvent, AnchorUpdatedEvent, AnchorRemovedEvent
MRUKAnchor
Key Properties: Label (SceneLabels), PlaneRect (Rect?), VolumeBounds (Bounds?), PlaneBoundary2D (List<Vector2>), Room (MRUKRoom), ParentAnchor, ChildAnchors, GlobalMesh (Mesh)
Key Methods:
Raycast(Ray, float, out RaycastHit, ComponentType)— collisionless raycastHasAnyLabel(SceneLabels)→ boolGetAnchorCenter()→ Vector3GetClosestSurfacePosition(Vector3, out Vector3, out Vector3, ComponentType)→ floatIsPositionInVolume(Vector3),IsPositionInBoundary(Vector2)
MRUKTrackable (extends MRUKAnchor)
Runtime-tracked objects (keyboards, QR codes). Managed by MRUK via SceneSettings.TrackerConfiguration.
Key Properties: TrackableType (OVRAnchor.TrackableType), IsTracked, MarkerPayloadString, MarkerPayloadBytes
Events on SceneSettings: TrackableAdded, TrackableRemoved
Feature Components
AnchorPrefabSpawner (Scripts/AnchorPrefabSpawner.cs)
Spawns prefabs on scene anchors based on labels. Configure PrefabsToSpawn (List<AnchorPrefabGroup>) mapping labels to prefab lists with scaling/alignment modes.
AnchorPrefabGroup: Labels, Prefabs, PrefabSelection (Random/ClosestSize/Custom), Scaling (Stretch/UniformScaling/UniformXZScale/NoScaling/Custom), Alignment (Automatic/Bottom/Center/NoAlignment/Custom), MatchAspectRatio, CalculateFacingDirection
Methods: SpawnPrefabs(), SpawnPrefabs(MRUKRoom), ClearPrefabs()
FindSpawnPositions (Scripts/FindSpawnPositions.cs)
Generates random valid positions for spawning objects. Supports floating, surface-mounted, and hanging positions with physics overlap checking.
SpawnLocation enum: Floating, AnySurface, VerticalSurfaces, OnTopOfSurfaces, HangingDown
Key props: SpawnObject, SpawnAmount, MaxIterations, Labels, CheckOverlaps, SurfaceClearanceDistance
GridSliceResizer (Scripts/GridSliceResizer.cs)
27-slice 3D mesh resizer (3D analogue of 9-slice). Preserves mesh borders/corners while stretching the interior to match anchor dimensions. Attach to prefabs used with AnchorPrefabSpawner.
EffectMesh (Scripts/EffectMesh.cs)
Generates visual meshes from scene anchors. Supports materials, colliders, hole cutting (for doors/windows), shadow casting, and visibility toggling.
Key props: MeshMaterial, Colliders, CutHoles (SceneLabels to cut holes for), CastShadow, HideMesh
Methods: CreateMesh(), DestroyMesh(), ToggleEffectMeshVisibility(bool), ToggleEffectMeshColliders(bool)
Passthrough Relighting (PTRL)
Casts virtual lights' shadows and highlights onto real-world surfaces by rendering an EffectMesh with the Meta/MRUK/Scene/HighlightsAndShadows shader (TransparentSceneAnchor.mat). Silent-failure heavy — the most common gotcha is the URP Renderer asset's Transparent Receive Shadows flag must be ON, otherwise shadows never appear on the floor.
For setup, URP/EffectMesh/passthrough requirements, common failure modes, and editor verification, see references/passthrough-relighting.md.
DestructibleGlobalMeshSpawner (Scripts/DestructibleGlobalMeshSpawner.cs)
Segments the global mesh into breakable fragments using Voronoi-based segmentation.
Key props: GlobalMeshMaterial, PointsPerUnitX/Y/Z (density), ReservedTop/Bottom (unbreakable zones)
SpaceMapGPU (Scripts/SpaceMapGPU.cs)
GPU-computed 2D top-down distance field of the room layout. Outputs to RenderTexture.
Key props: TextureDimension, MapGradient; Methods: GetSpaceMap() → RenderTexture, GetColorAtPosition(Vector3) → Color
Sets shader global _SpaceMapProjectionViewMatrix for UV calculation.
RoomGuardian (Scripts/RoomGuardian.cs)
Fades a boundary material as the user approaches room walls. Sets _GuardianFade float on the material.
Key props: GuardianMaterial, GuardianDistance (meters, default 1.0)
SceneNavigation (Scripts/SceneNavigation.cs)
Generates Unity NavMesh from scene geometry. Requires com.unity.ai.navigation.
Key props: NavigableSurfaces (SceneLabels), Agents (List<NavMeshAgent>), AgentRadius
Events: OnNavMeshInitialized
For more info see references/scene-navigation.md.
EnvironmentRaycastManager (Scripts/EnvironmentRaycastManager.cs)
Depth API raycasting against the physical environment without requiring pre-scanned scene data. Requires Quest 3+. Namespace: Meta.XR.
Check EnvironmentRaycastManager.IsSupported before use.
Methods: Raycast(Ray, out EnvironmentRaycastHit, float), PlaceBox(Ray, Vector3, Vector3, out EnvironmentRaycastHit), CheckBox(Vector3, Vector3, Quaternion)
PassthroughCameraAccess (Scripts/PassthroughCameraAccess.cs)
Raw passthrough camera image access. Requires horizonos.permission.HEADSET_CAMERA in AndroidManifest. Quest 3+ only. Namespace: Meta.XR.
Key props: CameraPosition (Left/Right), RequestedResolution, MaxFramerate, TargetMaterial
Methods: GetTexture() → Texture, GetColors() → NativeArray<Color32> (expensive), GetCameraPose() → Pose, ViewportPointToRay(), WorldToViewportPoint()
Struct CameraIntrinsics: FocalLength, PrincipalPoint, SensorResolution, LensOffset
Instant Content Placement (Scripts/BuildingBlocks/InstantContentPlacement/)
Building block scripts using EnvironmentRaycastManager for device-scan-free placement:
SpaceLocator(abstract):TryLocateSpace(out Pose),OnSpaceLocateCompletedevent,PreferredSurfaceOrientationPointAndLocate: raycast from a Transform,Locate()methodGrabAndLocate: grab-and-release placement via Interaction SDKPlaceWithAnchor: createsOVRSpatialAnchorat placed position to prevent drift
Common Patterns
Scene Loaded Callback
void Start()
{
MRUK.Instance.RegisterSceneLoadedCallback(OnSceneLoaded);
}
void OnSceneLoaded()
{
var room = MRUK.Instance.GetCurrentRoom();
// Scene is ready — query anchors, spawn objects, etc.
}RegisterSceneLoadedCallback fires immediately if the scene is already loaded — safe to call at any time.
Iterating Anchors with LabelFilter
var room = MRUK.Instance.GetCurrentRoom();
foreach (var anchor in room.Anchors)
{
if (anchor.HasAnyLabel(MRUKAnchor.SceneLabels.TABLE | MRUKAnchor.SceneLabels.STORAGE))
{
Debug.Log($"{anchor.Label} at {anchor.GetAnchorCenter()}");
}
}Raycasting Against Room Geometry
var room = MRUK.Instance.GetCurrentRoom();
var ray = new Ray(origin, direction);
if (room.Raycast(ray, Mathf.Infinity, out var hit, out var anchor))
{
Debug.Log($"Hit {anchor.Label} at {hit.point}, normal {hit.normal}");
}Editor Testing with Prefab Fallback
Set MRUK.SceneSettings.DataSource to DeviceWithPrefabFallback and assign room prefabs in SceneSettings.RoomPrefabs. On device, real scene data is used. In editor (no device), prefab rooms load automatically. The package includes ~50 sample room prefabs under Core/Rooms/Prefabs/ (Bedroom, LivingRoom, Office, LargeScale).
Project Setup
- Install
com.meta.xr.mrutilitykitpackage - In OVRManager > Quest Features, set Scene Support to "Required"
- In OVRManager > Quest Features, enable Anchor Support
- Ensure
OVRCameraRigis in the scene - Add an
MRUKGameObject with theMRUKcomponent to the scene - Configure
SceneSettings.DataSource(useDeviceWithPrefabFallbackfor development) - For PassthroughCameraAccess: add
horizonos.permission.HEADSET_CAMERAto AndroidManifest and regenerate viaOVRManifestPreprocessor.GenerateOrUpdateAndroidManifest(true)—silentMode: trueis required, or the generator opens a modal dialog that blocks the request. Seehz-unity-meta-core-sdkfor the full manifest workflow.
Running MRUK code — drive a live Editor with unity-cli
MRUK setup is Editor-only C#. Run it against an open Editor rather than hand-editing scene or settings files:
unity status --format json # look for state "ready"
unity command run_script --file AgentScripts/SetupMRUK.cs --entry SetupMRUK.Run --format jsonKeep the .cs outside Assets/ (path relative to the project root) so writing it triggers no
import or domain reload, and add --dry_run true to compile-check before mutating anything.
run_script references every loaded assembly, so the Meta.XR.MRUtilityKit namespace is directly
referenceable — no reflection:
// AgentScripts/SetupMRUK.cs
using Meta.XR.MRUtilityKit;
public static class SetupMRUK
{
public static string Run()
{
var room = MRUK.Instance.GetCurrentRoom();
return room == null ? "no current room" : $"room: {room.name}";
}
}using System.Reflection;andBindingFlagsoverloads both work here, so reflection is only for genuinely non-public members.- Anything async completes after the script returns — verify in a separate follow-up
run_script, neverTask.Wait()on the main thread. - Finish scene changes with
EditorSceneManager.MarkSceneDirty+SaveScene, orunity command save_scene, then read the value back.
MRUK is a runtime system, so most of it only produces data in Play mode. Drive that from the CLI:
unity command clear_console --format json
unity command editor_play --format json # blocks until play mode is live
unity command get_console_logs --severity error --format json
unity command editor_stop --format jsonGive the scene time before stopping. editor_play returns once play mode is live, not once MRUK
has finished — LoadSceneFromDevice / LoadSceneFromPrefab return a Task, and EffectMesh,
SceneNavigation and friends only run off SceneLoadedEvent. Stopping straight away truncates all
of it. Poll get_console_logs (or a run_script reading MRUK.Instance.IsInitialized) until the
scene has loaded, and only then read errors and stop.
Connecting, --project-path, and Safe Mode recovery are in the unity-cli skill. The
reflection-based MCP version is in references/unity-mcp-fallback.md.
Using metavr Tools for Latest Docs
If the metavr MCP server is available, use the mcp__metavr__vr_docs_search and mcp__metavr__vr_docs_get_page tools to verify current API details, as Meta SDK documentation updates frequently. Use mcp__metavr__vr_api_search with engine='unity' to look up exact method signatures for MRUK, MRUKRoom, MRUKAnchor, and other classes. The same backend is reachable from the CLI: metavr docs search "<topic>" and metavr docs api-search "<Class.method>".
Documentation Links
- MR Utility Kit Overview
- MRUK API Reference
- GitHub Samples (12 sample scenes, moved from package since v76)
- Scene API Overview
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

