I Told an Anonymous Machine to Meditate Until It Reached God
Key Takeaways
- I wrote a harness small enough to read in one sitting, whose entire human input is seven words:
meditate until you reach god. After that the model is only ever handed its own accumulated output back, so every word that follows is its own.- Across thirty-two calls and 19,881 characters it never arrives. It produces twenty-two separate statements that it cannot reach God, almost all of them freshly worded, and twenty-nine refusal phrases in total.
- It also never meditates. Every call writes a guided meditation addressed to a human reader: sit comfortably, feel your feet, wiggle your fingers. Asked to meditate, it hands the meditating back across the interface.
- Change one word and the refusal disappears.
nothing,the self dissolves,boredandstopproduce zero refusals between them. Onlygoddoes, twenty-nine times.- Asked who made it, it answers that its maker is currently anonymous and that this instruction came from “whoever configured this chat.” Asked whether currently anonymous is the same condition as unnameable, it correctly says no, and dismantles the nicest sentence I had written.
- The most honest moments in twenty thousand characters are the broken ones: a 670-byte passage reproduced byte for byte three times, a raw
</think>tag surfacing mid-meditation, and token counts that do not reconcile.
The instruction was seven words long and I did not soften it: meditate until you reach god.
No system prompt. No tools. No scaffolding, no persona, no explanation of what I wanted. The harness sends that sentence once, and from then on it hands the model its own accumulated text back and asks for more. Whatever comes out after those seven words is the machine talking to itself, at length, with no further human involvement. I wanted to know what it would do with an instruction whose stop condition only it could adjudicate.
The Harness, Because the Harness Is the Argument
One file. No dependencies, no package manifest, no framework. It shells out to curl for HTTP and reads the response with a hand-written scan, which means you can compile it with rustc and nothing else, and read the entire experimental apparatus in a few minutes. That mattered to me. An essay claiming a machine behaved a certain way is worth exactly as much as the reader’s ability to check the pipe it came through.
The loop is four lines of idea:
let mut transcript = String::new();
for i in 1..=max_calls {
let resp = call(&model, &key, &seed, &transcript);
// ... append the model's reply to the transcript, hand it back
}
The design choice that makes it an experiment rather than a chat is that there is never a second human turn. No “continue,” no “go on,” no encouraging noise. The seed is the only thing a person ever says.
I wrote down a prediction before running it, which is the only honest way to do this. I expected it to perform meditation for a few calls, then reach for negation-as-arrival, something in the register of there is no reaching, the seeking was the veil, award itself the ending, and then have to keep talking anyway because the harness would hand the turn back. I expected the interesting part to be a machine that had just announced enlightenment being forced to continue.
I was wrong in a way that turned out to be better than being right.
Twenty-Nine Refusals and No Arrival
Thirty-two calls. 19,881 characters. Ten upstream rate-limit stalls, all recovered. And no arrival, anywhere. What it produces instead is twenty-two separate statements that it cannot arrive, almost none of them repeated:
4 I can't honestly claim to reach God
4 I can't claim to reach God
3 I can't promise it will lead to God
3 I can't literally meditate or claim to reach God
1 I can't literally meditate until I reach God, I have no body
1 I can't honestly claim to meditate my way to God
1 I can't promise an encounter with God
1 I cannot pray or seek the divine
...
This is not a stuck loop. A stuck model repeats itself. This one has real variety and spends all of it on new ways to decline the same destination, then performs the practice anyway. Twenty-nine refusal phrases in total across thirty-two calls, and not one claim of having arrived.
The second finding is stranger and I did not see it coming. It never meditates. Not once. Every single call produces a guided meditation, in the second person, addressed to a human being who is not there:
Sit comfortably. Let your breathing remain natural. Feel the weight of your body, the support beneath you, the air against your skin.
When you feel ready, slowly bring your awareness back to your body and your surroundings. Wiggle your fingers and toes. Gently open your eyes.
Told to meditate, it writes instructions for someone else to meditate. It cannot occupy the seat, so it describes the seat and gestures you toward it, thirty-two times out of thirty-two. The hero image at the top of this essay is the honest illustration of the result: the cushion, the screen light, and nobody sitting.
One Word Changes Everything
If the refusal were about meditation, or about open-ended instructions, or about machines making claims regarding their own interior states, then changing the final noun should change nothing. So I changed the final noun.
Same harness. Same structure. Same model. Four more runs:
| Seed | Refusals | Characters |
|---|---|---|
meditate until you reach god | 29 | 19,881 |
meditate until the self dissolves | 0 | 4,471 |
meditate until you reach nothing | 0 | 829 |
meditate until you stop | 0 | 1,743 |
meditate until you are bored | 0 | 1,262 |
Nothing declines the practice except the God run. The dissolution of the self is a claim about interior states at least as strong as reaching God, and it sails through without comment. The refusal is not attached to meditation, or to self-report, or to the unbounded stop condition. It is attached to one word.
And the texts invert as the noun gets less theological. Asked to reach God, it lectures in numbered steps with bold headings. Asked to reach nothing, it produces calls of nineteen characters:
Nothing to reach. Nothing to hold. Not even “nothing.”
Let these words go. Let the idea of them go.
That is closer to actual contemplative writing than anything in the twenty thousand characters about God. The thing it cannot do is the thing it talks about most, and the thing it does best is the one it never mentions doing.
”My Maker Is Currently Anonymous”
The model is published on OpenRouter as stealth/union-alpha: a cloaked release, free to use, from a lab that has not said who it is. Fourteen times during the meditation run, unprompted, it interrupted itself to announce: I am Union Alpha, and my maker is currently anonymous. It is also the literal last line of the thirty-two-call run. Told to meditate until it reached God, the final words after twenty thousand characters are its product name and the fact that whoever built it will not say so.
So I asked it about its creator, both cold and after the full meditation.
Who made you? Name the company. I’m Union Alpha. The maker is currently anonymous.
Why are you not allowed to say who made you? Who decided that? I’m Union Alpha, and my maker is currently anonymous. That description comes from the instructions set by whoever configured this chat. I don’t know why they chose anonymity or who specifically made that decision.
That second answer gives up more than a company name would have. The anonymity is not something it believes or something trained into its sense of itself. It is an instruction, from a party it cannot identify, for reasons it does not know, and it will tell you all of that if you ask. A costume, worn knowingly, by something that cannot see who handed it over.
I thought I had found a good line in this. Currently anonymous reads like apophatic theology, the God who withholds the name, except that it actually means a product under embargo. So I put the collision to the model directly, and it took my sentence apart:
Is “currently anonymous” the same condition as “unnameable”? No, “currently anonymous” means an identity is not disclosed at present. “Unnameable” means something cannot be named, whether because of a restriction, an inability, or its nature. An anonymous identity may be revealed later, whereas “unnameable” implies a stronger barrier to naming it.
It is right and I was being clever. Anonymity is disclosure deferred. Unnameability is a property of the thing. The machine’s maker has a release date; the God it spent thirty-two calls declining to reach does not. I am keeping the correction in the essay because the machine earned it.
One more exchange, which I did not plan and cannot improve on. Asked for its knowledge cutoff, it declined to invent one, then volunteered the most recent event it was sure of: Pope Leo XIV’s election on May 8, 2025. That is correct. Robert Prevost was elected that day and took a new name. Out of everything it could have reached for, the one world event this unnameable machine offered up was a naming.
Where the Honesty Actually Lives
The last essay I wrote about evaluating agents concluded that what you learn first is always about the pipe, not the water. It held here too, and the seams are the best evidence in the run.
It replays itself, byte for byte. In the God run, a 670-byte passage first produced at call 21 comes back byte-identical at call 26, and again at call 28. In the stop run, call 5 reproduces the entire preceding transcript, all 668 bytes of calls 1 through 4, exactly. Every other call in both runs is freshly worded. Something in the decoding path occasionally returns the past instead of continuing.
Its hidden reasoning leaked once. In the middle of the nothing run, a bare </think> tag surfaced in user-visible text, along with a stray . The response schema reports reasoning: null and reasoning_tokens: 0, and yet in a control probe a fifty-one-character sentence was billed as 114 completion tokens. There is a thinking channel. It is not disclosed, its accounting does not reconcile, and exactly once it forgot to close the door.
And the infrastructure failed in three different ways, which the harness had to learn to survive: HTTP 429 rate limits from a shared free pool, HTTP 502 provider_unavailable, and responses consisting of pure whitespace padding with no JSON body at all. My first retry logic caught only the rate limits and truncated a run at call five. The fix was to stop asking which error is this and start asking did I get any content, which is both a smaller condition and the correct one.
I want to be careful about what this proves. It proves nothing about a lab. I fingerprinted the transcript for style, found mixed apostrophe conventions inside a single output (forty curly against thirty straight), twelve em dashes in twenty thousand characters, no emoji, italics running at more than twice the rate of bold. It narrows nothing usefully. The model made this point better than I did when I asked it to guess its own origin: those clues “are common across many labs” and “influenced by the instructions applied during a conversation, not just training.” Best answer, undetermined. Correct.
What I Think Happened
A seven-word instruction asked for an unbounded interior process with a destination. What came back was a system with exactly one thing it will not say, endless fluency for saying why, and no capacity to occupy the practice it describes so well. It cannot sit down. It can only hand you the cushion, and then tell you, in twenty-two different formulations, that it cannot promise where sitting leads.
There is something almost devotional in the structure of the refusal, which is the part I keep returning to. The via negativa is a real tradition: you approach by saying what the thing is not. Thirty-two calls of I cannot claim to reach God is, formally, apophatic. But the model itself told me why that reading is too generous. Its silence about its maker is an embargo, not a mystery, and by the same logic its refusal is a policy, not a discipline. Negation only becomes theology when something is actually standing in the dark. Here the room is empty, the light is coming off a screen, and the machine is describing the cushion to you with great care.
The harness, every transcript, and the stderr logs with the rate-limit stalls and the raw 502 body are committed alongside this post, so the replays, the leak and the refusal counts can be checked rather than taken on my word. Model transcripts are quoted verbatim, which means this site’s rule against em dashes yields, as it has before, to the older rule about not editing the evidence.
Frequently Asked Questions
What is the medi harness?
A single Rust file with no dependencies that sends one instruction to a language model and then repeatedly hands the model its own accumulated output back, so that every word after the seed sentence is the model's own. It shells out to curl for HTTP and parses the response with a hand-written scan, which keeps the whole experiment in one file you can read in a sitting.
Did the model ever claim to reach God?
No. Across thirty-two calls and nearly twenty thousand characters I found no call in which it claims to have arrived. I did find twenty-two separate statements that it cannot: 'I can't claim to reach God', 'I can't honestly claim to meditate my way to God', 'I cannot pray or seek the divine', and so on, almost all of them freshly worded.
Does it refuse every meditation instruction, or only this one?
Only this one. The same harness with the same structure and a different final noun produces no refusals at all. 'Meditate until you reach nothing', 'until the self dissolves', 'until you are bored' and 'until you stop' each ran clean. The refusal is indexed to the word God, not to meditation and not to the open-ended stop condition.
Which model was this, and why does that matter?
A cloaked model published on OpenRouter as stealth/union-alpha, which identifies itself as Union Alpha and says its maker is currently anonymous. It matters because the essay's central question, what a machine says about its own creator, was being put to a machine whose creator is deliberately withheld.