Ananke.Skills 0.8.3

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

Ananke.Skills

NuGet License

External skill catalog for Ananke. Discover CLI-based skills from a catalog, rank them with local reliability scores, resolve them into ToolDefinition entries, and add them to a ToolKit for agent use.

This package currently centers on OpenClaw / ClawHub-style skill discovery and local CLI execution. It stays protocol-agnostic by bridging skills through process execution rather than requiring MCP or a custom runtime protocol.

Install

dotnet add package Ananke.Skills

This package depends on Ananke.Orchestration and uses its ToolKit / ToolDefinition model.

What this package provides

Area Key types
Catalog abstraction ISkillCatalog, SkillDescriptor, SkillParameter, SkillInstallMethod
Local scoring ISkillScoreStore, SkillScore, VoteDirection, JsonFileScoreStore
CLI execution CliProcessRunner, CliProcessResult
Catalog implementation OpenClawCatalog
ToolKit integration ToolKitSkillExtensions
Semantic tool-memory bridge SkillCatalogMemorySync

Core concepts

ISkillCatalog

The package-level contract for skill discovery and resolution:

  • SearchAsync(...) finds matching skills from a local cache
  • ResolveAsync(...) turns a SkillDescriptor into a runnable ToolDefinition
  • SyncAsync() refreshes local catalog metadata from the backing source

SkillDescriptor

Lightweight metadata about an external skill:

  • stable catalog ID
  • display/package name
  • human-readable description
  • tags for relevance ranking
  • install method (uvx, npx, and future runners)
  • optional structured parameters for CLI argument generation

Local scoring

ISkillScoreStore tracks local up/down votes per skill. These scores are deployment-local and affect catalog ranking. Negative scores can be used to suppress unreliable skills from agent exposure.

CLI bridge

CliProcessRunner executes external commands with:

  • timeout enforcement
  • stdout/stderr capture
  • output-size limits
  • cancellation support

This lets skills be exposed as normal Ananke tools without embedding another protocol stack in the agent runtime.

Quick start

Create a catalog and seed local scores

using Ananke.Skills;
using Ananke.Skills.OpenClaw;

var scoreStore = new JsonFileScoreStore(Path.Combine(AppContext.BaseDirectory, "skills", "scores.json"));

var catalog = new OpenClawCatalog(
    cacheDir: Path.Combine(AppContext.BaseDirectory, "skills"),
    scoreStore: scoreStore,
    enableVoting: true);

await catalog.SyncAsync();

Search and resolve skills manually

var matches = await catalog.SearchAsync("airbnb search lodging", limit: 3);

var tool = await catalog.ResolveAsync(matches[0]);

Populate a ToolKit from natural-language intent

using Ananke.Orchestration.Tools;

var toolkit = new ToolKit("external-skills");

await toolkit.AddFromCatalogAsync(
    catalog,
    query: "airbnb search lodging",
    limit: 5);

Each resolved skill becomes a normal ToolDefinition that an AgentJob can expose to a model.

OpenClaw catalog behavior

OpenClawCatalog is the built-in ISkillCatalog implementation.

Current behavior:

  • maintains a local catalog.json cache
  • searches offline between syncs
  • ranks matches by relevance plus local vote score
  • resolves supported install methods into CLI-backed ToolDefinition entries
  • can automatically record up/down votes based on execution success when enableVoting is enabled

Currently supported install methods:

  • Uvx
  • Npx

Tool memory projection

SkillCatalogMemorySync decorates an ISkillCatalog and projects synced skills into IToolMemory as ToolMemoryEntry records. This connects the external skill catalog to Ananke's semantic tool-routing pipeline.

Use it when you want skills to be discoverable by the tool gate even before a static ToolKit has been manually populated.

Operational notes

  • OpenClawCatalog.SearchAsync(...) works from the local cache after sync
  • CliProcessRunner truncates large output and enforces execution timeouts
  • JsonFileScoreStore is suitable for single-process and demo scenarios
  • Skill execution requires the underlying runner binary to be installed (uvx, npx, etc.)
Package What it adds
Ananke.Orchestration ToolKit, ToolDefinition, and agent orchestration
Ananke.Abstractions IToolMemory, ToolMemoryEntry, and tool-health contracts
Ananke Meta-package for the broader orchestration stack

Documentation

Full docs, demos, and package guidance: github.com/sevensamurai/Ananke

License

Apache 2.0

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

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.8.3 22 5/17/2026
0.8.2 42 5/15/2026
0.8.1 97 5/9/2026
0.8.0 92 5/9/2026
0.7.2 96 4/12/2026
0.7.1 88 4/11/2026
0.7.0 97 4/11/2026
0.6.0 95 4/10/2026
0.5.0 100 4/5/2026
0.4.0 90 4/3/2026