⚠️ This blog post was created with the help of AI tools. Yes, I used a bit of magic from language models to organize my thoughts and automate the boring parts, but the geeky fun and the 🤖 in C# are 100% mine.

Hi!

Some of these started as small pet projects.

IE: a quick helper for a demo, a tiny tool for a conference, a library to avoid repeating the same code again and again, or one of those “I’ll just build this in one evening” ideas that somehow becomes a real thing.

And now, thanks to GitHub Copilot, many of these experiments are becoming open source, free NuGet packages that I hope are useful to everyone.

Some are focused on AI. Some are focused on local models. Some help with embeddings, speech, QR codes, document processing, MCP tools, agents, and developer productivity.

In other words: a beautiful collection of useful chaos.


Quick package index

Versions are current as of the latest dashboard snapshot: 2026-05-10.
Dashboard repo: https://github.com/elbruno/nuget-repo-dashboard

PackageVersionNuGetGitHub
ElBruno.AI.Evaluation0.5.2https://www.nuget.org/packages/ElBruno.AI.Evaluationhttps://github.com/elbruno/elbruno-ai-evaluation
ElBruno.AI.Evaluation.Reporting0.5.2https://www.nuget.org/packages/ElBruno.AI.Evaluation.Reportinghttps://github.com/elbruno/elbruno-ai-evaluation
ElBruno.AI.Evaluation.SyntheticData0.5.2https://www.nuget.org/packages/ElBruno.AI.Evaluation.SyntheticDatahttps://github.com/elbruno/elbruno-ai-evaluation
ElBruno.AI.Evaluation.Xunit0.5.2https://www.nuget.org/packages/ElBruno.AI.Evaluation.Xunithttps://github.com/elbruno/elbruno-ai-evaluation
ElBruno.AgentsOrchestration.Abstractions0.5.5https://www.nuget.org/packages/ElBruno.AgentsOrchestration.Abstractionshttps://github.com/elbruno/elbruno.agentsorchestration
ElBruno.AgentsOrchestration.Orchestration0.5.5https://www.nuget.org/packages/ElBruno.AgentsOrchestration.Orchestrationhttps://github.com/elbruno/elbruno.agentsorchestration
ElBruno.AotMapper0.6.0https://www.nuget.org/packages/ElBruno.AotMapperhttps://github.com/elbruno/ElBruno.AotMapper
ElBruno.AotMapper.AspNetCore0.6.0https://www.nuget.org/packages/ElBruno.AotMapper.AspNetCorehttps://github.com/elbruno/ElBruno.AotMapper
ElBruno.AotMapper.EntityFramework0.6.0https://www.nuget.org/packages/ElBruno.AotMapper.EntityFrameworkhttps://github.com/elbruno/ElBruno.AotMapper
ElBruno.AotMapper.Generator0.6.0https://www.nuget.org/packages/ElBruno.AotMapper.Generatorhttps://github.com/elbruno/ElBruno.AotMapper
ElBruno.AspireMonitor1.5.0https://www.nuget.org/packages/ElBruno.AspireMonitorhttps://github.com/elbruno/ElBruno.AspireMonitor
ElBruno.BM250.5.0https://www.nuget.org/packages/ElBruno.BM25https://github.com/ElBruno/ElBruno.BM25
ElBruno.ClockTray1.0.0https://www.nuget.org/packages/ElBruno.ClockTrayhttps://github.com/elbruno/ElBruno.ClockTray
elbruno.Extensions.AI.Skills.Corehttps://www.nuget.org/packages/elbruno.Extensions.AI.Skills.Corehttps://github.com/elbruno/elbruno-agentskills
elbruno.Extensions.AI.Skills.Clihttps://www.nuget.org/packages/elbruno.Extensions.AI.Skills.Clihttps://github.com/elbruno/elbruno-agentskills
ElBruno.HuggingFace.Downloader1.1.0https://www.nuget.org/packages/ElBruno.HuggingFace.Downloaderhttps://github.com/elbruno/ElBruno.HuggingFace.Downloader
ElBruno.HuggingFace.Downloader.Clihttps://www.nuget.org/packages/ElBruno.HuggingFace.Downloader.Clihttps://github.com/elbruno/ElBruno.HuggingFace.Downloader
ElBruno.LocalEmbeddings1.4.6https://www.nuget.org/packages/ElBruno.LocalEmbeddingshttps://github.com/elbruno/elbruno.localembeddings
ElBruno.LocalEmbeddings.Harrier1.4.6https://www.nuget.org/packages/ElBruno.LocalEmbeddings.Harrierhttps://github.com/elbruno/elbruno.localembeddings
ElBruno.LocalEmbeddings.ImageEmbeddings1.4.6https://www.nuget.org/packages/ElBruno.LocalEmbeddings.ImageEmbeddingshttps://github.com/elbruno/elbruno.localembeddings
ElBruno.LocalEmbeddings.ImageEmbeddings.Downloader1.4.6https://www.nuget.org/packages/ElBruno.LocalEmbeddings.ImageEmbeddings.Downloaderhttps://github.com/elbruno/elbruno.localembeddings
ElBruno.LocalEmbeddings.KernelMemory1.4.6https://www.nuget.org/packages/ElBruno.LocalEmbeddings.KernelMemoryhttps://github.com/elbruno/elbruno.localembeddings
ElBruno.LocalEmbeddings.Npu1.4.6https://www.nuget.org/packages/ElBruno.LocalEmbeddings.Npuhttps://github.com/elbruno/elbruno.localembeddings
ElBruno.LocalEmbeddings.Npu.Intel1.4.6https://www.nuget.org/packages/ElBruno.LocalEmbeddings.Npu.Intelhttps://github.com/elbruno/elbruno.localembeddings
ElBruno.LocalEmbeddings.Npu.Qualcomm1.4.6https://www.nuget.org/packages/ElBruno.LocalEmbeddings.Npu.Qualcommhttps://github.com/elbruno/elbruno.localembeddings
ElBruno.LocalEmbeddings.VectorData1.4.6https://www.nuget.org/packages/ElBruno.LocalEmbeddings.VectorDatahttps://github.com/elbruno/elbruno.localembeddings
ElBruno.LocalLLMs0.16.0https://www.nuget.org/packages/ElBruno.LocalLLMshttps://github.com/elbruno/ElBruno.LocalLLMs
ElBruno.LocalLLMs.BitNet0.16.0https://www.nuget.org/packages/ElBruno.LocalLLMs.BitNethttps://github.com/elbruno/ElBruno.LocalLLMs
ElBruno.LocalLLMs.Rag0.16.0https://www.nuget.org/packages/ElBruno.LocalLLMs.Raghttps://github.com/elbruno/ElBruno.LocalLLMs
ElBruno.MarkItDotNet0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNethttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.AI0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.AIhttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.AzureSearch0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.AzureSearchhttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.Chunking0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.Chunkinghttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.Citations0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.Citationshttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.Cli0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.Clihttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.CoreModel0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.CoreModelhttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.DocumentIntelligence0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.DocumentIntelligencehttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.Excel0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.Excelhttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.Metadata0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.Metadatahttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.PowerPoint0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.PowerPointhttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.Quality0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.Qualityhttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.Sync0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.Synchttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.VectorData0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.VectorDatahttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.MarkItDotNet.Whisper0.6.0https://www.nuget.org/packages/ElBruno.MarkItDotNet.Whisperhttps://github.com/elbruno/ElBruno.MarkItDotNet
ElBruno.ModelContextProtocol.MCPToolRouter0.6.0https://www.nuget.org/packages/ElBruno.ModelContextProtocol.MCPToolRouterhttps://github.com/elbruno/ElBruno.ModelContextProtocol
ElBruno.OllamaMonitor0.7.0https://www.nuget.org/packages/ElBruno.OllamaMonitorhttps://github.com/elbruno/ElBruno.OllamaMonitor
ElBruno.OllamaSharp.Extensions1.0.2https://www.nuget.org/packages/ElBruno.OllamaSharp.Extensionshttps://github.com/elbruno/elbruno.OllamaSharp.Extensions
ElBruno.PersonaPlex0.6.0https://www.nuget.org/packages/ElBruno.PersonaPlexhttps://github.com/elbruno/ElBruno.PersonaPlex
ElBruno.QRCodeGenerator.Ascii1.1.0https://www.nuget.org/packages/ElBruno.QRCodeGenerator.Asciihttps://github.com/elbruno/ElBruno.QRCodeGenerator
ElBruno.QRCodeGenerator.CLI1.1.0https://www.nuget.org/packages/ElBruno.QRCodeGenerator.CLIhttps://github.com/elbruno/ElBruno.QRCodeGenerator.CLI
ElBruno.QRCodeGenerator.Image1.1.0https://www.nuget.org/packages/ElBruno.QRCodeGenerator.Imagehttps://github.com/elbruno/ElBruno.QRCodeGenerator
ElBruno.QRCodeGenerator.Payloads1.1.0https://www.nuget.org/packages/ElBruno.QRCodeGenerator.Payloadshttps://github.com/elbruno/ElBruno.QRCodeGenerator
ElBruno.QRCodeGenerator.Pdf1.1.0https://www.nuget.org/packages/ElBruno.QRCodeGenerator.Pdfhttps://github.com/elbruno/ElBruno.QRCodeGenerator
ElBruno.QRCodeGenerator.Svg1.1.0https://www.nuget.org/packages/ElBruno.QRCodeGenerator.Svghttps://github.com/elbruno/ElBruno.QRCodeGenerator
ElBruno.QRCodeGenerator.Tool1.1.0https://www.nuget.org/packages/ElBruno.QRCodeGenerator.Toolhttps://github.com/elbruno/ElBruno.QRCodeGenerator
ElBruno.QwenTTS1.4.7https://www.nuget.org/packages/ElBruno.QwenTTShttps://github.com/elbruno/ElBruno.QwenTTS
ElBruno.QwenTTS.VoiceCloning1.4.7https://www.nuget.org/packages/ElBruno.QwenTTS.VoiceCloninghttps://github.com/elbruno/ElBruno.QwenTTS
ElBruno.Realtime0.10.0https://www.nuget.org/packages/ElBruno.Realtimehttps://github.com/elbruno/ElBruno.Realtime
ElBruno.Realtime.SileroVad0.10.0https://www.nuget.org/packages/ElBruno.Realtime.SileroVadhttps://github.com/elbruno/ElBruno.Realtime
ElBruno.Realtime.Whisper0.10.0https://www.nuget.org/packages/ElBruno.Realtime.Whisperhttps://github.com/elbruno/ElBruno.Realtime
ElBruno.Reranking0.5.1https://www.nuget.org/packages/ElBruno.Rerankinghttps://github.com/elbruno/ElBruno.Reranking
ElBruno.Text2Image1.2.11https://www.nuget.org/packages/ElBruno.Text2Imagehttps://github.com/elbruno/ElBruno.Text2Image
ElBruno.Text2Image.Cli1.2.11https://www.nuget.org/packages/ElBruno.Text2Image.Clihttps://github.com/elbruno/ElBruno.Text2Image
ElBruno.Text2Image.Cpu1.2.11https://www.nuget.org/packages/ElBruno.Text2Image.Cpuhttps://github.com/elbruno/ElBruno.Text2Image
ElBruno.Text2Image.Cuda1.2.11https://www.nuget.org/packages/ElBruno.Text2Image.Cudahttps://github.com/elbruno/ElBruno.Text2Image
ElBruno.Text2Image.DirectML1.2.11https://www.nuget.org/packages/ElBruno.Text2Image.DirectMLhttps://github.com/elbruno/ElBruno.Text2Image
ElBruno.Text2Image.Foundry1.2.11https://www.nuget.org/packages/ElBruno.Text2Image.Foundryhttps://github.com/elbruno/ElBruno.Text2Image
ElBruno.VibeVoiceTTS0.5.0https://www.nuget.org/packages/ElBruno.VibeVoiceTTShttps://github.com/elbruno/ElBruno.VibeVoiceTTS
ElBruno.Whisper0.2.0https://www.nuget.org/packages/ElBruno.Whisperhttps://github.com/elbruno/ElBruno.Whisper
graphify-dotnet0.6.1https://www.nuget.org/packages/graphify-dotnethttps://github.com/elbruno/graphify-dotnet
MemPalace.Core0.15.2https://www.nuget.org/packages/MemPalace.Corehttps://github.com/elbruno/ElBruno.MempalaceNet
MemPalace.Ai0.15.2https://www.nuget.org/packages/MemPalace.Aihttps://github.com/elbruno/ElBruno.MempalaceNet
MemPalace.Agents0.15.2https://www.nuget.org/packages/MemPalace.Agentshttps://github.com/elbruno/ElBruno.MempalaceNet
MemPalace.Backends.Sqlite0.15.2https://www.nuget.org/packages/MemPalace.Backends.Sqlitehttps://github.com/elbruno/ElBruno.MempalaceNet
MemPalace.KnowledgeGraph0.15.2https://www.nuget.org/packages/MemPalace.KnowledgeGraphhttps://github.com/elbruno/ElBruno.MempalaceNet
MemPalace.Mcp0.15.2https://www.nuget.org/packages/MemPalace.Mcphttps://github.com/elbruno/ElBruno.MempalaceNet
MemPalace.Mining0.15.2https://www.nuget.org/packages/MemPalace.Mininghttps://github.com/elbruno/ElBruno.MempalaceNet
MemPalace.Search0.15.2https://www.nuget.org/packages/MemPalace.Searchhttps://github.com/elbruno/ElBruno.MempalaceNet
mempalacenet0.15.2https://www.nuget.org/packages/mempalacenethttps://github.com/elbruno/ElBruno.MempalaceNet
mempalacenet-bench0.15.2https://www.nuget.org/packages/mempalacenet-benchhttps://github.com/elbruno/ElBruno.MempalaceNet

