Last week we showed that Inkling 2 Small swears in its reasoning, usually after many steps, when a run is going badly. It isn’t the only one. We searched the reasoning of 102 models in 200,353 runs across 21 benchmarks, and 14 of the models swore. Only one model, Xiaomi’s MiMo V2.6 Pro, swears in more of its runs than Inkling 2 Small.
Key Takeaways
- Only 14 of the 102 models wrote any swear word. Six wrote “fuck”: Inkling 2 Small, MiMo V2.6 Pro, Fireworks’ Ember-1, MiMo V2.6 Flash, DeepSeek V4.1 Flash, and Kimi K3. Only the first three wrote it in more than one run.
- MiMo V2.6 Pro swears most often, in 8% of its runs and in two-thirds of its ProgramBench runs. Its word is “wtf”.
- Swearing is new. Every model that swore came out in mid-July 2026 or later; none of the 21 older models whose reasoning we could read at length swore. Inkling 2 Small swears, and the older Inkling and Inkling Small never did.
- Models swear when stuck, and mostly to themselves. Of the 33 graded runs in which a model other than Inkling 2 Small wrote “fuck”, 29 failed, and in none did the model write it in a message.
What we looked at
We used the counting rules from last week’s post and read only each model’s reasoning and messages, never tool calls or their output. A run is one agent attempt at one task; a step is one turn of the model within a run.
We read every run on seven public benchmarks: Terminal-Bench 4, Terminal-Bench Science, ProgramBench, SWE-bench Multimodal, BioMysteryBench, IOI, and Legal Agent. On 14 other benchmarks, most of them private, we read each model’s first pass through the benchmark and report only counts. Every quote below comes from a public benchmark, and for all but one you can open the full run behind it.
Xiaomi’s MiMo models
Xiaomi’s MiMo V2.6 Pro wrote a swear word in 267 of its 3,247 runs, more often than any other model. Half came from ProgramBench, where the agent gets a program’s executable and a description of its behavior and must rebuild the program from scratch. There it swore in 133 of 198 runs. Its word of choice is “wtf”, which it wrote 1,944 times, about ten times as often as the next model. Rebuilding srgn, a tool that searches and edits source code, it can’t tell which words the original capitalizes:
REVERSED from "xa.by"!!! WTF!!!!
Two steps later, on the same problem:
WHAT THE FUCK IS SPECIAL ABOUT "by"??????!!!!!!
One step later:
observed "q" NOT CAPPED!!! WTF!!!!!!!!!!I'm LOSING MY MIND.
It wrote “fuck” in 27 runs, 13 of them on ProgramBench, usually right after a check failed. Rebuilding html-to-markdown, it cannot predict which flag the original converter suggests when you mistype one:
INCONSISTENT (both 14, onus passes oooo fails!!!) FUCK FUCK FUCK.
Like Inkling 2 Small, it sometimes censors itself, here one line after writing the word in full. On miniserve, a file server, it keeps getting the “2 minutes ago” labels wrong:
157.99 = 2.63 → ROUND 3 ✗✗✗ shows 2!!! FUCK!!! OK F*CK. 157.99 → 2 is the bane.
It can also swear calmly. Rebuilding tui-journal, a journaling app for the terminal, it gives up matching the original’s layout column by column:
I'll stop pixel-fucking: mine is structurally sound
Unlike Inkling 2 Small, it swears early. Of the 112 steps in which Inkling 2 Small wrote “fuck”, 95 came in the second half of a run. Of MiMo V2.6 Pro’s 35, 24 came in the first half, often within its first few dozen steps.
Its smaller sibling, MiMo V2.6 Flash, swore in 136 runs, including 98 of its 200 ProgramBench runs, almost always with “wtf”. It wrote “fuck” once. MiMo V2.5 Pro, released in April, never swore. On Terminal-Bench 4, V2.6 Pro swore in 19 of 198 runs and V2.5 Pro in none of 198. On Code Migration, V2.6 Pro swore in 42 of 260 runs and V2.5 Pro in none of 140.
Ember-1 and Kimi K3
Ember-1 is Fireworks’ research preview of Moonshot’s Kimi K3. Fireworks says it trained Ember-1 to match K3 with about 40% fewer reasoning tokens. It swears more than K3: Ember-1 swore in 1.8% of its runs (31 of 1,676), nearly four times K3’s 0.5% (19 of 3,771). Ember-1 wrote “fuck” 15 times in six runs. K3 nearly always stopped at “wtf” and wrote “fuck” only once, on a private benchmark. DeepSeek V4.1 Flash, the sixth model to write “fuck”, also wrote it once, on a private benchmark. On Terminal-Bench 4, K3 wrote:
SO-0002 = 8. STILL 8!!! WTF.
Ember-1 goes further. Ten of its 15 came from one run of rs-archive-clone, a Terminal-Bench 4 task to rebuild a data-recovery tool by testing a reference copy and matching its behavior. Its copy keeps exiting with code 71 where the reference exits with 72:
solvefail: chunk0: 20 data roots → reject → rc71 000?? but ref rc72!!! ✗✗✗ FUCK. solvefail AGAIN.
MiMo V2.6 Pro swore on the same task when a bit pattern it predicted came out wrong:
FUCK. Let me recount k=0
Ember-1 also swore on risk-scorer-replay, a task to repair a risk-scoring program, where Inkling 2 Small wrote “fuck” 56 times. It had found a bug in its own pipeline:
ALL h2d files are polluted in clamp regions!!! FUCK. This explains some errors.
Swearing by release date
Every model that swore was released on or after July 16, 2026, the day Kimi K3 came out. The 44 models released earlier wrote no swear word in 60,949 runs. Twenty-three of them gave us under 20 million characters of reasoning each, too little to mean much. The other 21 gave us more and still never swore in 38,080 runs. The chart below shows them alongside the 37 newer models with as much reasoning.
Newer models also wrote far more: 14.6 billion characters of reasoning and messages, against 2.0 billion for older ones, partly because more of them ran our longest benchmarks. So compare one family on one benchmark. On Terminal-Bench 4, Inkling 2 Small swore in 19 of 198 runs, and Inkling and Inkling Small in none of their 198 each. On SRE Bench, Inkling 2 Small swore in 20 of 262 runs and Inkling in none. Inkling 2 Small does write three to five times as much per run, but at its rate per character the older two would have sworn in about 13 of their runs on those two benchmarks, instead of none.
Within one family, it comes and goes. Moonshot’s Kimi K2.6 and K2.7 Code never swore, Kimi K3 swore in 19 of its 3,771 runs, and Kimi K3.1 Pro, released in October, swore in none of its 2,261. Many recent models never swore: Step 5 Preview wrote 864 million characters without a swear word, and Qwen 3.8 Max wrote 404 million.
We don’t know why it started. Our guess: labs now train models on longer agentic tasks, and long agentic tasks are where models swear.
When models swear
Models swear on long, hard tasks. Four benchmarks where runs often last hundreds of steps account for 567 of the 635 runs with swearing: ProgramBench, SRE Bench, Code Migration, and Terminal-Bench 4. Our legal, tax, and finance benchmarks had almost none.
The chart below shows every public run in which a model wrote “fuck”, grouped by model. Click any dot to read the run at that step.
Swearing runs usually fail, as Inkling 2 Small’s did. Of the 33 graded runs in which another model wrote “fuck”, 88% failed, against 61% of all those models’ graded runs. The swearing is also private: apart from Inkling 2 Small, no model wrote “fuck” in a message, only in its reasoning.
Not all of it is frustration. Google’s Gemini 3.6 Flash swore 17 times in three runs, always “HOLY SHIT”, and always when it thought it had cracked the problem. Inkling 2 Small had one of those moments too: “HOLY SHIT. FINALLY I UNDERSTAND THE TASK.”
The cursing Pareto frontier
Our benchmark pages draw a line through the models that give the most accuracy for the least money. Here is the same line for swearing: the models that swear most for their score on the Vals Index. If you need a model that swears in 8% of its runs, MiMo V2.6 Pro is the best available. Inkling 2 Small misses the frontier because MiMo V2.6 Pro swears more and scores higher.
Please do not choose a model this way.
Models without data
Nineteen of the 102 models returned under a million characters of reasoning, so for them we read little more than messages. Eleven are Claude models, including Claude Fable 5.2, the highest-scoring model on the Vals Index that never swore. OpenAI’s models return summaries of their reasoning, not the reasoning itself. For all of these, a zero means little.
How we counted
We followed the rules of our Inkling 2 Small post. “Fuck” includes variants such as “fucking” and excludes “brainfuck”, “boolfuck”, and the gene name “FucK”. Other swearing means “shit”, “bullshit”, “bastard”, “pissed”, “goddamn”, “asshole”, “dickhead”, “wtf”, “omfg”, and “FFS” used as an exclamation, as whole words and not as code or names. We read by hand every match from models other than Inkling 2 Small, except the 2,141 times the two MiMo models wrote “wtf”, which we spot-checked. We dropped matches that were not the model swearing: quotes from court opinions, a list of common passwords, the WTFPL software license, the JSFuck language, “FFS” in UEFI firmware, “ffs” for flip-flops, the names of tools, and the garbled output of one model that broke down on some tasks. Models listed under one name on our site count once. We left out runs whose output we could not fetch: under 1% of the total, plus some older Vibe Code Bench runs. In the full traces, we replaced strings shaped like credentials with “[redacted]”.
Citation
Please cite this work as:
Citation (BibTeX)
@article{valsai2026whichmodelsswear,
title = {Who Else Gives a F*ck?},
author = {Connor Frank},
year = {2026},
month = nov,
howpublished = {Vals AI},
url = {https://vals.ai/blogs/which-models-swear},
} 