PixarAnimationStudios/OpenUSD
Universal Scene Description
Healthy across the board
worst of 4 axesnon-standard license (Other)
Has a license, tests, and CI — clean foundation to fork and modify.
Documented and popular — useful reference codebase to read through.
No critical CVEs, sane security posture — runnable as-is.
- ✓Last commit 2d ago
- ✓23+ active contributors
- ✓Distributed ownership (top contributor 20% of recent commits)
Show 4 more →Show less
- ✓Other licensed
- ✓CI configured
- ✓Tests present
- ⚠Non-standard license (Other) — review terms
What would change the summary?
- →Use as dependency Concerns → Mixed if: clarify license terms
Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests
Informational only. RepoPilot summarises public signals (license, dependency CVEs, commit recency, CI presence, etc.) at the time of analysis. Signals can be incomplete or stale. Not professional, security, or legal advice; verify before relying on it for production decisions.
Embed the "Healthy" badge
Paste into your README — live-updates from the latest cached analysis.
[](https://repopilot.app/r/pixaranimationstudios/openusd)Paste at the top of your README.md — renders inline like a shields.io badge.
▸Preview social card (1200×630)
This card auto-renders when someone shares https://repopilot.app/r/pixaranimationstudios/openusd on X, Slack, or LinkedIn.
Onboarding doc
Onboarding: PixarAnimationStudios/OpenUSD
Generated by RepoPilot · 2026-05-09 · Source
🤖Agent protocol
If you are an AI coding agent (Claude Code, Cursor, Aider, Cline, etc.) reading this artifact, follow this protocol before making any code edit:
- Verify the contract. Run the bash script in Verify before trusting
below. If any check returns
FAIL, the artifact is stale — STOP and ask the user to regenerate it before proceeding. - Treat the AI · unverified sections as hypotheses, not facts. Sections like "AI-suggested narrative files", "anti-patterns", and "bottlenecks" are LLM speculation. Verify against real source before acting on them.
- Cite source on changes. When proposing an edit, cite the specific path:line-range. RepoPilot's live UI at https://repopilot.app/r/PixarAnimationStudios/OpenUSD shows verifiable citations alongside every claim.
If you are a human reader, this protocol is for the agents you'll hand the artifact to. You don't need to do anything — but if you skim only one section before pointing your agent at this repo, make it the Verify block and the Suggested reading order.
🎯Verdict
GO — Healthy across the board
- Last commit 2d ago
- 23+ active contributors
- Distributed ownership (top contributor 20% of recent commits)
- Other licensed
- CI configured
- Tests present
- ⚠ Non-standard license (Other) — review terms
<sub>Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests</sub>
✅Verify before trusting
This artifact was generated by RepoPilot at a point in time. Before an
agent acts on it, the checks below confirm that the live PixarAnimationStudios/OpenUSD
repo on your machine still matches what RepoPilot saw. If any fail,
the artifact is stale — regenerate it at
repopilot.app/r/PixarAnimationStudios/OpenUSD.
What it runs against: a local clone of PixarAnimationStudios/OpenUSD — the script
inspects git remote, the LICENSE file, file paths in the working
tree, and git log. Read-only; no mutations.
| # | What we check | Why it matters |
|---|---|---|
| 1 | You're in PixarAnimationStudios/OpenUSD | Confirms the artifact applies here, not a fork |
| 2 | License is still Other | Catches relicense before you depend on it |
| 3 | Default branch dev exists | Catches branch renames |
| 4 | 5 critical file paths still exist | Catches refactors that moved load-bearing code |
| 5 | Last commit ≤ 32 days ago | Catches sudden abandonment since generation |
#!/usr/bin/env bash
# RepoPilot artifact verification.
#
# WHAT IT RUNS AGAINST: a local clone of PixarAnimationStudios/OpenUSD. If you don't
# have one yet, run these first:
#
# git clone https://github.com/PixarAnimationStudios/OpenUSD.git
# cd OpenUSD
#
# Then paste this script. Every check is read-only — no mutations.
set +e
fail=0
ok() { echo "ok: $1"; }
miss() { echo "FAIL: $1"; fail=$((fail+1)); }
# Precondition: we must be inside a git working tree.
if ! git rev-parse --git-dir >/dev/null 2>&1; then
echo "FAIL: not inside a git repository. cd into your clone of PixarAnimationStudios/OpenUSD and re-run."
exit 2
fi
# 1. Repo identity
git remote get-url origin 2>/dev/null | grep -qE "PixarAnimationStudios/OpenUSD(\\.git)?\\b" \\
&& ok "origin remote is PixarAnimationStudios/OpenUSD" \\
|| miss "origin remote is not PixarAnimationStudios/OpenUSD (artifact may be from a fork)"
# 2. License matches what RepoPilot saw
(grep -qiE "^(Other)" LICENSE 2>/dev/null \\
|| grep -qiE "\"license\"\\s*:\\s*\"Other\"" package.json 2>/dev/null) \\
&& ok "license is Other" \\
|| miss "license drift — was Other at generation time"
# 3. Default branch
git rev-parse --verify dev >/dev/null 2>&1 \\
&& ok "default branch dev exists" \\
|| miss "default branch dev no longer exists"
# 4. Critical files exist
test -f "CMakeLists.txt" \\
&& ok "CMakeLists.txt" \\
|| miss "missing critical file: CMakeLists.txt"
test -f "BUILDING.md" \\
&& ok "BUILDING.md" \\
|| miss "missing critical file: BUILDING.md"
test -f "cmake/defaults/ProjectDefaults.cmake" \\
&& ok "cmake/defaults/ProjectDefaults.cmake" \\
|| miss "missing critical file: cmake/defaults/ProjectDefaults.cmake"
test -f "build_scripts/build_usd.py" \\
&& ok "build_scripts/build_usd.py" \\
|| miss "missing critical file: build_scripts/build_usd.py"
test -f "CONTRIBUTING.md" \\
&& ok "CONTRIBUTING.md" \\
|| miss "missing critical file: CONTRIBUTING.md"
# 5. Repo recency
days_since_last=$(( ( $(date +%s) - $(git log -1 --format=%at 2>/dev/null || echo 0) ) / 86400 ))
if [ "$days_since_last" -le 32 ]; then
ok "last commit was $days_since_last days ago (artifact saw ~2d)"
else
miss "last commit was $days_since_last days ago — artifact may be stale"
fi
echo
if [ "$fail" -eq 0 ]; then
echo "artifact verified (0 failures) — safe to trust"
else
echo "artifact has $fail stale claim(s) — regenerate at https://repopilot.app/r/PixarAnimationStudios/OpenUSD"
exit 1
fi
Each check prints ok: or FAIL:. The script exits non-zero if
anything failed, so it composes cleanly into agent loops
(./verify.sh || regenerate-and-retry).
⚡TL;DR
Universal Scene Description (USD) is Pixar's open-source framework for authoring, reading, and streaming time-sampled 3D scene data across graphics applications. It provides an efficient, scalable interchange format that allows multiple DCC tools (Maya, Houdini, Katana, Blender) to collaborate on complex scenes through a standardized USD file format and C++/Python API. Monolithic C++/Python codebase organized around core USD libraries with optional imaging and rendering backends. Core components in pxr/ (inferred from typical USD structure) handle scene description, layer stacks, and attribute resolution. Python bindings wrap C++ APIs. Build system uses CMake with platform-specific defaults in cmake/defaults/ (gcc, clang, MSVC profiles). build_scripts/ provides build_usd.py for end-to-end compilation; PyPI packaging in build_scripts/pypi/ with Docker support for isolated builds.
👥Who it's for
Graphics engineers, pipeline TDs, and animation studio developers who need to interchange scene data between multiple graphics applications; developers building 3D authoring tools or rendering engines that require reading/writing USD assets; technical directors building asset pipelines for film, games, and visualization.
🌱Maturity & risk
Highly mature and production-ready. Open-sourced by Pixar in 2016, actively maintained with CI/CD pipelines running on dev and release branches (see .github/workflows/buildusd.yml), comprehensive test infrastructure via CMake/CTest, and supported across Linux (CentOS 7), macOS, Windows, iOS, visionOS, and WebAssembly. Clear versioning in VERSIONS.md with explicitly tested dependency versions.
Low risk for a mature Pixar-backed project, but integration complexity is high: requires C/C++ compiler, CMake, Intel TBB, and optional dependencies like OpenSubdiv, OpenEXR, OpenImageIO, OCIO, OSL, and Ptex (see README dependencies section). Performance-critical code is C++ while Python bindings add surface area; breaking changes are documented in CHANGELOG.md. Monolithic codebase (41M+ lines of C++) means local builds require significant time/resources.
Active areas of work
Project maintains active dev and release branches with GitHub Actions CI (see workflows in .github/workflows/). Tests are curated via tests_to_ignore.txt for platform/dependency-specific skipping. PyPI wheel distribution is automated. Recent work likely focuses on WebAssembly support (mentioned in README) and visionOS/iOS embedding. Exact recent commits not visible in file list, but presence of CHANGELOG.md and VERSIONS.md indicates disciplined release management.
🚀Get running
Check README for instructions.
Daily commands:
No traditional 'dev server'. Build USD libraries and link them into your application, or use Python API: python -c 'from pxr import Usd, UsdGeom; stage = Usd.Stage.CreateInMemory(); ...'. The project provides usdview (a PyQt/PySide6 viewer) as a reference application. For development: build via python build_scripts/build_usd.py, then run tests with CTest (see cmake/defaults/CTestCustom.cmake).
🗺️Map of the codebase
CMakeLists.txt— Root build configuration that orchestrates the entire USD build system and defines core dependencies.BUILDING.md— Essential guide for contributors on how to build USD from source and configure advanced options.cmake/defaults/ProjectDefaults.cmake— Defines default compiler flags, platform-specific settings, and fundamental build parameters used across all modules.build_scripts/build_usd.py— Main build automation script that handles dependency installation, compilation, and integration for all supported platforms.CONTRIBUTING.md— Code contribution guidelines and development workflow that all contributors must follow.cmake/modules/FindAlembic.cmake— Example of critical plugin discovery pattern used throughout the codebase for optional dependency management.docs/doxygen/developer-guidelines/coding_guidelines.dox— Establishes coding standards and architectural patterns that all core contributors must adhere to.
🛠️How to make changes
Add Support for a New External Dependency
- Create a new Find module in cmake/modules following the naming pattern FindXxx.cmake (
cmake/modules/FindAlembic.cmake) - Add the dependency to the Packages.cmake configuration to make it discoverable (
cmake/defaults/Packages.cmake) - Update build_usd.py to handle downloading and building the dependency across platforms (
build_scripts/build_usd.py) - Add platform-specific handling in apple_utils.py if needed for macOS/iOS (
build_scripts/apple_utils.py) - Document the new dependency in BUILDING.md with configuration options (
BUILDING.md) - Update the CI workflow to test the new dependency configuration (
.github/workflows/buildusd.yml)
Add a New Plugin or Module
- Follow the CMake macro conventions defined in cmake/macros/Public.cmake for module structure (
cmake/macros/Public.cmake) - Ensure your module creates proper dependency declarations using genModuleDepsCpp.cmake (
cmake/macros/genModuleDepsCpp.cmake) - Update plugin metadata in build_scripts/pypi/updatePluginfos.py if adding a Python plugin (
build_scripts/pypi/updatePluginfos.py) - Add tests and reference them in CTestCustom.cmake configuration (
cmake/defaults/CTestCustom.cmake) - Document the plugin in docs/doxygen/architecture-guides with an example architecture guide (
docs/doxygen/architecture-guides/color_programmers_guide.md)
Configure Build for a New Platform
- Add platform-specific defaults in cmake/defaults following the naming pattern (e.g., clangdefaults.cmake, msvcdefaults.cmake) (
cmake/defaults/clangdefaults.cmake) - Update Options.cmake to expose any platform-specific build toggles (
cmake/defaults/Options.cmake) - Extend build_usd.py with platform detection and dependency installation logic (
build_scripts/build_usd.py) - Add platform-specific utilities in apple_utils.py pattern or create new platform file (
build_scripts/apple_utils.py) - Update buildusd.yml GitHub Actions workflow to test the new platform (
.github/workflows/buildusd.yml) - Document platform-specific build requirements in BUILDING.md (
BUILDING.md)
Release a New Version
- Update version information in cmake/defaults/Version.cmake (
cmake/defaults/Version.cmake) - Update VERSIONS.md with new version details and compatibility information (
VERSIONS.md) - Document changes in CHANGELOG.md with breaking changes clearly marked (
CHANGELOG.md) - Update PyPI configuration in build_scripts/pypi/setup.py with new version (
build_scripts/pypi/setup.py) - Trigger pypi.yml workflow to build and publish the release (
.github/workflows/pypi.yml)
🔧Why these technologies
- CMake 3.x — Cross-platform build configuration that abstracts compiler and platform differences (gcc, clang, MSVC) while supporting complex dependency graphs and optional plugins.
- Python build_usd.py automation — High-level orchestration of multi-step builds across Windows/macOS/Linux, handling dependency download, patching, compilation, and packaging without requiring platform-specific shell scripts.
- Doxygen documentation generation — Automated API documentation from source code comments, enabling architecture guides and developer guidelines to stay synchronized with implementation.
- GitHub Actions workflows — Serverless CI/CD for matrix-based testing across multiple OS/compiler combinations and automated PyPI publishing.
- Docker containerization (PyPI packaging) — Reproducible, isolated build environments for Python wheel generation that eliminate 'works on my machine' problems.
⚖️Trade-offs already made
-
CMake over custom build tools (Make, Bazel, Meson)
- Why: CMake has the widest adoption in VFX/animation studios and strongest support for complex platform-specific configurations (compiler switches, GPU targets).
- Consequence: Higher learning curve for new contributors; requires understanding of generator-based approach; dependency module discovery can be verbose.
-
Monolithic repo with 600+ files rather than multi-repo architecture
- Why: USD is a cohesive system where core libraries (Tf, Sdf, Usd, Hydra) have deep interdependencies requiring synchronized builds.
- Consequence: Slower CI times; harder to isolate breaking changes; but ensures binary compatibility and simpler integration for consumers.
-
Optional dependency model (plugins discoverable at build time)
- Why: Enables lean core USD installs while allowing advanced features (OpenSubdiv, Renderman, OpenVDB) to be optionally compiled.
- Consequence: Increased CMake complexity; integration tests may not run on
🪤Traps & gotchas
Intel TBB requirement: Must be installed and discoverable by CMake; use --tbb-location=/path/to/tbb in build_usd.py if auto-detection fails. Python version mismatch: USD Python bindings are tied to a specific Python version at build time; rebuilding required to switch Python versions. Platform-specific paths: Build scripts use build_root and src_root parameters that must be absolute or relative to the script's location. Optional dependencies silently disable features: If OpenEXR is missing, imaging code compiles but lacks EXR I/O without loud warnings. CMake generator selection: MSVC builds require explicit generator selection (e.g., -G 'Visual Studio 16 2019'). Long build times: Full build with all optional components can exceed 1 hour on CI; incremental builds are much faster. Plugin discovery at runtime: Python/C++ plugins must be discoverable via PXR_PLUGINPATH_NAME environment variable or embedded search paths; missing plugins silently fail to load.
🏗️Architecture
💡Concepts to learn
- Layer-based scene composition — USD's core power comes from non-destructive layering (variant selection, composition arcs); understanding strong/weak references and sublayers is essential to author and read complex scenes.
- Attribute resolution and fallback stacks — USD resolves attribute values through a precedence chain (strongest layer wins); misunderstanding resolution order causes bugs in properties appearing/disappearing across layers.
- Time-sampling and value clips — USD bakes animation timelines into the scene graph itself via time-sampled attributes and value clips; critical for streaming large animation sequences without reloading files.
- Prim and property delegation through composition — USD's composition engine (references, inherits, variants, payloads) allows late-binding of geometry and properties; power comes from understanding which composition arcs are strong vs. weak.
- Plugin architecture for file format handlers — USD's I/O extensibility relies on discoverable plugins (see
cmake/modules/andbuild_scripts/); adding custom file format support requires understanding the plugin registration and symbol export dance. - Lazy evaluation and streaming — USD doesn't load entire scenes into memory; layers are streamed and attributes evaluated on-demand; performance tuning requires understanding which operations trigger materialization.
- Schema extensibility via code generation — USD schemas (like UsdGeom.Mesh) are auto-generated from schema definitions; adding custom attributes/relationships requires touching the schema system, not raw C++ code.
🔗Related repos
PixarAnimationStudios/OpenSubdiv— Required optional dependency for USD imaging; Pixar's subdivision surface implementation used heavily in USD scene rendering.AcademySoftwareFoundation/OpenEXR— Optional dependency for image I/O in USD imaging pipeline; industry-standard HDR image format used in VFX and animation.wdas/USD-Across-Ecosystems— Community-maintained collection of USD plugins and tools extending USD to Maya, Houdini, Blender, and other DCCs.PixarAnimationStudios/RenderMan— Pixar's renderer with deep USD integration; primary consumer of USD scene data in production pipelines.
🪄PR ideas
To work on one of these in Claude Code or Cursor, paste:
Implement the "<title>" PR idea from CLAUDE.md, working through the checklist as the task list.
Add GitHub Actions workflow for Windows MSVC builds with artifact caching
The repo has buildusd.yml and pypi.yml workflows, but the workflows directory lacks a dedicated Windows MSVC build pipeline. Given the complexity of USD's CMake build system (evidenced by cmake/defaults/msvcdefaults.cmake and multiple compiler-specific configurations), a Windows-specific workflow would catch MSVC-specific build failures early, especially for contributors on Windows. This would parallelize CI and prevent platform-specific regressions.
- [ ] Review .github/workflows/buildusd.yml to understand current build matrix strategy
- [ ] Examine cmake/defaults/msvcdefaults.cmake and cmake/defaults/CXXDefaults.cmake for Windows-specific flags
- [ ] Create .github/workflows/build_windows_msvc.yml with artifact caching for dependencies (Boost, TBB, etc.)
- [ ] Test against Python 3.9+ and multiple Visual Studio versions (2019, 2022)
Add integration tests for cmake/modules FindXXX.cmake module discovery and version validation
The repo has 8+ FindXXX.cmake modules (FindAlembic, FindDraco, FindEmbree, FindOpenVDB, FindRenderman, etc.) in cmake/modules/, but no visible test coverage for dependency discovery. Missing or incompatible dependency versions silently fail during builds. A test suite could validate that each FindXXX.cmake correctly detects installed packages, reports version mismatches, and provides helpful error messages.
- [ ] Create cmake/test directory for CMake testing infrastructure (if not present)
- [ ] Add enable_testing() and ctest integration to CMakeLists.txt for cmake tests
- [ ] Write test_find_modules.cmake that validates each FindXXX.cmake against mock/real dependencies
- [ ] Document in BUILDING.md how to run:
ctest -R FindModules
Add schema/API documentation for build_scripts/build_usd.py with runnable examples
build_usd.py is a complex 1000+ line build orchestration script with many undocumented flags and behaviors. While docs/ exists, there's no dedicated documentation for the build script's capabilities (parallel builds, dependency overrides, variant options). New contributors struggle to customize builds. Adding a build_scripts/BUILD_SCRIPT_GUIDE.md with concrete examples and a Python docstring linter would reduce support burden.
- [ ] Add comprehensive module-level and function-level docstrings to build_scripts/build_usd.py using Google-style format
- [ ] Create build_scripts/USAGE_EXAMPLES.md with 5-10 real-world examples (e.g., 'Build with custom Python', 'Enable all optional plugins', 'Cross-compile for Linux ARM')
- [ ] Add argument validation and improved error messages for common misconfiguration patterns
- [ ] Reference new guide from BUILDING.md under 'Advanced Build Customization' section
🌿Good first issues
- Add missing documentation to
BUILDING.mdfor WebAssembly build workflow (README mentions it but BUILDING.md likely lacks Emscripten setup steps); requires adding a section with concrete build commands and expected output. - Write integration tests in
pxr/*/tests/that validate round-trip USD file I/O (read → modify → write → read) across file format handlers, catching silent corruption in plugin chains. - Expand
cmake/modules/Find*.cmakewith fallback logic for newer dependency versions (e.g., OpenEXR 3.x API changes); many users build with system packages that don't match VERSIONS.md exactly.
⭐Top contributors
Click to expand
Top contributors
- @adamrwoodbury — 20 commits
- @unhyperbolic — 13 commits
- @blevin — 8 commits
- @tallytalwar — 8 commits
- @samwarring — 7 commits
📝Recent commits
Click to expand
Recent commits
6a11468— cmake: Do not pin exact Python patch version in pxrConfig.cmake (traversaro)1924d61— usd: Report time samples field change in ObjectsChanged notice (sunyab)b34b9bb— usdExecImaging: Get computed values from UsdExecImaging_Request. (samwarring)151b43d— vt: Allow types outside Vt to register for VtVisitValue & (gitamohr)3fa82b5— tf: Fix a heap-use-after-free issue due to a bug in (gitamohr)978f19f— Add optional parameter loopBoundaryTime on looping extrapolation, disjoint to inner looping params. Coding error is issu (anwang2009)3a0aae2— usdExecImaging: Add UsdExecImaging_Request that maintains an exec request, (samwarring)5c009ca— UsdGeomPointInstancer prototype cycle detection. (blevin)b98332c— [usdSkelImaging] Avoid a crash when numJoints == 0, as with: (blevin)bc0d382— Fix extrapolation sampling in TsSpline::Sample. Fix the test too. (o2b3d)
🔒Security observations
OpenUSD demonstrates a reasonable security posture with established vulnerability disclosure procedures (SECURITY.md) and organized codebase structure. Primary concerns involve potential deserialization vulnerabilities in USD file processing, dynamic plugin loading without evident validation, and Docker configuration hardening. The project would benefit from more explicit security hardening documentation, input validation frameworks, and plugin security verification mechanisms. The complexity of the build system and file parsing functionality presents moderate security risks that require careful attention during development and deployment. No obvious hardcoded secrets or critical infrastructure misconfigurations detected in the provided file structure.
- Medium · Potential Insecure Deserialization in USD File Parsing —
Core USD parsing libraries (not fully visible in provided structure). USD files are complex scene description formats that may involve deserialization of untrusted data. The codebase appears to handle file I/O and parsing without visible input validation mechanisms in the provided file structure, which could lead to arbitrary code execution if malicious USD files are processed. Fix: Implement strict input validation and sandboxing for USD file parsing. Use allowlists for supported features and validate all deserialized data before use. Consider implementing format validation before processing. - Medium · Build Script Security - Dynamic Plugin Loading —
build_scripts/pypi/updatePluginfos.py, cmake/macros/. The file 'build_scripts/pypi/updatePluginfos.py' and CMake macros suggest dynamic plugin discovery and loading mechanisms. Without proper validation, this could allow loading of malicious plugins if the plugin directory is writable or accessible to untrusted users. Fix: Implement plugin signature verification, restrict plugin directory permissions to trusted users only, and validate plugin metadata before loading. Use cryptographic signing for approved plugins. - Medium · Docker Build Configuration - Base Image Pinning —
build_scripts/pypi/docker/Dockerfile. The Dockerfile in build_scripts/pypi/docker/ may not pin specific versions of base images, which could lead to unexpected behavior changes and potential security issues from upstream vulnerabilities in base images. Fix: Use specific pinned versions for all base images (e.g., 'ubuntu:20.04' instead of 'ubuntu:latest'). Regularly scan and update base images while maintaining reproducibility. - Low · Missing Security Headers Documentation —
SECURITY.md, documentation/. While SECURITY.md exists with responsible disclosure guidance, there is no documented security hardening guide for deployment configurations or security best practices for users integrating USD into their applications. Fix: Expand SECURITY.md to include security best practices for: file handling, memory safety considerations, and recommended configurations for production deployments. Add security guidelines for plugin developers. - Low · Build System Complexity - CMake Macro Audit —
cmake/macros/compilePython.py, cmake/macros/testWrapper.py, cmake/macros/shebang.py. Complex CMake build system with multiple macros (compilePython.py, testWrapper.py, shebang.py) that execute code during build time. These could be attack vectors if the build environment is compromised or if dependencies are tampered with. Fix: Audit all build-time code execution for security. Implement build artifact verification, use signed dependencies, and isolate build environments. Consider using reproducible builds to detect tampering. - Low · Third-party Plugin Risk —
SECURITY.md, plugin architecture. The SECURITY.md mentions reporting security bugs in third-party plugins/applications separately, but there's no visible mechanism to track or validate third-party plugins for known vulnerabilities. Fix: Maintain a registry of known vulnerable plugins. Implement plugin capability restrictions and provide security guidelines for third-party plugin developers. Consider a plugin security scanning service.
LLM-derived; treat as a starting point, not a security audit.
👉Where to read next
- Open issues — current backlog
- Recent PRs — what's actively shipping
- Source on GitHub
Generated by RepoPilot. Verdict based on maintenance signals — see the live page for receipts. Re-run on a new commit to refresh.