Skip to content

JerrettDavis/JD.SemanticKernel.Connectors.ClaudeCode

Repository files navigation

JD.SemanticKernel.Connectors.ClaudeCode

NuGet NuGet Downloads CI CodeQL codecov License: MIT

A Semantic Kernel connector for Anthropic models with API-key-first authentication and optional local Claude Code OAuth support.

Features

  • API-key-first authentication — supports sk-ant-api* via options or ANTHROPIC_API_KEY
  • Optional local OAuth supportsk-ant-oat* is opt-in and interactive-only
  • Multi-source credential resolution — options/env API key first, then local OAuth sources
  • Full Semantic Kernel integrationIKernelBuilder.UseClaudeCodeChatCompletion() one-liner
  • DI-friendlyIServiceCollection.AddClaudeCodeAuthentication() for ASP.NET Core / Generic Host
  • Broad TFM supportnetstandard2.0, net8.0, net10.0

Compliance Defaults

  • OAuth token support is disabled by default.
  • OAuth usage requires EnableOAuthTokenSupport = true and an interactive session.
  • Unattended or automated OAuth workflows are intentionally blocked.
  • For service, CI, or unattended usage, use Anthropic API keys (sk-ant-api*).
  • Anthropic Consumer Terms (effective October 8, 2025) apply to consumer-service usage: https://www.anthropic.com/legal/consumer-terms
  • Anthropic API keys are governed by Anthropic Commercial Terms: https://www.anthropic.com/legal/commercial-terms

Quick Start

Install

dotnet add package JD.SemanticKernel.Connectors.ClaudeCode

Kernel Builder (Recommended)

using JD.SemanticKernel.Connectors.ClaudeCode;

var builder = Kernel.CreateBuilder();
builder.UseClaudeCodeChatCompletion(apiKey: "sk-ant-api..."); // defaults to ClaudeModels.Default (Sonnet)
var kernel = builder.Build();

var result = await kernel.InvokePromptAsync("Hello, Claude!");
Console.WriteLine(result);

Service Collection (ASP.NET Core)

builder.Services.AddClaudeCodeAuthentication(options =>
{
    options.CredentialsPath = "/custom/path/.credentials.json"; // optional
    options.EnableOAuthTokenSupport = true; // only for local interactive OAuth use
});

Configuration Binding

{
  "ClaudeSession": {
    "ApiKey": null,
    "OAuthToken": null,
    "EnableOAuthTokenSupport": false,
    "CredentialsPath": null
  }
}
builder.Services.AddClaudeCodeAuthentication(builder.Configuration);

Credential Resolution Order

Priority Source Description
1 ClaudeSession:ApiKey Explicit API key in options/config
2 ANTHROPIC_API_KEY env var Environment variable
3 ClaudeSession:OAuthToken Explicit OAuth token (requires EnableOAuthTokenSupport = true)
4 ~/.claude/.credentials.json Local Claude Code session (requires EnableOAuthTokenSupport = true)

Sample CLI Tools

CLI tools demo

This repo includes sample projects demonstrating agentic workflows with Semantic Kernel:

Tool Command Description
Gherkin Generator jdgerkinator Converts acceptance criteria into Gherkin/Reqnroll specs
PR Review Agent jdpr Multi-provider PR review (GitHub, Azure DevOps, GitLab)
Codebase Explorer jdxplr Profiles codebases into structured knowledgebases
Todo Extractor (library demo) Extracts structured todos from natural language

Install the CLI tools as global tools:

dotnet tool install -g JD.Tools.GherkinGenerator
dotnet tool install -g JD.Tools.PullRequestReviewer
dotnet tool install -g JD.Tools.CodebaseExplorer

Models

Well-known model constants are available via ClaudeModels:

builder.UseClaudeCodeChatCompletion(ClaudeModels.Opus);   // claude-opus-4-6
builder.UseClaudeCodeChatCompletion(ClaudeModels.Sonnet);  // claude-sonnet-4-6 (default)
builder.UseClaudeCodeChatCompletion(ClaudeModels.Haiku);   // claude-haiku-4-5

Documentation

Full documentation is available at the DocFX site including:

Building

dotnet build
dotnet test

Build Documentation

cd docs
dotnet tool restore
dotnet docfx docfx.json

Shared Abstractions

This connector implements the JD.SemanticKernel.Connectors.Abstractions interfaces, enabling multi-provider bridging:

Interface Implementation
ISessionProvider ClaudeCodeSessionProvider — credential resolution with IsAuthenticatedAsync()
IModelDiscoveryProvider ClaudeModelDiscovery — returns known Claude model catalogue
SessionOptionsBase ClaudeCodeSessionOptions — inherits DangerouslyDisableSslValidation, CustomEndpoint

Use the same abstractions across providers:

ISessionProvider provider = isClaudeCode
    ? claudeCodeProvider
    : copilotProvider;

var creds = await provider.GetCredentialsAsync();

Related Projects

License

MIT

About

A Semantic Kernel connector that bridges your local Claude Code OAuth session into Microsoft Semantic Kernel — no manual API key management needed.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors