Home/AI Agents/catalyst
catalyst logo

catalyst

curiosity-ai/catalyst

C# NLP library for fast pre-trained models and embeddings training

GraphCanon updated 2d · GitHub synced 2d

858 stars86 forksLast push 2w C# MIT

Decision brief

Catalyst provides fast NLP functionalities in C#, including pre-trained models and embedding training capabilities similar to spaCy but with .NET ecosystem integration.

Good fit when

  • When your project is primarily in C# or you are deeply embedded within the .NET ecosystem, providing a seamless integration experience.
  • If speed optimization for NLP tasks like embeddings training is critical due to performance constraints and you prefer tools inspired by spaCy's design.

Avoid when

  • When your preferred development language is not C#, as Catalyst may require additional setup or effort compared to libraries native in other languages.
  • If extensive customization of NLP models beyond embeddings training and entity recognition is required, since Catalyst might offer fewer advanced features than more mature tools.

Observed Jul 17, 2026 · Source: enrich:decision_facts

Verify the decision

Maintenance and security

Full trust report
Maintenance
Active (15d since push)
As of 2d
Provenance
Not a fork · Organization account
As of 2d
Security (OSV)
No lockfile
As of 1mo

Public GitHub metadata and optional OSV scans. Signals, not a guarantee. Trust methodology.

Install

git clone https://github.com/curiosity-ai/catalyst

Similar tools

Same-category neighbours. No typed graph edges are catalogued for this tool yet.

Evidence and technical details

Sourced facts, taxonomy, compatibility claims, README excerpt, and machine-readable endpoints.

Overview

Catalyst is an NLP library in C#, offering pre-trained models, embeddings training support, and entity recognition.

Capability facts

Languages
c#

Source: github.language · Aug 22, 2026

Categories

Tags

README

✨ Getting Started

Using catalyst is as simple as installing its NuGet Package, and setting the storage to use our online repository. This way, models will be lazy loaded either from disk or downloaded from our online repository. Check out also some of the sample projects for more examples on how to use catalyst.

Catalyst.Models.English.Register(); //You need to pre-register each language (and install the respective NuGet Packages)

Storage.Current = new DiskStorage("catalyst-models");
var nlp = await Pipeline.ForAsync(Language.English);
var doc = new Document("The quick brown fox jumps over the lazy dog", Language.English);
nlp.ProcessSingle(doc);
Console.WriteLine(doc.ToJson());

You can also take advantage of C# lazy evaluation and native multi-threading support to process a large number of documents in parallel:

var docs = GetDocuments();
var parsed = nlp.Process(docs);
DoSomething(parsed);

IEnumerable<IDocument> GetDocuments()
{
    //Generates a few documents, to demonstrate multi-threading & lazy evaluation
    for(int i = 0; i < 1000; i++)
    {
        yield return new Document("The quick brown fox jumps over the lazy dog", Language.English);
    }
}

void DoSomething(IEnumerable<IDocument> docs)
{
    foreach(var doc in docs)
    {
        Console.WriteLine(doc.ToJson());
    }
}

Training a new FastText word2vec embedding model is as simple as this:

var nlp = await Pipeline.ForAsync(Language.English);
var ft = new FastText(Language.English, 0, "wiki-word2vec");
ft.Data.Type = FastText.ModelType.CBow;
ft.Data.Loss = FastText.LossType.NegativeSampling;
ft.Train(nlp.Process(GetDocs()));
ft.StoreAsync();

For fast embedding search, we have also released a C# version of the "Hierarchical Navigable Small World" (HNSW) algorithm on NuGet, based on our fork of Microsoft's HNSW.Net. We have also released a C# version of the "Uniform Manifold Approximation and Projection" (UMAP) algorithm for dimensionality reduction on GitHub and on NuGet.

For agents

This page has a .md twin and JSON over the API.

Was this helpful?

Anonymous feedback helps us improve pages and translations.