TL;DR. I wrote DotNetPy , a small C# library that calls into CPython via the C API. Version 0.6.0 ships three working samples — semantic search with sentence-transformers , speech-to-text with Whisper, and text-to-image with Stable Diffusion Turbo — and a verification matrix that runs them under classic CPython 3.13 and the new free-threaded builds (3.13t / 3.14t). The whole thing is Native AOT-compatible, and the per-call isolation that PEP 703 needs is exposed as a one-liner: Python.CreateIsolated() . Code: https://github.com/rkttu/dotnetpy . NuGet: dotnet add package DotNetPy . The problem Every few months I run into the same pattern: I need a HuggingFace model — Whisper for transcripts, a sentence-transformer for retrieval, sometimes Stable Diffusion — and I'm working in C#. The usual escape hatches all have downsides: Convert to ONNX. Works for many vision/encoder models.…