# How I started working on OMD

Published 2026-09-27. URL: https://ohmydiff.me/blog/how-i-started-omd

Oh My Diff didn't start as a mod platform. It started as CAI, short for
"Cheaper AI" (I have a shitty project naming sense ik): a patch set for Codex CLI that I hoped would
make agent work cheaper and better (based on research I saw on twitter). This post covers how that turned into
"keep Codex, mod everything", and what I learned on the way.

## Some thoughts

I've always been interested in figuring out ways to kind of customize Codex into
something that is hyper personalized for me, I guess it's the hyper obsessed minecraft modded SMP
kid in me that wanted this so much. I just never understood the harness hype too much either.
Like with AI, there is so much constant innovation yet it makes no sense why we keep remaking
harnesses for a new feature. When we used to play minecraft as kids did we ever
just jump ship to another minecraft like game because it had one feature that's different? Maybe
you did but not me. Like each harness has its pros and cons, constantly chasing the hype
makes me way less efficient if anything. So why don't we just keep the same harness
but expose the capability to make mods that alter the harness into something that
works for each person's individual workflow. 

Funnily enough, as I was working on this and pivoting constantly, Anthropic shipped this
into Claude itself (although not as good ofc cause im the goat jk).

In the beginning, I worked on "CAI" as just a rust patch to bring in some features I wanted
from our favourite harnesses such as OMP, OMO, prime agent and so on. However
the more I worked through it the more I pivoted, why make it just a rust patch that
will work for my workflow? Let's make it something the entire community can use and share
just like people do for minecraft. Then I pivoted into OMD, basically the fabric loader
for minecraft where OMD is the fabric loader and minecraft is codex (in case you missed the last paragraph).

## One of the reasons why I even pivoted to what OMD is now

Every feature in the patch was one more thing to carry through each Codex
upgrade, and one more opinion that every user got whether they wanted it or
not. The features themselves were fine. The trouble was that they were
**welded to the runtime**:

- You couldn't turn one off without a new build.
- You couldn't swap in your own version.
- Every upstream Codex release meant rebasing all of them.

It's the same problem that makes people switch harnesses. When a feature ships
inside a tool, getting that feature means adopting the whole tool.

## The pivot

On September 16 I changed direction. The product would center on
**TypeScript mods**, and the runtime patch would shrink to the parts that have
to be native: loading mods, enforcing permissions, keeping credentials safe and
recovering when something breaks.

The next ten days went to that foundation:

- a mod loader with tools and state;
- a versioned mod API that opens Codex's native extension points to TypeScript;
- author tools, compatibility versions and rollback;
- reproducible, versioned mod packages.

Then I started moving features out of Rust. Coordination policy became
TypeScript. Claude models and typed subagent tasks shipped as mods rather than
runtime changes. LSP sync was rebuilt as a pure mod. Even the terminal's visual
treatment is a mod now.

## Deleting my own TUI

My biggest cut was the fullscreen terminal UI I'd built in the first week.
Upstream Codex had shipped its own, so I dropped mine and built on theirs
instead. The Git sidebar and the terminal styling are now mods that sit on top
of the upstream TUI.

Deleting working code hurts, but it's the whole point. **Anything upstream
already does well, I shouldn't carry.** OMD's job is to make Codex moddable.
Building a second Codex isn't part of it.

## Where it landed

Where I've landed: the host is feature-agnostic, and the mods are the
features. OMD Core is only the mod host. OMD+ adds a curated set of
first-party mods, and you can switch off or replace any of them.

If you've ever wanted one feature from a new harness without moving your whole
setup, that's what this is for. It's still in private development. You can
follow along on the [changelog](/changelog), which also has an
[RSS feed](/changelog/rss.xml).

I will hopefully make this website somewhere we can share mods just like pi.dev does
but I want to ship OMD+ fully. (BTW if you read all this without knowing what
OMD+ is you're built different; OMD+ is basically batteries included version with mods that I like
whereas OMD Core is just the modding ecosystem.)
