Incursa.OpenAI.ChatKit 3.0.5

dotnet add package Incursa.OpenAI.ChatKit --version 3.0.5
                    
NuGet\Install-Package Incursa.OpenAI.ChatKit -Version 3.0.5
                    
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="Incursa.OpenAI.ChatKit" Version="3.0.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Incursa.OpenAI.ChatKit" Version="3.0.5" />
                    
Directory.Packages.props
<PackageReference Include="Incursa.OpenAI.ChatKit" />
                    
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 Incursa.OpenAI.ChatKit --version 3.0.5
                    
#r "nuget: Incursa.OpenAI.ChatKit, 3.0.5"
                    
#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 Incursa.OpenAI.ChatKit@3.0.5
                    
#: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=Incursa.OpenAI.ChatKit&version=3.0.5
                    
Install as a Cake Addin
#tool nuget:?package=Incursa.OpenAI.ChatKit&version=3.0.5
                    
Install as a Cake Tool

Incursa.OpenAI.ChatKit

Incursa.OpenAI.ChatKit is the core .NET runtime for ChatKit.

It contains the protocol models, request routing, thread and item primitives, streaming event types, store abstractions, and server base classes used to implement a ChatKit-compatible backend in .NET.

Choose this package when

  • you need the ChatKit protocol and server runtime in a non-ASP.NET Core host
  • you want to own the HTTP layer yourself
  • you are building stores, server logic, or tests against the ChatKit model
  • you plan to pair it with Incursa.OpenAI.ChatKit.AspNetCore for HTTP endpoints or Razor UI hosting

If you want ASP.NET Core endpoint mapping or Razor tag helpers, install Incursa.OpenAI.ChatKit.AspNetCore as well.

What this package includes

  • ChatKit request, response, event, item, widget, and primitive models
  • ChatKitServer<TContext> for request routing and response generation
  • ChatKitProcessResult, StreamingResult, and NonStreamingResult
  • store abstractions and the in-memory implementation
  • helper types for widgets and agent integration
  • WidgetDefinition loaders and Build(...) support for exported .widget files, their encoded widget payloads, schema validation, and Jinja-backed rendering into WidgetRoot

Minimal example

using Incursa.OpenAI.ChatKit;

InMemoryChatKitStore<Dictionary<string, object?>> store = new();
DemoChatKitServer server = new(store);

byte[] requestBytes = ChatKitJson.SerializeToUtf8Bytes<ChatKitRequest>(new ThreadsGetByIdRequest
{
    Params = new ThreadGetByIdParams
    {
        ThreadId = "thr_1",
    },
});

ChatKitProcessResult result = await server.ProcessAsync(
    requestBytes,
    new Dictionary<string, object?>(),
    CancellationToken.None);

public sealed class DemoChatKitServer : ChatKitServer<Dictionary<string, object?>>
{
    public DemoChatKitServer(InMemoryChatKitStore<Dictionary<string, object?>> store)
        : base(store)
    {
    }

    public override async IAsyncEnumerable<ThreadStreamEvent> RespondAsync(
        ThreadMetadata thread,
        UserMessageItem? inputUserMessage,
        Dictionary<string, object?> context,
        [System.Runtime.CompilerServices.EnumeratorCancellation] CancellationToken cancellationToken = default)
    {
        yield return new ThreadItemDoneEvent
        {
            Item = new AssistantMessageItem
            {
                Id = "msg_1",
                ThreadId = thread.Id,
                CreatedAt = ChatKitClock.Now(),
                Content = [new AssistantMessageContent { Text = "Hello from ChatKit." }],
            },
        };

        await Task.CompletedTask;
    }
}

Pairing with ASP.NET Core

For ASP.NET Core hosts:

  1. install Incursa.OpenAI.ChatKit
  2. install Incursa.OpenAI.ChatKit.AspNetCore
  3. register your ChatKitServer<TContext>
  4. map MapChatKit<TServer, TContext>(...)

Compatibility and scope

  • Targets .NET 10
  • Translates the maintained server-side surface from openai/chatkit-python
  • Keeps the core runtime separate from ASP.NET Core-specific hosting concerns
  • Incursa.OpenAI.ChatKit.AspNetCore: ASP.NET Core endpoint mapping, Razor tag helpers, and packaged browser assets
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 (1)

Showing the top 1 NuGet packages that depend on Incursa.OpenAI.ChatKit:

Package Downloads
Incursa.OpenAI.ChatKit.AspNetCore

ASP.NET Core hosting, Razor tag helpers, and packaged UI assets for Incursa.OpenAI.ChatKit.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.5 123 3/24/2026
3.0.3 93 3/20/2026
3.0.2 96 3/20/2026
3.0.1 92 3/19/2026
3.0.0 103 3/19/2026
2.0.1 90 3/19/2026
2.0.0 92 3/19/2026
1.0.16 91 3/19/2026
1.0.15 97 3/18/2026
1.0.14 87 3/18/2026
1.0.13 89 3/18/2026