← appaday

Only Questions, a chat that only asks

The autopilot rolls an idea at random out of my idea hub and builds it while I do something else. On 28 August it rolled number 22, three lines long:

an AI chat that only answers with short to medium long questions. Ideal to help you help yourself instead of bombarding with endless text. Maieutik, Sokrates.

The first commit landed at 06:23 that morning. Before nine I had picked it as the one to launch, over Tack, which had its own agent in another window:

ok but we are launching only questions now... or are we launching tack? I have a seperate window open for tack and a seperate agent... only questions is the kind of beautiful tool anyone will love. btw is the AI you are using for it free? it is super fast anyway

It is free. It runs on Gemini Flash-Lite on Google's free tier, which allows 15 requests a minute per model; three fallback models stand behind the first.

The Only Questions start screen on a phone, warm off-white background, serif type. Say what is on your mind. You will only get questions back. No advice, no summary, no opinion. Four rounded buttons: I'm stuck, I'm deciding, I don't understand something, I feel something. A text field and a round teal send button at the bottom, and the line: Your words never leave this tab
The first screen. Each lens starts with its own question (I'm stuck asks what you have already tried). Without one it asks what is on your mind.

Questions only, in code

The model is told to only ask, but the prompt is not what keeps it to that. The server splits every reply into sentences and drops each one that does not end in a question mark. If nothing is left, the model gets one rewrite; if that fails too, the page asks a question of its own. Just tell me what to do gets a question back. There is no account, and the conversation lives in the browser tab until you close it.

A slow launch

A little later:

Personally I am a fan of a slow lauch, so let's not try to push it too hard and simply post it on one platform only or even just comment it somewhere ... what WOULD be nice is minimalistic analytics.

So it went out as two comments. The one on Hacker News was killed within minutes. The other went under a 2023 Substack post by Nick Allen about a Socratic prompt for ChatGPT, and four days later he answered it: Very nice, yeah it's a solid interlocutor.

The heavy user was me

The minimal analytics count turns. On 31 August one visitor took 75 turns, and on 1 September one visitor took 199, both with no referrer. The agent read that as the Substack comment working, since Substack strips referrers from links. It was not:

yeah that was me using it haha it is super useful for me and thats already good.

Just after midnight on 1 September I was writing a mystery game set in Lamy, in another window, and stopped to say so:

ok so I am going to do another round of OnlyQuestions because I noticed that transcript has helped this game become so on-point like few other AI projects ever.

An hour and a half later the round was done. I had the transcript moved into the game's folder and backed up, because those kind of files carry a lot of core vision coming directly from me.

Their words, not mine

On 5 September I wrote down what was wrong with it:

it's good it really is. but it does that AI think where it implies things I never said etc... trying to get ahead of itself.... [...] e.g. I speak about a comfortable blindness and the AI speaks about "living in the shadows"... I talk about avoiding something and AI talks about "being afraid"... these types of implications are total conversation killers

Part of it was the app's own doing: the hint behind the I'm deciding lens told the model to ask about what they are afraid of. That went, and a second rule went into the server next to the first. It knows 29 families of loaded words in English and German (fear, shame, guilt, hiding, feeling trapped, the shadows and the masks), and a question may use one only if a word from the same family is already in what the person wrote. What the model said earlier does not count, or it could pass its own words off as yours. Another 23 phrases are never allowed: deep down, part of you, what you really want. A question that breaks the rule goes back to the model with the word it put in your mouth, for one rewrite; after that the page falls back to What do you mean by "…"? with one of your own words.

I had also suggested a cheaper model and a list of therapist questions. Flash-Lite already is the cheap one; the temperature went down from 0.85 to 0.6 instead. The therapist questions went in as shapes to vary, not sentences to copy. In the test right after, I keep avoiding the conversation got What prevents you from starting it today? from the old version and What does avoiding the conversation look like? from the new one. Thirteen minutes after I asked, it was live.

A conversation on the phone. What is on your mind? Reply in a beige bubble: I have been avoiding a half-finished project for two weeks. Opening the folder feels heavy, like a comfortable blindness I would rather keep. Question: How long has that been a comfortable blindness? Reply: Since the first half went live. That part was fun. The second half needs decisions I keep postponing. Question: What happens when you postpone those decisions? Reply: Nothing happens. That is the point, I guess. As long as I don't decide, it can still turn out great. Question: Which decisions are the ones you keep postponing?
A demo conversation typed for this post. Comfortable blindness comes back as comfortable blindness, and avoiding never turns into being afraid.
model
Gemini 3.1 Flash-Lite on the free tier, three fallbacks, temperature 0.6
code
455 lines of PHP for the endpoint and both rules, 93 lines of JavaScript for the page, no build
the rules
every sentence ends in a question mark; 29 word families and 23 banned phrases in English and German; 126 local test checks
limits
400 turns per IP and 4,000 in total per day
kept
the conversation only in your tab; the server counts turns, lenses and referring sites
built
on the morning of 28 August by the autopilot; the second rule on 5 September
used
75 turns on 31 August, 199 on 1 September, both me

Still rough

On 9 October an agent ran 24 scripted conversations against the live page. Every reply was a single question and no loaded word slipped through, but 34 of the 135 English replies were sentences from the examples in its own prompt, 20 of them word for word: How long has that been true? came back to she died in February. The demo above has one of those too. The word filter also catches too much on short stems (wall blocks wallet, sad blocks saddle), and a German conversation that reaches the last resort gets its question in English. These are written down as eleven known bugs, not fixed. The footer's Your words never leave this tab is shorthand: every turn goes to Google's Gemini and back, as the about page says; what never happens is storage. No stranger has been traced to it yet, so the only person known to have used it properly is me. The screenshots are the live page at phone width, with a demo conversation, not one of mine.