JD.SemanticKernel.Extensions 0.1.40

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

JD.SemanticKernel.Extensions

CI NuGet License: MIT

An extensible toolkit for Microsoft Semantic Kernel that bridges Claude Code skills, plugins, and hooks into SK applications, and adds context management primitives (compaction, semantic memory) for building production-grade AI agents.

Features

  • 📝 Skills — Parse SKILL.md files (YAML frontmatter + markdown) into KernelFunction or PromptTemplate
  • 🔗 Hooks — Map Claude Code lifecycle events (PreToolUse, PostToolUse, etc.) to SK's IFunctionInvocationFilter and IPromptRenderFilter
  • 📦 Plugins — Load .claude-plugin/ directories with skills, hooks, and MCP configs
  • 🗜️ Compaction — Transparent context window management with configurable triggers and hierarchical summarization
  • 🧠 Memory — Semantic memory with MMR reranking, temporal decay scoring, and query expansion
  • 💾 Memory.Sqlite — SQLite-backed persistent memory storage
  • 🎯 Fluent APIUseSkills(), UseHooks(), UsePlugins(), AddCompaction(), AddSemanticMemory() extension methods

Packages

Package Description NuGet
JD.SemanticKernel.Extensions.Skills SKILL.md → KernelFunction/PromptTemplate NuGet
JD.SemanticKernel.Extensions.Hooks Claude Code hooks → SK filters NuGet
JD.SemanticKernel.Extensions.Plugins Plugin directory loader NuGet
JD.SemanticKernel.Extensions.Compaction Context window compaction middleware NuGet
JD.SemanticKernel.Extensions.Memory Semantic memory with MMR + temporal decay NuGet
JD.SemanticKernel.Extensions.Memory.Sqlite SQLite memory backend NuGet
JD.SemanticKernel.Extensions Meta-package (all of the above) NuGet

Quick Start

dotnet add package JD.SemanticKernel.Extensions

Load Skills

using JD.SemanticKernel.Extensions.Skills;

var kernel = Kernel.CreateBuilder()
    .AddOpenAIChatCompletion("gpt-4o", apiKey)
    .UseSkills("./skills/")   // Scans for SKILL.md files
    .Build();

A SKILL.md file follows the Claude Code / AgentSkills.io format:

---
name: code-reviewer
description: Reviews code for quality issues
allowed-tools: [Read, Grep, Glob]
---
# Code Reviewer

Review the provided code for:
1. Bug risks
2. Security vulnerabilities
3. Performance issues

Input: $ARGUMENTS

Configure Hooks

using JD.SemanticKernel.Extensions.Hooks;

var kernel = Kernel.CreateBuilder()
    .AddOpenAIChatCompletion("gpt-4o", apiKey)
    .UseHooks(hooks =>
    {
        hooks.OnFunctionInvoking("Bash|Execute", async ctx =>
        {
            Console.WriteLine($"Validating: {ctx.Function.Name}");
        });
        hooks.OnFunctionInvoked("Write|Edit", async ctx =>
        {
            Console.WriteLine($"Post-edit hook: {ctx.Function.Name}");
        });
        hooks.OnPromptRendering(async ctx =>
        {
            Console.WriteLine("Prompt is about to render...");
        });
    })
    .Build();

Load Plugins

using JD.SemanticKernel.Extensions.Plugins;

var kernel = Kernel.CreateBuilder()
    .AddOpenAIChatCompletion("gpt-4o", apiKey)
    .UsePlugins("./my-plugin/")         // Single plugin directory
    .UseAllPlugins("./plugins/")        // All plugins in directory
    .Build();

Plugin directories follow the .claude-plugin/ convention:

my-plugin/
├── .claude-plugin/
│   └── plugin.json          # Manifest
├── skills/
│   └── reviewer/SKILL.md    # Skills
├── hooks/
│   └── hooks.json           # Hooks
└── .mcp.json                # MCP servers (future)

Meta-Package (All-in-One)

using JD.SemanticKernel.Extensions;

var kernel = Kernel.CreateBuilder()
    .AddOpenAIChatCompletion("gpt-4o", apiKey)
    .AddClaudeCodeSkills("./skills/")
    .AddClaudeCodePlugin("./my-plugin/")
    .AddClaudeCodeHooks(hooks => hooks.OnFunctionInvoking(".*", _ => Task.CompletedTask))
    .Build();