AI evaluation: because demos are easy, validation is the hard part

The ElBruno.AI.Evaluation family is about bringing testing discipline to AI apps.

Packages:

  • ElBruno.AI.Evaluation
  • ElBruno.AI.Evaluation.Reporting
  • ElBruno.AI.Evaluation.SyntheticData
  • ElBruno.AI.Evaluation.Xunit

Repo:

https://github.com/elbruno/elbruno-ai-evaluation

These packages help with evaluation workflows, reporting, synthetic test data, and xUnit integration. The idea is simple: AI applications should not rely only on “it worked once in my demo.”

They need repeatable checks.

They need quality gates.

They need tests that can run again tomorrow, when the model, prompt, data, or weather in the cloud changes.

Because yes, AI apps are fun. But “trust me bro, the prompt is good” is not a testing strategy.


Agents and orchestration

The agents orchestration packages are focused on coordinating multiple AI agents through a lightweight workflow.

Packages:

  • ElBruno.AgentsOrchestration.Abstractions
  • ElBruno.AgentsOrchestration.Orchestration

Repo:

https://github.com/elbruno/elbruno.agentsorchestration

This is useful when you want agents to do more than just reply to a prompt. The orchestration repo describes a 6-step pipeline:

Plan → Parse → Execute → Verify → Review → Report

