-
Notifications
You must be signed in to change notification settings - Fork 0
FAQ
It's a family of MSBuild SDKs. Adding #:sdk Cadenza.X@<version> to the top of a .cs file tells dotnet run to pull that SDK, which configures the build, exposes a curated set of bare-name APIs via global using static, and (in the case of Worker / Web / MCP / Agent) wires up a host. The script stays a script — no .csproj is generated.
Cadenza is not a separate hosted scripting runtime. It sits on .NET 10's native file-based apps. That means:
- No separate install —
dotnetis enough. - It evolves with the platform; no maintenance treadmill against the upstream language.
- The same IntelliSense story as a real .NET project — the Roslyn LSP just works.
See the launch landing page for the full positioning.
The MSBuild SDK reference resolver doesn't accept floating versions (1.*, @latest). Cadenza turns that into a feature: a script you receive today still runs in five years, on the exact SDK its author tested against.
A version-less UX is on the roadmap as an optional tool (Cadenza.SdkResolver) — opt in if you want it, opt out and keep reproducibility otherwise.
Yes, with the community-rebuilt C# extension. The official Microsoft build is gated to Microsoft-branded IDEs; on forks, install dotnetdev-kr-custom/csharp from Open VSX. See Editor Setup for the full walkthrough.
Debugging on forks is restricted by the vsdbg license — for stepping, point at the netcoredbg-based build.
Yes. Add #:package Name@Version lines.
#:sdk Cadenza@1.0.15
#:package Humanizer@3.0.0Yes — dotnet project convert app.cs produces a regular .csproj. Like a cadenza in a concerto: improvised at first, eventually written down. Nothing's lost in the conversion.
Microsoft.Extensions.AI's tool binding uses reflection — that's incompatible with NativeAOT today. If you need AOT for an AI workload, compose Cadenza.Web + a manual IChatClient rather than Cadenza.Agent.
You're almost certainly bound to localhost (the loopback interface). Inside a container that's unreachable from the host. Bind to 0.0.0.0:
HostUrls("http://0.0.0.0:8080"); // Cadenza.Web
HostName("0.0.0.0"); // Cadenza.AgentSee Deployment Container.
No. It uses the standard .NET Generic Host (or Web Host for Web/Agent), so logging is ILogger, config is IConfiguration, DI is IServiceProvider. The Tier 1 bare names are a thin convenience layer on top — drop down to the platform API any time.
- File issues / PRs on github.com/rkttu/cadenza
- Add samples — every new
.csinsamples/should run cleanly withdotnet run - Improve this wiki — the source lives at cadenza.wiki (or just edit on GitHub's wiki UI)
Cadenza · MIT · .NET 10+ · github.com/rkttu/cadenza · No orchestra. No project. Just one file, playing solo.