Centaur writing, centaur coding
I think there’s a much better way of thinking about and referring to what we call “vibe coding”–which quite unfortunately is not at all what it sounds like (warning, sorta NSFW)!
I also see an opportunity to be more open-minded about other applications of generative AI when done in concert with an artist.
In this post, I’ll suggest a better terminology and try to sell you on using it.
A bit of history
Centaur Chess
Chess is a game that has been played for well over a millenia by humans.
To give an incredibly broad sketch (leaving out a lot, consult Wikipedia to get an idea of how much goes into this) what we know as modern chess initially evolved from the Indian game Chaturanga around 500-700 century CE, to the Persion game Shatranj around 700-800 CE, and then through diffusion/trade/conquest to Russia and Europe (Spain, Sicily, etc.) around 900 CE, and then to evolving faster rules around queens and bishops (“Mad Queen Chess”) around 1500 CE to…whatever we have today. Seriously, it’s wild and worth a read.
I bring this up to illustrate that the game has been around for quite some time, and has undergone made changes and offshoots. One of the interesting offshoots–centaur chess–is the inspriation for this post.
Centaur chess (a somewhat more romantic name for advanced chess) was first played–at least in public, though I’m quite certain that it was probably played by amateurs with access to chess engines prior to the big demo–by Garry Kasparov and Veselin Topalov in 1998 and has had some adoption since. The core idea is that you pair humans with chess engines for teamplay: the chess engines make suggestions, catch obvious blunders, and the human ultimately decides on strategy and the actual adoption of a particular set of moves. You can read more on the wiki article, but the neat thing to me about it is:
- A grandmaster (no pun intended) in the field thought it could be a natural evolution of the game
- It’s a solid pairing of humans (strategy) and computers (tactics, checking) that leads to a sum a bit larger than its parts
- People still enjoy chess against other humans!
Computerized writing
We’ve been using computers to help us with writing for nearly as long as we’ve had them.
The humble spellchecker dates back, according to Roger Mitton’s Fifty years of spellchecking, at least to 1960–we see a (crude by today’s standards) attempt at the problem from Charles R. Blair in A Program for Correcting Spelling Errors. By the 80s, we’d see them show up in WordStar and WordPerfect and then in other places like Microsoft word–today they’re ubiquitous on pretty much any smartphone or browser. If you’re ever curious, solving that problem from first principles (especially on limited hardware) is a fascinating thing to attempt.
Moving beyond mere spellchecking, though, we get into more involved tooling that looks at semantics in addiiton to mere syntactical issues: the Writer’s Workbench (made by Lorinda Cherry and others) has tools–and again, this is all around 1983-1986!–to do things like:
- analyze diction (
diction
) for oft-misused phrases - analyze style (
style
andprose
) - look for sexist language (
sexist
) - look for punctuation issues (
punct
) - many other things!
To give a better idea of this (and you can see source for some early version of the wwb here, which is so weird being like almost half a century old!) I’ve taken a descendant of style
and run it on an earlier draft of this post:
[nix-shell:~/writing/newblog/content/posts/2025-04-10-centaur_writing_centaur_coding]$ style index.md
readability grades:
Kincaid: 14.0
ARI: 16.7
Coleman-Liau: 10.5
Flesch Index: 52.4/100
Fog Index: 17.5
Lix: 55.3 = school year 11
SMOG-Grading: 13.4
sentence info:
2714 characters
586 words, average length 4.63 characters = 1.44 syllables
18 sentences, average length 32.6 words
66% (12) short sentences (at most 28 words)
22% (4) long sentences (at least 43 words)
10 paragraphs, average length 1.8 sentences
0% (0) questions
50% (9) passive sentences
longest sent 106 wds at sent 5; shortest sent 7 wds at sent 6
word usage:
verb types:
to be (12) auxiliary (2)
types as % of total:
conjunctions 5% (27) pronouns 7% (43) prepositions 13% (78)
nominalizations 1% (6)
sentence beginnings:
pronoun (3) interrogative pronoun (0) article (3)
subordinating conjunction (2) conjunction (0) preposition (3)
These sorts of tools continued development into the 90s and beyond, Microsoft Office’s Clippy being perhaps the best-known example prior to modern tools like grammarly. These assistants can suggest rewrites, flag issues, and make rather sweeping changes with more human oversight than explication.
Automated programming
I’ll not dwell on this too much, but we’ve had automated programming assistance going back to at least the mid-1950s with Hopper’s FLOW-MATIC. Any computer language above raw machinecode attempts to remove the drudgery of picking register assignments, instructions, and bit packing. It’s fun knowing the clever ins-and-outs of which registers on x86 are most performant, but most people are quite happy to let the compiler sort all that out for us.
In the web-development world with toolkits like TailwindCSS and a good preprocessor we’re happy to prompt DOM elements with what we’d like them to display as and leave the computer to infer the correct styles and CSS classes (and generate them whole-cloth sometimes as needed).
We use ORMs and similar technologies to collaborate with our machines and get them to turn our business logic into sprawling SQL statements–and they frequently even get it right!
Okay, so you were saying about centaurs…?
I gave the historical examples and context to establish that we’ve got ample precedent for humans working with computers to accomplish a goal jointly: deferring the tactics and boilerplate to something faster and more fastidious than we are so as to be able to focus on the strategic goals of a task.
I think that the term we should be using going forward for this sort of collaboration, especially with the new LLMs and similar tech, is centaur coding, and for writing with the aid of an LLM centaur writing, and so forth.
Such a term recognizes the joint collaborative aspect of such endeavors, it links them to a particular historical model that we can seek to follow, and if nothing else it moves away from the vague “vibe coding” term popularized by the current round of buzz and grift.
If you like this term (or at least dislike vibe coding more!), please post this over to HN/Lobsters/Reddit and help spread the meme.