That is a nice mental model for agent-based workflows. It also fits very well with GitHub Copilot, SQUAD-style automation, and repo-based development experiments.

Because once you have more than one agent, you need orchestration.

Otherwise, congratulations, you invented a very expensive group chat.


AOT-friendly mapping for .NET

The ElBruno.AotMapper family is focused on compile-time DTO mapping.

Packages:

  • ElBruno.AotMapper
  • ElBruno.AotMapper.AspNetCore
  • ElBruno.AotMapper.EntityFramework
  • ElBruno.AotMapper.Generator

Repo:

https://github.com/elbruno/ElBruno.AotMapper

This project is especially interesting for modern .NET workloads because it avoids runtime reflection and generates mapping code at compile time.

That makes it useful for:

  • NativeAOT apps
  • trimmed applications
  • cloud-native workloads
  • serverless scenarios
  • places where startup time and predictability matter

In short: less runtime magic, more generated code that you can actually inspect.

And sometimes that is exactly what you want.


Local embeddings

The ElBruno.LocalEmbeddings family is one of the most useful groups for AI developers building RAG, semantic search, local-first AI apps, or privacy-aware demos.

Packages include:

  • ElBruno.LocalEmbeddings
  • ElBruno.LocalEmbeddings.Harrier
  • ElBruno.LocalEmbeddings.ImageEmbeddings
  • ElBruno.LocalEmbeddings.ImageEmbeddings.Downloader
  • ElBruno.LocalEmbeddings.KernelMemory
  • ElBruno.LocalEmbeddings.Npu
  • ElBruno.LocalEmbeddings.Npu.Intel
  • ElBruno.LocalEmbeddings.Npu.Qualcomm
  • ElBruno.LocalEmbeddings.VectorData

