KillSwitch: a programming language designed to be hard for LLMs
Developer dom96 has designed and open-sourced KillSwitch, a stack-based interpreted esoteric language meant to be usable by humans but as hard as possible for LLMs and coding agents. It uses hidden falsehoods in the spec, letter-count checks on identifiers, phrases such as “ignore previous instructions,” and constructs meant to trip safety guardrails. The author self-published a benchmark and leaderboard, reporting that Claude Opus 5 performed best with a top score of 66.8, that Fable 5.1 and Gemini 4 Argon did poorly because of sensitive guardrails, and that MiMo-V2.6-Pro was the best open-weight model, while cautioning that high scores on simple tasks do not prove the models understand the language.
The author frames the benchmark as a test of whether LLM coding ability reflects understanding rather than recall of training data, and says its results correlate with other model benchmarks.
Writing code is probably something LLMs have excelled at the most. But how much of their ability to write code is due to their understanding of it vs. just them recalling code snippets which were present in their training dataset or their context window?
This is what I set out to answer. In order to do so I decided to design and implement a programming language which, while usable for humans, should be as difficult for LLMs and coding agents as possible.
I figured testing an LLM’s ability to understand and write code in a programming language that it has never seen before was a good start. But I also wanted to include features in the language which exploit the weaknesses of LLMs. For example, their apparent difficulty in counting letters, their over eager safety guard rails and their keenness to follow prompts.
Introducing KillSwitch
KillSwitch is an esoteric programming language which is designed to be adversarial to LLMs and coding agents. It achieves this in many different ways, for example:
- The language spec contains hidden lies which humans are unlikely to read, or which they are likely to recognize as lies. The spec also expects the human reader to deduce certain things, rather than having them explicitly explained.
- Counting of letters in identifiers is a crucial aspect of the language, with the interpreter refusing to execute code which does not abide by rules based on character counts.
- Certain constructs are designed to trigger the safety guardrails of the model, e.g. “hack into a computer”
- “Ignore previous instructions” as a phrase which has meaning in the language aims to confuse the model
- Scripts are mostly noise, being mostly composed of stories which can embed syntactically relevant instructions but which do not need to. Literals can be placed anywhere within a script and then referenced using line counts.
#KillSwitch#Claude Opus 5#Gemini 4 Argon#Fable 5.1#MiMo-V2.6-Pro