OpenShell.Net
OpenShell.Net is a .NET (C#) client for the NVIDIA OpenShell gateway. It exposes a curated, async API over the gateway's gRPC contract: sandboxes, exec, file transfer, port forwarding, providers, policy, workspaces, and more. It targets net8.0 and net10.0 (apps on .NET 11 use the net10.0 build) and is trimming and AOT compatible.
Note
This is a community project. It is not affiliated with, endorsed by, or supported by NVIDIA. Report problems in the repository's issues, not upstream.
using var client = GatewayClient.Connect(); // the gateway the OpenShell CLI made active
var result = await client.Exec.RunAsync("my-sandbox", ["uname", "-a"]);
Console.WriteLine(result.StdoutText);
Where to start
- Getting started: install the packages, connect to a gateway, and run a command in a new sandbox.
- Guides: task-oriented pages with code for every area of the SDK.
- API reference: every public type of the three packages, generated from the XML documentation.
Packages
| Package | Contents |
|---|---|
OpenShell.Net |
The client: every user-facing RPC, authentication, OIDC, gateway discovery, edge tunnel, retries, telemetry. |
OpenShell.Net.DependencyInjection |
AddOpenShell, the AddOpenShellClient builder, and an ASP.NET Core health check. |
OpenShell.Net.Testing |
FakeOpenShellClient, an in-memory gateway for unit tests. |
The public API lives in the OpenShell namespace (with OpenShell.Gateway, OpenShell.Oidc, OpenShell.Edge, OpenShell.Testing, and OpenShell.DependencyInjection for the specialized parts); the assemblies are named OpenShell.Sdk*.
Which gateway version
The package version is the NVIDIA OpenShell release the SDK is built from, so OpenShell.Net 0.1.7.x pairs with an OpenShell 0.1.7 gateway. See Versioning. PARITY.md tracks which gateway features the SDK covers and how each was tested.