TimHeuer.OpenAIPluginMiddleware 1.0.27

.NET 7.0
dotnet add package TimHeuer.OpenAIPluginMiddleware --version 1.0.27
NuGet\Install-Package TimHeuer.OpenAIPluginMiddleware -Version 1.0.27
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="TimHeuer.OpenAIPluginMiddleware" Version="1.0.27" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add TimHeuer.OpenAIPluginMiddleware --version 1.0.27
#r "nuget: TimHeuer.OpenAIPluginMiddleware, 1.0.27"
#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.
// Install TimHeuer.OpenAIPluginMiddleware as a Cake Addin
#addin nuget:?package=TimHeuer.OpenAIPluginMiddleware&version=1.0.27

// Install TimHeuer.OpenAIPluginMiddleware as a Cake Tool
#tool nuget:?package=TimHeuer.OpenAIPluginMiddleware&version=1.0.27

TimHeuer.OpenAIPluginMiddleware GitHub Workflow Status (with branch)

OpenAI Plugin manifest middleware for ASP.NET Core

This is a middleware for ASP.NET Core that will add a manifest file to the response for OpenAI Plugins in the default location of /.well-known/ai-plugin.json.

For more information on OpenAI Plugins see the OpenAI Plugin documentation.


This is a NuGet package so if you are using Visual Studio just use the Package Manager and search for 'TimHeuer.OpenAIPluginMiddleware' (enable checking for pre-release) and install.

Additionally you can install the package using the .NET CLI if you are using other tools:

$ dotnet add package TimHeuer.OpenAIPluginMiddleware --version 1.0.10-pre

Usage (pattern using ASP.NET minimal hosting/APIs)

Add the middleware to your Program.cs file (below is just an example, substitute your options):

builder.Services.AddAiPluginGen(options =>
    options.NameForHuman = "Weather Forecast";
    options.NameForModel = "weatherforecast";
    options.LegalInfoUrl = "https://example.com/legal";
    options.ContactEmail = "noreply@example.com";
    options.LogoUrl = "https://example.com/logo.png";
    options.DescriptionForHuman = "Search for weather forecasts";
    options.DescriptionForModel = "Plugin for searching the weather forecast. Use It whenever a users asks about weather or forecasts";
    options.ApiDefinition = new Api() { RelativeUrl = "/swagger/v1/swagger.yaml" };

And then after the builder is built, add the middleware:



The options are mostly required to conform the plugin schema specification. Some defaults are provided:

  • Api/Type: "openapi"
  • Api/IsUserAuthetnication: "false"
  • Api/RelativeUrl: "/openapi.yaml"
  • SchemaVersion: "v1"
  • Auth/Type: "none"

As with most of my projects this started as a learning, experiment, and selfish need. It may not fit your needs at all. That's okay, I'm not offended. You are free to ignore it and move along. Or you are also free to provide some helpful feedback to make it better for yourself or others.

Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed. 
Compatible target framework(s)
Additional computed target framework(s)
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
1.0.27 103 6/16/2023
1.0.26 118 6/15/2023
1.0.19 76 5/29/2023
1.0.17-pre 77 5/29/2023
1.0.16-pre 75 5/29/2023
1.0.15-pre 75 5/29/2023
1.0.14-pre 69 5/29/2023
1.0.10-pre 68 5/28/2023
1.0.8-pre 76 5/28/2023
1.0.7-pre 63 5/28/2023
1.0.5-pre 67 5/28/2023

Added more auth schema support