Repo:

https://github.com/elbruno/elbruno.localembeddings

This family gives you local embedding generation in .NET, including support for text embeddings, image embeddings, vector data integrations, Kernel Memory, and NPU-specific packages.

The NPU packages are especially cool because they connect directly with the AI PC story.

Not every embedding call needs to cross the internet.

Sometimes the best cloud call is the one you did not make.


Local LLMs

The ElBruno.LocalLLMs packages are focused on running and integrating local language models from .NET.

Packages:

  • ElBruno.LocalLLMs
  • ElBruno.LocalLLMs.BitNet
  • ElBruno.LocalLLMs.Rag

Repo:

https://github.com/elbruno/ElBruno.LocalLLMs

These are useful for local chat, local model experimentation, and RAG-style workflows.

Cloud models are amazing. But sometimes you want the model running right there next to your code, your logs, your fan noise, and your questionable coffee.


MarkItDotNet: from files to AI-ready Markdown

The ElBruno.MarkItDotNet family is probably one of the biggest and most useful areas in this package collection.

Packages include:

  • ElBruno.MarkItDotNet
  • ElBruno.MarkItDotNet.AI
  • ElBruno.MarkItDotNet.AzureSearch
  • ElBruno.MarkItDotNet.Chunking
  • ElBruno.MarkItDotNet.Citations
  • ElBruno.MarkItDotNet.Cli
  • ElBruno.MarkItDotNet.CoreModel
  • ElBruno.MarkItDotNet.DocumentIntelligence
  • ElBruno.MarkItDotNet.Excel
  • ElBruno.MarkItDotNet.Metadata
  • ElBruno.MarkItDotNet.PowerPoint
  • ElBruno.MarkItDotNet.Quality
  • ElBruno.MarkItDotNet.Sync
  • ElBruno.MarkItDotNet.VectorData
  • ElBruno.MarkItDotNet.Whisper

