CSharpToJsonSchema 3.10.2-dev.69
CSharpToJsonSchema
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

This project is supported by JetBrains through the Open Source Support Program.
This project is supported by CodeRabbit 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.
|
1 |
.NET Framework 4.6.2
- Microsoft.Extensions.AI.Abstractions (>= 10.1.1)
- Microsoft.NET.ILLink.Tasks (>= 9.0.11)
- System.Text.Json (>= 10.0.1)
.NET 8.0
- Microsoft.Extensions.AI.Abstractions (>= 10.1.1)
- Microsoft.NET.ILLink.Tasks (>= 9.0.11)
- System.Text.Json (>= 10.0.1)
.NET 9.0
- Microsoft.Extensions.AI.Abstractions (>= 10.1.1)
- Microsoft.NET.ILLink.Tasks (>= 9.0.11)
- System.Text.Json (>= 10.0.1)
.NET Standard 2.0
- Microsoft.Extensions.AI.Abstractions (>= 10.1.1)
- Microsoft.NET.ILLink.Tasks (>= 9.0.11)
- System.Text.Json (>= 10.0.1)
| Version | Downloads | Last updated |
|---|---|---|
| 3.10.2-dev.69 | 1 | 02/11/2026 |
| 3.10.2-dev.39 | 1 | 02/11/2026 |
| 3.10.2-dev.34 | 1 | 02/11/2026 |
| 3.10.2-dev.32 | 1 | 02/11/2026 |
| 3.10.2-dev.31 | 1 | 02/11/2026 |
| 3.10.2-dev.29 | 1 | 02/11/2026 |
| 3.10.2-dev.28 | 1 | 02/11/2026 |
| 3.10.2-dev.26 | 1 | 02/11/2026 |
| 3.10.2-dev.25 | 1 | 02/11/2026 |
| 3.10.2-dev.22 | 1 | 02/11/2026 |
| 3.10.2-dev.21 | 1 | 02/11/2026 |
| 3.10.2-dev.18 | 1 | 02/11/2026 |
| 3.10.2-dev.16 | 1 | 02/11/2026 |
| 3.10.1 | 0 | 11/13/2024 |
| 3.9.2-dev.3 | 1 | 02/11/2026 |
| 3.9.2-dev.2 | 1 | 02/11/2026 |
| 3.9.1 | 0 | 10/18/2024 |
| 3.9.0 | 0 | 10/18/2024 |
| 3.8.2-dev.13 | 1 | 02/11/2026 |
| 3.8.2-dev.10 | 1 | 02/11/2026 |
| 3.8.2-dev.9 | 1 | 02/11/2026 |
| 0.0.0-dev.1 | 1 | 02/11/2026 |