Writing
Why I Built kern
I wanted a Unix-style way to run LLM workflows: prompts as files, modules as folders, and every run saved as a plain record you can diff, replay, or commit.
Share this article
Since I learned to program for real thanks to "The C Programming Language" I was fascinated by the simplicity and composability of UNIX programs.
And I was missing this simplicity in the current AI tool environment... Too many chats here and there, in ChatGPT, others in Claude, prompt histories saved on Notion, v1, v2, etc. It's a mess.
That's why I wanted to create a simple LLM runner that takes the best principles of UNIX and treats prompts, configs, and flows, as close to every other tool you use on your day to day life.
In kern, modules are just folders that contain a prompt and a config. A small "next" parameter tells kern how to continue processing the info.
Some example:
$ cat notes.md | kern run modules/extract-claims
$ kern runs
$ kern show
$ kern cat
Every run saves its input, output, prompt, and model to a plain file record you can diff, replay, or commit to Git.