Repo:

https://github.com/elbruno/ElBruno.MarkItDotNet

This family is about converting, preparing, enriching, chunking, indexing, validating, and syncing content for AI workflows.

In a typical RAG project, everyone wants the fancy chat UI.

But before that, someone has to solve the real problem:

Can we clean and prepare the documents first?

That is where this package family fits.

It helps turn files into AI-ready Markdown and supports scenarios like document conversion, chunking, metadata extraction, citations, Azure AI Search, Whisper transcription, and quality checks.

Because every RAG project eventually becomes a document-cleanup project wearing an AI hat.


Text-to-image generation

The ElBruno.Text2Image packages provide a .NET-friendly way to work with image generation.

Packages:

  • ElBruno.Text2Image
  • ElBruno.Text2Image.Cli
  • ElBruno.Text2Image.Cpu
  • ElBruno.Text2Image.Cuda
  • ElBruno.Text2Image.DirectML
  • ElBruno.Text2Image.Foundry

Repo:

https://github.com/elbruno/ElBruno.Text2Image

The nice part here is the multi-backend design:

  • CPU
  • CUDA
  • DirectML
  • Microsoft Foundry
  • CLI

That gives you flexibility depending on the machine, the demo, the budget, and how much your GPU is already crying.

One API, multiple ways to make pixels appear like magic.

Very expensive magic sometimes, but still magic.


Realtime audio, Whisper, and voice

This group is about speech, transcription, realtime audio, text-to-speech, and voice scenarios.

Packages:

  • ElBruno.Whisper
  • ElBruno.Realtime
  • ElBruno.Realtime.SileroVad
  • ElBruno.Realtime.Whisper
  • ElBruno.QwenTTS
  • ElBruno.QwenTTS.VoiceCloning
  • ElBruno.VibeVoiceTTS
  • ElBruno.PersonaPlex

Repos:

https://github.com/elbruno/ElBruno.Whisper
https://github.com/elbruno/ElBruno.Realtime
https://github.com/elbruno/ElBruno.QwenTTS
https://github.com/elbruno/ElBruno.VibeVoiceTTS
https://github.com/elbruno/ElBruno.PersonaPlex

This is useful for voice agents, transcription tools, accessibility scenarios, podcast workflows, and realtime conversational demos.

Because sooner or later every AI demo becomes:

Can I talk to it?

And then, ten minutes later:

Why is my microphone still open?


QR code generation

The ElBruno.QRCodeGenerator family is a lightweight utility set for generating QR codes in different formats.

Packages:

  • ElBruno.QRCodeGenerator.Ascii
  • ElBruno.QRCodeGenerator.CLI
  • ElBruno.QRCodeGenerator.Image
  • ElBruno.QRCodeGenerator.Payloads
  • ElBruno.QRCodeGenerator.Pdf
  • ElBruno.QRCodeGenerator.Svg
  • ElBruno.QRCodeGenerator.Tool

Repos:

https://github.com/elbruno/ElBruno.QRCodeGenerator
https://github.com/elbruno/ElBruno.QRCodeGenerator.CLI