Context Compaction

Automatically compress chat history when it grows too large, preserving key context while staying within token limits.

using JD.SemanticKernel.Extensions.Compaction;

var kernel = Kernel.CreateBuilder()
    .AddOpenAIChatCompletion("gpt-4o", apiKey)
    .Build();

// Register compaction as transparent middleware
kernel.Services.AddCompaction(options =>
{
    options.TriggerMode = CompactionTriggerMode.ContextPercentage;
    options.Threshold = 0.70;                  // Compact at 70% of context window
    options.MaxContextWindowTokens = 128_000;  // Model's context limit
    options.PreserveLastMessages = 10;         // Always keep recent messages
    options.MinMessagesBeforeCompaction = 5;   // Don't compact short conversations
});

Trigger modes:

  • TokenThreshold — Compact when estimated tokens exceed an absolute count
  • ContextPercentage — Compact when usage exceeds a percentage of the context window

Token estimation:

var tokens = TokenEstimator.EstimateTokens("Hello world");          // ~2 tokens
var historyTokens = TokenEstimator.EstimateTokens(chatHistory);     // Includes overhead

Semantic Memory

Store, search, and retrieve context-relevant information with embedding-based similarity, MMR diversity reranking, and temporal decay scoring.

using JD.SemanticKernel.Extensions.Memory;

// Register with in-memory backend
kernel.Services.AddSemanticMemory(options =>
{
    options.DefaultSearchOptions = new MemorySearchOptions
    {
        TopK = 10,
        MinRelevanceScore = 0.7,
        UseMmrReranking = true,
        MmrLambda = 0.7,           // Balance relevance vs diversity
        UseTemporalDecay = true,
        TemporalDecayRate = 0.01,
    };
});

SQLite persistence:

using JD.SemanticKernel.Extensions.Memory.Sqlite;

kernel.Services.AddSqliteMemoryBackend("Data Source=memory.db");

Key capabilities:

  • MMR reranking — Maximal Marginal Relevance for diverse search results
  • Temporal decay — Recent memories rank higher with configurable decay rate
  • Query expansion — Automatically generate alternative queries for broader recall
  • Pluggable backendsInMemoryBackend (default), SqliteMemoryBackend, or implement IMemoryBackend

Hook Event Mapping

Claude Code Event SK Filter
PreToolUse IFunctionInvocationFilter.OnFunctionInvokingAsync
PostToolUse IFunctionInvocationFilter.OnFunctionInvokedAsync
UserPromptSubmit IPromptRenderFilter.OnPromptRenderingAsync
Stop / SubagentStop IAutoFunctionInvocationFilter
SessionStart / SessionEnd IExtensionEventBus (custom)
PreCompact / Notification IExtensionEventBus (custom)
Project Description
JD.SemanticKernel.Connectors.ClaudeCode Claude Code authentication provider for SK
JD.SemanticKernel.Connectors.GitHubCopilot GitHub Copilot authentication provider for SK

Building

dotnet restore
dotnet build
dotnet test

License

MIT © JD

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  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.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  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. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos 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 JD.SemanticKernel.Extensions:

Package Downloads
JD.AI.Core

Core library for JD.AI — agents, providers, sessions, tools, orchestration, and event bus. Shared by the TUI, Gateway, and channel adapters.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.40 0 3/3/2026
0.1.39 210 2/28/2026
0.1.38 329 2/28/2026
0.1.37 60 2/28/2026
0.1.36 68 2/28/2026
0.1.34 62 2/27/2026
0.1.33 60 2/27/2026
0.1.32 55 2/27/2026
0.1.31 63 2/27/2026
0.1.29 58 2/27/2026
0.1.28 61 2/27/2026
0.1.17 65 2/27/2026
0.1.16 66 2/27/2026
0.1.14 56 2/27/2026
0.1.13 60 2/27/2026
0.1.12 55 2/27/2026
0.1.11 62 2/27/2026
0.1.10 61 2/27/2026
0.1.8 65 2/27/2026
0.1.6 68 2/27/2026
Loading failed