Conceptual image of wiring OpenAI Codex CLI to any LLM with 50 lines of C#

Running OpenAI Codex CLI on Top of Claude, Gemini, or Llama — in 50 Lines of C#

OpenAI’s Codex CLI ships a great editor-agent UX — shell tools, apply_patch, plan tracking, all of it. The catch: as of February 2026, it only speaks the OpenAI Responses API. Chat Completion support was removed (the WireApi enum in codex-rs/model-provider-info/src/lib.rs now has only Responses), which leaves Chat-Completion-only endpoints — Ollama, LM Studio, your favourite Llama runner — locked out. This post walks through how I used .NET 10 file-based programs and the IChatClient abstraction from Microsoft.Extensions.AI to stand up a Responses-compatible server in a single 50-line C# file, with OpenRouter as the backend, so that Codex CLI can run on top of whichever model I feel like that day. ...

May 27, 2026 · 9 min ·  rkttu
Conceptual image of C# and Python meeting for machine learning interop

Calling Hugging Face Models from C#: Running Whisper, sentence-transformers, and Stable Diffusion with DotNetPy 0.6.0

Over the weekend I shipped 0.6.0 of DotNetPy, a small C# library that calls CPython’s C API directly to run Python inside a .NET app. This post walks through the three machine learning samples bundled with 0.6.0 — semantic search with sentence-transformers, speech recognition with Whisper, and text-to-image with Stable Diffusion Turbo — and explains how the same release was also validated on PEP 703 free-threaded CPython. Starting Point: You Only Have C#, but the Model Lives on Hugging Face Every few months the same pattern repeats. I need Whisper for subtitles, or a sentence-transformer for search, or occasionally something like Stable Diffusion — but the only tool in hand is C#. The usual workarounds all come with a decisive downside. ...

May 11, 2026 · 10 min ·  rkttu
Image symbolizing collaboration and code porting between open source projects

Open Source Contribution in the AI Era: Lessons from the HwpLibSharp Porting Project

Open Source Contribution in the AI Era: Lessons from the HwpLibSharp Porting Project I’ve been a Microsoft MVP for 17 years now. One of the most frequently asked questions I’ve received in the .NET community is “How do I work with HWP files in C#?” The official library from Hancom was built on Windows and COM, leaving virtually no solution for cross-platform .NET environments. Then I discovered hwplib by @neolord0—a pure Java open source library that parses the HWP file format. The thought immediately struck me: “Porting this to .NET would be a real contribution to the community.” But it wasn’t going to be easy. The codebase was massive, and it was still being actively updated. ...

February 7, 2026 · 6 min ·  rkttu
A balanced relationship between AI coding tools and developers

How Not to Be Swayed by FOMO About AI Coding Tools

When following news from the AI coding tools industry these days, you’ll notice that every time a new tool emerges, messages like “this is the future” and “you’ll fall behind if you don’t use it” are emphasized to an almost excessive degree. Background agents, parallel AI sessions, autonomous coding—new concepts appear every week, making you feel like you’re falling behind the times if you don’t adopt them. But is it really healthy to take these messages at face value? I don’t think so. ...

January 27, 2026 · 6 min ·  rkttu
Abstract image representing code porting from Java to .NET

Porting Java hwplib to .NET: An Open Source Journey with AI

It Started with Simple Curiosity “I wish I could handle HWP files directly in .NET…” I’m probably not the only .NET developer who has had this thought. HWP files are still widely used in Korea, especially in government agencies, but the .NET ecosystem lacked a proper open-source library to handle them. Previously, the only way to work with HWP files in .NET was to use the HWP ActiveX control’s COM type library that comes with Hangul (the word processor), limited to Windows. Unfortunately, even this support has been discontinued, leaving us with no options. ...

January 8, 2026 · 11 min ·  rkttu
Image representing AI and development

Don't Be Fooled by the Term 'AI Training'

When talking with colleagues who work on service development, I often notice a vague sense of burden regarding AI adoption. Digging into the root of that burden, it usually stems from misunderstandings caused by the term ‘Training’. “If I attach a model to my service, will it consume user data and learn in real-time to get smarter?” “Can we control that learning process? What if it learns something weird?” If you’ve had these concerns, you can rest easy for a moment. Today, I’ll clarify this misunderstanding in developer terms. ...

December 5, 2025 · 3 min ·  rkttu