This one is very practical: terminal output, images, SVG, PDF, payloads, and a global tool.

Because every conference session eventually needs a QR code.

Usually five minutes before going live.


MCP and tool routing

The ElBruno.ModelContextProtocol.MCPToolRouter package focuses on smarter tool selection for Model Context Protocol scenarios.

Package:

  • ElBruno.ModelContextProtocol.MCPToolRouter

Repo:

https://github.com/elbruno/ElBruno.ModelContextProtocol

This is useful when working with agents that have access to many tools.

Sending every possible tool to the model all the time is not always a good idea. It burns tokens, increases noise, and makes the model work harder than needed.

Tool routing helps select the most relevant tools for the task.

Agents are great.

Agents with 97 tools in context are a token bonfire.


Search, ranking, and retrieval

These packages help with retrieval, ranking, and search scenarios.

Packages:

  • ElBruno.BM25
  • ElBruno.Reranking
  • graphify-dotnet

Repos:

https://github.com/ElBruno/ElBruno.BM25
https://github.com/elbruno/ElBruno.Reranking
https://github.com/elbruno/graphify-dotnet

This group fits nicely into RAG and knowledge discovery workflows.

You need search.

Then you need better search.

Then you need reranking.

Then you need graphs.

Then you realize your “simple chatbot” is now a distributed knowledge system.

Classic.


Developer desktop utilities

These are small tools that make developer life better.

Packages:

  • ElBruno.AspireMonitor
  • ElBruno.ClockTray
  • ElBruno.OllamaMonitor

Repos:

https://github.com/elbruno/ElBruno.AspireMonitor
https://github.com/elbruno/ElBruno.ClockTray
https://github.com/elbruno/ElBruno.OllamaMonitor

These are the kind of tools that start with:

I just need a tiny helper.

And then become useful enough to publish.

AspireMonitor helps with Aspire monitoring.
ClockTray helps with Windows tray clock scenarios.
OllamaMonitor gives quick visibility into local Ollama runtime status.

Tiny tools. Big quality-of-life improvement.

The best kind of yak shaving.


Hugging Face helpers

The Hugging Face downloader packages help with downloading models and related assets from Hugging Face.

Packages:

  • ElBruno.HuggingFace.Downloader
  • ElBruno.HuggingFace.Downloader.Cli

Repo:

https://github.com/elbruno/ElBruno.HuggingFace.Downloader

This is useful across many of the local AI packages, because local AI usually starts with:

Great, now where do I get the model files?

And then:

Why is this model 4 GB?


OllamaSharp extensions

Package:

  • ElBruno.OllamaSharp.Extensions

Repo:

https://github.com/elbruno/elbruno.OllamaSharp.Extensions

This package adds useful extensions around OllamaSharp, especially for scenarios where local LLM calls can take longer and timeout management becomes important.

If you have ever waited for a local model to respond and wondered whether it was thinking, frozen, or silently judging your prompt, this one makes sense.


MemPalace: memory for AI apps

The MemPalace family is focused on memory infrastructure for AI apps and agents.

Packages:

  • MemPalace.Core
  • MemPalace.Ai
  • MemPalace.Agents
  • MemPalace.Backends.Sqlite
  • MemPalace.KnowledgeGraph
  • MemPalace.Mcp
  • MemPalace.Mining
  • MemPalace.Search
  • mempalacenet
  • mempalacenet-bench

Repo:

https://github.com/elbruno/ElBruno.MempalaceNet

This is about local-first AI memory, storage, search, knowledge graphs, agents, MCP integration, mining, and benchmarking.

Because agents without memory are just very confident goldfish.


Closing thoughts

Most of these packages started as small ideas, experiments, demos, or helper libraries.

But this is one of the things I love about modern development with GitHub Copilot: it makes it easier to move from:

This works on my machine

to:

This is packaged, documented, published, open source, and maybe useful for someone else.

Are all of these perfect?

Of course not.

Are they useful?

I hope so.

Are they free, open source, and ready for you to try, break, improve, fork, complain about, and maybe even use in a real project?

Yes. That is the idea.

And as always:

Today, code is cheap. The decisions are expensive.

Happy coding!

Greetings

El Bruno

More posts in my blog ElBruno.com.

More info in https://beacons.ai/elbruno


Leave a comment

Discover more from El Bruno

Subscribe now to keep reading and get access to the full archive.

Continue reading