ModelsDotDevSharp 0.2.0

dotnet add package ModelsDotDevSharp --version 0.2.0
                    
NuGet\Install-Package ModelsDotDevSharp -Version 0.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ModelsDotDevSharp" Version="0.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ModelsDotDevSharp" Version="0.2.0" />
                    
Directory.Packages.props
<PackageReference Include="ModelsDotDevSharp" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ModelsDotDevSharp --version 0.2.0
                    
#r "nuget: ModelsDotDevSharp, 0.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ModelsDotDevSharp@0.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ModelsDotDevSharp&version=0.2.0
                    
Install as a Cake Addin
#tool nuget:?package=ModelsDotDevSharp&version=0.2.0
                    
Install as a Cake Tool

ModelsDotDevSharp

NuGet Version License: MIT

A .NET wrapper around the public models.dev API, providing strongly-typed access to AI provider and model metadata.

Install

dotnet add package ModelsDotDevSharp

Usage

Register the services, build an IServiceProvider, resolve IModelInfoRepository, and fetch data:

using Microsoft.Extensions.DependencyInjection;
using ModelsDotDevSharp;
using ModelsDotDevSharp.Abstractions;

var services = new ServiceCollection();
services.AddModelsDotDevSharp();

using var provider = services.BuildServiceProvider();
var repository = provider.GetRequiredService<IModelInfoRepository>();

// All providers (Ids populated from the API's root map)
AIProviderInfo[] providers = await repository.GetProviderInfosAsync();

// A single model by provider and model id
AIModelInfo model = await repository.GetModelInfoByIdAsync("anthropic", "claude-3-5-sonnet");
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.2.0 106 9/15/2026
0.1.0 129 8/27/2026

## Changes since 0.1.0

### Changed

- Converted `CatalogRepository.ProcessAllCosts` from recursion to an iterative stack-based pre-order DFS, eliminating `StackOverflowException` risk on deeply nested `ContextOverrides` cost trees with no public API changes.
- Moved `ModelsDevServiceCollectionExtensions` to the `ModelsDotDevSharp.Extensions` namespace and expanded NuGet packaging metadata (symbols/snupkg, embedded sources, package tags, release notes, corrected repository URL).
- Corrected package versioning metadata (`Version` to `PackageVersion`) and README packaging configuration.
- Hardened HTTP repositories against SSRF, silent failures, and null responses: validated `ModelsDevOptions.BaseAddress` as an absolute http/https URI, added `EnsureSuccessStatusCode` checks and response disposal, null-guarded catalog enumeration, registered `IHttpClientFactory` via `AddHttpClient()`, and introduced internal `HttpClientHelper` (now in `ModelsDotDevSharp.Internal`).
- Cleaned up internals and code style: made `CostContextOverridePostProcessor` internal, modernized JSON converters with collection expressions and explicit types, and removed a redundant null guard.
- **Runtime Dependencies:** bumped `Microsoft.Extensions.DependencyInjection.Abstractions`, `Microsoft.Extensions.Http`, and `Microsoft.Extensions.Options` from 10.0.9 to 10.0.11, then to 10.0.12.
- **Testing Dependencies:** bumped `TUnit` from 1.65.51 to 1.65.68, then to 1.67.0.
- **CI Dependencies:** bumped `actions/checkout` from 4 to 7 and `actions/setup-dotnet` from 4 to 6 in `test-build.yml`.

#### Fixed

- Fixed NuGet README packaging so `README.md` is packed as `Content` with the correct `PackagePath`.
- Added least-privilege `permissions: contents: read` to the `test-build` workflow.