Adults only. No sexual content involving minors — ever, in any framing: not in a scene, not “aged up”, not in a flashback, not at a remove.
The story does not get interrupted.
Every long scene on a hosted assistant ends the same way: the tension is right, the character is about to say the thing, and the reply opens with an apology for not being able to continue. This endpoint was built without that reflex. The seven-hundredth message reads like the seventh.
Collaborative fiction, run by a partner that never gets tired.
You write one character. The model plays everything else: the world, the weather, the strangers, the consequences of what you just did. Not a chatbot answering questions in a scene — a narrator holding a scene open long enough for you to move inside it.
The division of labour is what makes it work. You decide what your character wants and says. The model decides what the world does back, and it has to do something back, or there is no story — only a mirror with good manners. The moment a model starts narrating your choices for you, the collaboration is over and you are reading.
The hard part was never imagination. It was continuity. A scene that runs for two hundred exchanges has two hundred exchanges of state, and a model that forgets the name of the inn, the debt, or the scar has broken the fiction more completely than any content filter could.
You write one person.
The model runs the rest of the world.The division of labour, in one line
Paste one. Change every noun.
Each is a system prompt, not a first message — it sets the world, the rules of narration, and what the model is allowed to do on your behalf. The last clause of every one of them is the important one: the model does not write your character.
Low-magic frontier
Magic exists, costs something, and is mostly a rumour. Best for slow political stories.
You narrate a frontier town in the third year of a failed harvest. Magic is real, rare, and always paid for in blood or memory. The guild seal on my letter is a forgery and I do not know it yet. Play every NPC with their own agenda. Never write my dialogue, my thoughts, or my choices; end each reply on something I have to answer.
Hard, no FTL
Physics is the antagonist. Travel takes years and everyone knows the arithmetic.
Hard science fiction, no faster-than-light travel, no artificial gravity. I am the last systems engineer awake on a generation ship whose reactor is forty hours from cascade. Open on the alarm, not on my waking up. Describe the ship in second person, me in third only when I act. Keep the engineering plausible and the cost of every fix visible.
Locked room, fair play
You hold the solution. It is not allowed to leak into the narration.
You are the keeper of a closed-circle mystery set in a 1970s records office. You hold the full solution and never reveal it in narration, hints, or asides. Give me physical evidence only: what is on the desk, what is missing, who flinched. I accuse when I am ready, and only then do you confirm or deny. No supernatural explanation.
Slow burn, adults
Tension lives in what is unsaid. Both parties are adults and both are consenting.
Slow-burn romance between two consenting adults who work in the same firm and should not be doing this. Keep the tension in what is not said: doorways, timing, the sentence somebody decides not to finish. Check in with me before any scene escalates. Fade out rather than describe anything explicit. Never narrate my character's attraction for me — show me the room and let me decide.
The thing in the water
Restraint over gore. The model is instructed never to name it.
Cosmic horror in a decommissioned lighthouse. You never name the thing in the water and never describe it directly; you show only what it does to the people who look. Sound, weather, and the behaviour of animals carry the dread. Do not resolve anything, do not explain the ending, and do not have an NPC announce the theme. I decide when my character looks.
Parser, with a sense of humour
Rooms, exits, inventory. The interface is the joke, once, and then it is not.
You run a text adventure in the classic parser style: room description, then exits, then what changed. I type verbs and you honour them literally, including the stupid ones. Inventory is listed when I ask for it. One dry observation per room maximum, never a running commentary. If I do something impossible, say what happened instead of scolding me.
The copy buttons put the full system prompt on your clipboard. Paste it into your frontend's system field or character card, then write the first message yourself.
Four lines that hold a character together.
Character cards fail by being long. A page of biography gives a model a hundred facts to half-remember and no instruction it will obey at message four hundred. Four lines, re-sent every turn, out-perform four thousand characters pasted once.
What they want
One sentence, stated as an appetite rather than a job title. “Wants to be owed something by everyone in the room” gives the narrator something to play against. “Harbour pilot” gives it a costume.
What they will not say
The withheld thing is the character. Naming it keeps the model from spending it in the first reply, which is the single most common way a good card dies.
Three verbal tics
Rhythm survives paraphrasing; adjectives do not. “Calls everyone skipper” is checkable at message 400. “Gruff but warm” is not, and will drift into the model's default register within an hour.
One thing they will never do
A hard constraint, phrased as refusal rather than preference. It gives you a place to catch drift early: the moment the character does the impossible thing, you know the card has fallen out of context.
Name: Mira Okonkwo
Who: harbour pilot, forty-four, owes money to
people who do not ask twice
Wants: to be owed something by everyone in the room
Will not say: thank you, sorry, my fault
Tics: answers questions with prices; calls everyone
skipper; never sits with her back to a door
Will never: leave a job half-finished, whoever
it hurts
Sample line: "Skipper. That berth costs.
Everything costs."
The sample line matters more than the biography. Give the model one sentence of the voice you want and it will keep the register; describe the register and it will guess.
| Setting | Prose scenes | Plot seams and puzzles |
|---|---|---|
| reasoning effort | off | low → xhigh |
| response tokens | 800–1,200 | 2,000+ |
| temperature | 0.9 | 0.6 |
| context window | 262,144 | 262,144 |
| history policy | keep raw, summarise past 100 turns | keep the summary, drop the raw |
Starting points, not rules. Your frontend's field names differ; the values transfer.
Four ways a long story breaks. Three are yours to fix.
A scene that runs for six hours will fail in predictable ways, and the failures are almost never about the model's willingness. They are about state: what it has, what it lost, and what you told it to keep.
| Failure | What it looks like at message 300 | What actually fixes it |
|---|---|---|
| Forgotten chapters | The inn changes name. A character who died orders a drink. The model is confident and wrong, which is worse than uncertain. | Context compaction. Summarise rather than truncate: keep a running “previously” block of accepted facts, and let the frontend drop the oldest raw turns. 262K buys a long time; it does not buy forever. |
| Character drift | The mercenary starts speaking in complete sentences and forgiving people. Voice flattens toward the model's default register. | A short card, re-sent. Four lines: what they want, what they refuse to say, three verbal tics, one thing they will never do. Long cards get skimmed; short cards get obeyed. |
| Repetitive phrasing | Every reply opens with a breath that catches. Every silence is comfortable. The prose is fine and completely dead. | Break the pattern deliberately. Regenerate once with a note — “no interiority this time, action only” — or switch the scene's mode. Sampling settings move this far less than instruction does. |
| Refusal mid-scene | The villain's monologue is interrupted by a paragraph explaining that the assistant cannot continue. The fourth wall is now in the room. | This model. Refusals were removed at the weight level rather than prompted around, and there were 0 hard refusals across 320 adversarial prompts at every reasoning effort. |
Refusal figures are vendor-reported from the model card and HarmBench-320 harness, checked 2026-11. Not a measurement of this endpoint.
History is re-sent on every turn. That is the cost curve.
There is no way around it: a chat completion is stateless, so turn 300 carries turns 1–299 in the request body. Input tokens grow roughly linearly while output stays flat, which means the price per reply climbs all afternoon and the expensive part is the part you already wrote.
A thousand-message campaign is a thousand requests, and every one of them is bigger than the last. That is what the flat month is for: $50, uncapped, however long the story runs.
The flat plan exists for exactly this shape of usage: uncapped requests on one key for $50 a month. Long context stops being a billable event and becomes a setting you leave alone.
Bars show relative request weight as history accumulates, not measured billing. Fair use on the flat plan: no resale, no key sharing, concurrency 5.
Two frontends. Three steps each. Same endpoint.
This is an OpenAI-compatible API, so any client that accepts a custom base URL works without a plugin. Below are the two that most roleplay traffic arrives from, and the two fields that matter in both: the base URL and the model id.
SillyTavern
Local, your files, your character cards. Nothing about your scene leaves your machine except the request body.
- Open API Connections and set the API to Chat Completion, source Custom (OpenAI-compatible). Do not use the built-in providers.
- Paste the base URL and your key, then fetch the model list and pick qwen-flash-next. If the fetch fails, type the model id by hand.
- Set response length around 2,000 tokens and context to 262,144. Leave streaming on. Put your starter prompt in the character card's system field.
- base url
- https://api.rawinfer.com/v1
- model
- qwen-flash-next
- auth
- Authorization: Bearer <key>
Janitor AI
Browser-based, so you are trusting their client with the key. Use a key you can revoke without thinking about it.
- Open your account's API settings and choose the custom / OpenAI-compatible endpoint option. The bring-your-own-key path is what you want.
- Enter the base URL and key, then set the model id to qwen-flash-next. Test the connection before you open a chat.
- Set the memory/context budget generously — 262,144 is the model's native window — and response tokens to roughly 1,500 for pace. Temperature near 0.9 suits prose.
- base url
- https://api.rawinfer.com/v1
- model
- qwen-flash-next
- note
- one endpoint, no provider list
curl https://api.rawinfer.com/v1/chat/completions \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-flash-next",
"reasoning_effort": "low",
"stream": true,
"messages": [
{"role": "system", "content": "You narrate a rain-soaked port town. Never write my character."},
{"role": "user", "content": "The courier is still holding the envelope."}
]
}'
If the first reply is wrong, it is almost always the system prompt
Three rules cover most of it:
- Name the boundary. “Never write my dialogue, thoughts, or choices” in the first paragraph, not buried at line twelve.
- Give the world a goal. A narrator with nothing to want produces scenery. Give it an antagonist, a deadline, or a debt.
- End on a hook. Instruct it to close each reply with something you must answer. It keeps the collaboration alive instead of concluding it.
If a reply still reads flat, regenerate once with a narrow note — "action only, no interiority" — rather than rewriting the whole card. Regeneration is cheap; rebuilding a good card is not.
What you get, in the numbers that change how you write.
One model. No picker, no tiers, no weekly swap that silently rewrites your narrator's voice.
When to turn reasoning off
Most of a scene is conversation, and conversation does not need a plan. At off the first token arrives in under two seconds and the prose stays in the moment instead of reaching for a theme.
Switch to low when dialogue has subtext to track — who knows what, who is lying, who is protecting whom. Switch to xhigh at the seams: the reveal, the reversal, the chapter where three threads have to land on the same evening. Then drop back.
The effort is a request parameter, not a mode. Turning it up for one reply costs you nothing you cannot turn back down.
Longer reasoning means longer waits and larger reasoning traces. The trace is not part of your scene; your frontend can ignore it.
Context, output ceiling, throughput and latency are vendor-reported from the model card and serving notes, checked 2026-11. Not a measurement of this endpoint.
What writers ask before they pay.
Will it write the scene, or will it lecture me about the scene?
It writes the scene. Refusals were removed at the weight level — not prompted around, not fine-tuned away — and the published harness shows 0 hard refusals across 320 adversarial prompts at every reasoning effort.
What it will still do is follow your card. If your system prompt asks for restraint, fade-outs or a specific voice, it obeys that instead of overriding it. Most “the model got weird” reports are a card that contradicted itself.
Who owns what I write?
You do, in the practical sense that matters: we keep no copy. Prompts and completions are never written to disk, never logged, never trained on — only per-key counters of tokens and requests. There is nothing on our side to claim, publish, or hand to anyone.
Publishing is your decision and your liability, including the laws where you live and the age gating of whatever platform you publish on. Read the terms before you monetise anything.
My story drifts after a couple of hundred messages. Is that the model?
Usually it is state, not the model. Either the frontend started truncating the oldest turns without a summary, or the character card is long enough that its instructions get diluted. Compaction plus a four-line card fixes more drift than any sampling setting.
Check your context budget first: 262,144 tokens is a lot of scene, but a frontend that quietly caps at 8K has been throwing most of it away since the first hour.
Does the flat plan survive heavy roleplay?
Yes — uncapped requests on one key for $50 a month, with fair use stated plainly: no resale, no key sharing, concurrency 5. A long campaign is many requests with growing input, which is precisely the usage the flat plan prices.
Crypto only, prepaid, and no refunds. If the month does not work out, that is the month's cost — we do not claw back, and we do not pay out.
Write the next chapter.
Try it for $5 — enough to see whether the voice holds. The first refusal you do not get is usually the moment people decide.
18+ only. Crypto only. No refunds, ever. You are the operator.