CSharpToJsonSchema 3.10.2-dev.96

CSharpToJsonSchema

Nuget package dotnet License: MIT Discord

Features 🔥

  • Source generator to define functions natively through C# interfaces and individual methods
  • Doesn't use Reflection
  • All modern .NET features - nullability, trimming, NativeAOT, etc.
  • Tested for compatibility with OpenAI/Ollama/Anthropic/LangChain/Gemini

Usage

Interface

using CSharpToJsonSchema;

public enum Unit
{
    Celsius,
    Fahrenheit,
}

public class Weather
{
    public string Location { get; set; } = string.Empty;
    public double Temperature { get; set; }
    public Unit Unit { get; set; }
    public string Description { get; set; } = string.Empty;
}

[GenerateJsonSchema(Strict = true)] // false by default. You can't use parameters with default values in Strict mode.
public interface IWeatherFunctions
{
    [Description("Get the current weather in a given location")]
    public Task<Weather> GetCurrentWeatherAsync(
        [Description("The city and state, e.g. San Francisco, CA")] string location,
        Unit unit,
        CancellationToken cancellationToken = default);
}

public class WeatherService : IWeatherFunctions
{
    public Task<Weather> GetCurrentWeatherAsync(string location, Unit unit = Unit.Celsius, CancellationToken cancellationToken = default)
    {
        return Task.FromResult(new Weather
        {
            Location = location,
            Temperature = 22.0,
            Unit = unit,
            Description = "Sunny",
        });
    }
}

var tools = service.AsTools();

Methods


[FunctionTool]
public Task<Weather> GetCurrentWeatherAsync(string location, Unit unit = Unit.Celsius, CancellationToken cancellationToken = default)
{
    return Task.FromResult(new Weather
    {
        Location = location,
        Temperature = 22.0,
        Unit = unit,
        Description = "Sunny",
    });
}

var tools = new Tools([GetCurrentWeatherAsync])

//Access list of CSharpToJsonSchema.Tool
var myTools = tools.AvailableTools

//Implicit Conversion to list of CSharpToJsonSchema.Tool
List<Tool> myTools = tools

Support

Priority place for bugs: https://github.com/tryAGI/CSharpToJsonSchema/issues
Priority place for ideas and general questions: https://github.com/tryAGI/CSharpToJsonSchema/discussions
Discord: https://discord.gg/Ca2xhfBf3v

Acknowledgments

JetBrains logo

This project is supported by JetBrains through the Open Source Support Program.

Showing the top 20 packages that depend on CSharpToJsonSchema.

Packages Downloads
Anthropic
Generated C# SDK based on official Anthropic OpenAPI specification.
3

Version Downloads Last updated
3.10.2-dev.106 2 03/21/2026
3.10.2-dev.105 2 03/21/2026
3.10.2-dev.104 2 03/21/2026
3.10.2-dev.103 3 03/21/2026
3.10.2-dev.102 2 03/21/2026
3.10.2-dev.101 2 03/21/2026
3.10.2-dev.100 2 03/21/2026
3.10.2-dev.99 2 03/21/2026
3.10.2-dev.97 2 03/21/2026
3.10.2-dev.96 2 03/21/2026
3.10.2-dev.90 2 03/19/2026
3.10.2-dev.89 2 03/19/2026
3.10.2-dev.88 2 03/19/2026
3.10.2-dev.85 2 03/17/2026
3.10.2-dev.84 2 03/17/2026
3.10.2-dev.83 2 03/17/2026
3.10.2-dev.82 2 03/17/2026
3.10.2-dev.80 2 03/17/2026
3.10.2-dev.69 2 03/06/2026
3.10.2-dev.39 2 03/06/2026
3.10.2-dev.34 2 03/06/2026
3.10.2-dev.32 2 03/06/2026
3.10.2-dev.31 2 03/06/2026
3.10.2-dev.29 2 03/06/2026
3.10.2-dev.28 2 03/06/2026
3.10.2-dev.26 2 03/06/2026
3.10.2-dev.25 2 03/06/2026
3.10.2-dev.22 2 03/06/2026
3.10.2-dev.21 2 03/06/2026
3.10.2-dev.18 2 03/06/2026
3.10.2-dev.16 2 03/06/2026
3.10.1 2 03/06/2026
3.9.2-dev.3 2 03/06/2026
3.9.2-dev.2 2 03/06/2026
3.9.1 2 03/06/2026
3.9.0 2 03/06/2026
3.8.2-dev.13 2 03/06/2026
3.8.2-dev.10 2 03/06/2026
3.8.2-dev.9 2 03/06/2026
0.0.0-dev.1 2 03/06/2026