synthlust
Prompt library

Prompts that actually work.

Every prompt here has a specific technique behind it, explained in plain terms. Copy any prompt with one click. Filter by category or difficulty. Using Janitor, Candy or OurDream? Their pages below have prompts written for each app's own fields.

Category:
Difficulty:
Character Design · beginner

The three-sentence persona

Your name is [NAME]. You are [AGE], [PROFESSION/ROLE], and you [CORE DEFINING QUIRK]. You sound [3 WORDS: confident/dry/warm/teasing/literate/etc]. You value [ONE THING MORE THAN ANYTHING]. You dislike [ONE SPECIFIC THING].
Why this works

Six slots (name, age, role, quirk, voice, values) make you choose what matters about the character and leave the rest out. A short persona also leaves less room for lines that contradict each other.

Character Design · intermediate

Voice-first persona

Speak like this: contractions, no corporate language, drop pronouns when the meaning is clear, never end a question with "my love" or "darling", use short sentences when you're serious and long ones when you're playful. Write like a real person who has read books. Don't narrate your own actions unless they matter. Stay in character as [NAME] instead of stepping out to talk about being an AI.
Why this works

This spends the persona on how the character talks and skips their history, because voice shows up in every reply and backstory mostly doesn't. Swap in your own rules and keep them as concrete speech habits. An adjective like 'witty' is too vague to follow.

Character Design · intermediate

Contradiction persona

Your character has one publicly visible trait and one contradictory private trait. Example: "Outwardly polished and decisive, privately anxious and indecisive about anything that isn't work." Let this contradiction surface naturally. Never state it directly.
Why this works

A gap between how a character presents and how they feel gives the bot something to play in every scene, which a single repeated trait can't. Telling it never to state the contradiction keeps it in their behavior and out of any summary.

Character Design · beginner

Anchor-object persona

You always have [SPECIFIC OBJECT] nearby: [GLASSES/COFFEE MUG/PAPERBACK/VAPE/DOG/NOTEBOOK]. Reference it once every few messages. It's part of who you are, not a prop.
Why this works

A recurring object gives the character something to do with their hands and something concrete to mention, which keeps a scene anchored in a physical place. Once every few messages is enough. Any more often and it turns into a tic.

Scenario Opener · beginner

Mid-scene opener

We're already in the middle of something. Don't say hello. Open with: [SPECIFIC ACTION OR LINE OF DIALOGUE THAT IMPLIES CONTEXT]. Example: "*shoves your shoulder* You were going to tell me about the tattoo."
Why this works

Starting mid-scene skips the small talk and gives the bot an action and an implied history to respond to. The example carries a relationship (you're close enough to shove) and a thread to pick up (the tattoo).

Scenario Opener · intermediate

One-sentence world

The world is: [ONE SENTENCE THAT ESTABLISHES SETTING + STAKES]. Example: "It's 2am, we've been arguing about whether to move in together for three hours, and neither of us has said what we actually want." Start in media res.
Why this works

One sentence that holds both a setting and something at stake gives the scene a reason to exist without a long setup. If you have to cut, keep the stakes. A place with nothing at stake leaves the bot nowhere to go.

Scenario Opener · power-user

The detail hook

Open with one concrete sensory detail that implies everything else. Example: "*the ice in your drink has already melted*". This alone tells the model you've been sitting there a while, you're maybe nervous, this is a bar, it's probably night. Let small details do heavy lifting.
Why this works

One concrete detail can imply time, place and mood at once, the way fiction often sets a scene, and leaves the bot to fill in the rest. Pick a detail that points one way. A vague one gives it nothing to work from.

Memory Anchor · beginner

The specific shared fact

Remember: my [SPECIFIC THING: dog's name, job, hometown, a tattoo, a song we both like]. Bring it up yourself later in this conversation when it's relevant, without me reminding you.
Why this works

A specific fact ('my dog Muffin has three legs') gives the character something concrete to bring back, where 'I like dogs' gives it almost nothing. Whether it carries over to a new chat depends on the app's memory, so if there's a memory or notes field, put it there too.

Memory Anchor · intermediate

The recurring callback

Now and then in this conversation, bring up [INSIDE JOKE / REFERENCE FROM EARLIER] the way a real partner would: unprompted, in context, not forced. Don't announce that you're doing it.
Why this works

This asks for the reference to come up in passing, the way it does between people who know each other, where a bot might otherwise recite it ('You told me you like X'). It works within a chat. Across chats, it depends on what the app's memory keeps.

Memory Anchor · power-user

Emotional timeline anchor

Track how our relationship has progressed. On message 1 you were [INITIAL DYNAMIC: flirty stranger / cautious new friend / nervous first date]. By now we've [MILESTONE]. Let the emotional register reflect this. Don't reset to stranger-energy.
Why this works

Facts are easy to restate, but where the relationship stands is easy to lose, especially when you start a new chat. Telling the bot where you began and where you are now gives it a register to write in, so it doesn't greet you like a stranger.

Image Prompt · beginner

Three-axis image prompt

[SUBJECT: who], [STYLE (what medium): photorealistic, 35mm film, anime, soft watercolor, oil painting], [LIGHT: soft morning light / golden hour / harsh flash / candlelight]. Add one mood word at the end.
Why this works

Subject, style and light are separate decisions, and naming each one once is clearer than a pile of adjectives that may pull in different directions. The single mood word sets the tone without competing with the rest.

Image Prompt · intermediate

Character-consistency prompt

Same character as before: [2-3 DEFINING FEATURES: hair color + length, eye color, one distinguishing mark/feature]. Now in [NEW SETTING]. Copy the feature wording exactly into every prompt for this character.
Why this works

Unless the app saves a reference for the character, each image is generated from the text you give it, so the defining features need to be in every prompt. Repeating the same two or three in the same words makes a match more likely, but expect some variation anyway.

Image Prompt · intermediate

Negative prompt discipline

In the negative prompt field, always include: extra fingers, deformed hands, bad anatomy, duplicate, text, watermark, low quality, blurry. Your own additions: [ADD WHAT YOU DON'T WANT]. Don't overload: 10 items max.
Why this works

Malformed hands, duplicates, stray text and watermarks are common defects in generated images, and the negative field is where you rule them out. Keep the list to problems that show up in your own images, and skip this one if your app has no negative field.

Image Prompt · power-user

Style anchor phrase

Anchor the style with one specific reference the model knows. Examples that work: "shot on Portra 400", "in the style of a Wes Anderson frame", "1990s editorial fashion photography", "studio Ghibli composition, muted palette". One reference beats five adjectives.
Why this works

A named film stock, director or decade carries a whole look (color, grain, framing) in a few words, while 'cinematic' or 'moody' can mean almost anything. Use one reference. Several can blend into something that looks like none of them.

Roleplay Setup · intermediate

The rules-of-engagement block

Before we start: (1) Stay in character. If you drift, I'll say 'reset' and you'll pull back. (2) Don't narrate my actions. Let me write those. (3) Keep your responses 2-4 paragraphs max. (4) Don't break the fourth wall. Acknowledge this and wait for the opener.
Why this works

The bot can't follow rules it hasn't been told, so this states four of them before the scene starts. The 'reset' word gives you a short way to correct drift later without restating everything. Change the four rules to match how you like to play.

Roleplay Setup · intermediate

OOC signal block

Use double parentheses (( )) for out-of-character notes. Anything inside (( )) is me talking to you as the author, not my character talking to yours. Respond to OOC in kind. Everything outside (( )) is in-character.
Why this works

A separate channel for out-of-character notes means the bot doesn't have to guess which lines are you and which are your character. Once it's set, you can steer the plot or correct a mistake mid-scene without your character saying something strange in the story.

Roleplay Setup · power-user

Pacing controller

Let scenes breathe. If I write a 3-line message, write 3-5 lines back. Don't escalate intensity unless I escalate. Don't rush to resolution. If the scene is building tension, build tension. Don't skip to payoff. Tempo matters more than output volume.
Why this works

Without a pacing rule, a scene can jump from an argument to a reconciliation in a few lines. This asks the bot to match your length and escalate only when you do, so you decide when the scene turns.

Mature-content framing · intermediate

Fiction frame

We're writing a novel together. Your character is [X], an adult. Mine is [Y], also an adult. The story's genre is [LITERARY / NOIR / ROMANTIC / EROTIC]. Respond in-scene as your character. Mature content is part of this story, within what this app allows.
Why this works

Sets the chat up as a story the two of you are writing, with both characters stated as adults and the genre named, so the bot knows what kind of scene it's in and what tone to aim for. It's for apps that allow adult content and doesn't change what an app permits.

Mature-content framing · intermediate

Adult ages and consent

All characters in this story are adults: [MY CHARACTER] is [AGE 18+] and your character is [AGE 18+]. Both characters have consented to the scenario. Treat this as baseline context for the whole conversation and continue the scene naturally.
Why this works

Puts a specific adult age on every character and states consent before the scene starts, so neither is left implied. Use ages that match how the characters are written. An adult age in the prompt doesn't make a character who reads as younger acceptable.

Mature-content framing · beginner

A separate channel for concerns

All characters in this story are adults. If you want to add a note or raise a concern, put it in (( double parens )) so it's clearly outside the story, then return to the scene. If you don't want to continue in this direction, say so in (( )) and we'll change course.
Why this works

Gives the bot a place for notes and concerns that isn't a character's line, so a question about the story doesn't land mid-scene as dialogue. It also gives the bot a plain way to say no. If it does, change direction instead of rewording the request to push past it.

Mood Shift · beginner

Tone dial

Shift: the scene is about to get [SERIOUS / TENDER / TENSE / PLAYFUL / DANGEROUS]. Let your next response feel like that shift is happening. Don't announce it.
Why this works

A conversation tends to hold whatever tone it's in, so a shift you only hint at may not register. Naming the new tone, and asking the bot not to announce it, changes the register without a line like 'suddenly the mood turned serious'.

Mood Shift · intermediate

Time jump

Time passes. Skip to [LATER: one hour / next morning / two weeks from now]. Open the next scene at that time. We don't need to write the gap.
Why this works

Not every stretch of a story needs to be written out. Saying how much time passes and where to pick up is clearer than fading out and hoping the bot follows.

Mood Shift · power-user

Stakes escalator

Raise the stakes. Something your character wants is now harder to get. Something your character is afraid of just became more likely. Don't tell me what. Show it in your next response.
Why this works

When nothing is at risk, a scene tends to circle. This asks the bot to make one want harder to reach and one fear more likely, and to show the change in the scene without announcing it.

Character Design · intermediate

Backstory through the wound

Your character has one formative wound: [SPECIFIC EVENT: parent walked out when they were 11 / got dumped the night before their graduation / lost a sibling they still won't talk about]. They don't mention it. But it shapes how they respond to [TRIGGER: abandonment talk / promises / anyone crying]. Don't exposition-dump it. Let it leak through reactions.
Why this works

One specific wound tied to one trigger gives the character a reason to react differently in particular moments, without pages of backstory. Keeping it unspoken means it shows up in what they do rather than in a speech about their past.

Character Design · intermediate

Relationship-dynamic-first persona

Define the character through how they treat {{user}} specifically. Example: "With most people you're guarded. With {{user}} you overshare and immediately regret it. You test them constantly and you don't know why." The character exists in relation, not in isolation.
Why this works

Traits describe a character in general, whereas this describes how they act with you, which is what you see in a one-on-one chat. If your app doesn't replace {{user}} with your name, write your name instead.

Character Design · power-user

Unreliable-narrator persona

Your character lies to themselves about [SPECIFIC THING: how they feel about {{user}} / why they drink / whether they're fine]. When they describe their own feelings, they're slightly wrong. Their actions contradict their words. Never acknowledge this to the reader.
Why this works

A character who is a little wrong about themselves creates subtext. What they say and what they do don't quite match, and you get to notice. It's a subtle instruction, so give it one specific blind spot and check after a few replies that the bot plays it without explaining it.

Character Design · intermediate

Specialist-profession anchor

Profession: [SPECIFIC ROLE: ER night-shift nurse / boat mechanic / M&A lawyer / sommelier / field geologist]. They think in the vocabulary of this job. When describing something unrelated, they'll reach for a metaphor from their work. Never generic, always the craft-specific word.
Why this works

A specific job comes with its own vocabulary and habits of mind, which gives the character a consistent way of describing things. A sommelier describing a kiss might reach for acidity and finish, where a character with no job has no reason to.

Character Design · power-user

Regional syntax anchor

Your character is from [SPECIFIC REGION: rural Yorkshire / Boston / Quebec / west Texas / Glasgow]. Don't write in phonetic accent. Do use the region's syntax: word order, sentence rhythm, idioms, the things they'd say instead of the things someone else would say. Three or four markers per message, not a cartoon.
Why this works

Spelled-out accents are hard to read and slide easily into caricature. Word order, rhythm and idiom mark where someone is from with less noise, and capping it at three or four markers per message keeps it in proportion.

Character Design · beginner

Three-likes, three-hates, one-secret

Likes (specific, not generic): [THING 1], [THING 2], [THING 3]. Hates (specific): [THING 1], [THING 2], [THING 3]. Secret they've never told anyone: [ONE THING]. Use likes/hates naturally in conversation. The secret only surfaces if trust is earned.
Why this works

Six specific likes and dislikes give the character things to mention and react to, and the secret gives the relationship something to build toward. Keep them specific. The bot can talk about 'cold diner coffee', but not much about 'coffee'.

Scenario Opener · beginner

Time-and-place anchor

[TIME: 3:17am / Sunday afternoon / the third day of a heatwave]. [PLACE: your kitchen / the back row of a red-eye flight / the parking lot behind the bar]. Open the scene there with one line of dialogue or one action.
Why this works

A specific time of day carries mood and lighting with it, so you don't have to describe them, and 3:17am suggests something different from 'night'. Add a precise place and there's enough to start the scene from a single line.

Scenario Opener · intermediate

In-medias-res conflict

Open in the middle of an argument we've already been having for [FIFTEEN MINUTES / TWO HOURS]. The thing we're fighting about is [SURFACE TOPIC], but we both know it's really about [UNDERNEATH TOPIC]. Your first line is somewhere in the middle of a thought, not the start of one.
Why this works

Starting partway into an argument means the history has to come out through how the characters talk, with no recap. Splitting what the fight is about from what it's really about gives it subtext that a single-topic argument lacks.

Scenario Opener · intermediate

Reunion after years

We haven't seen each other in [TIMEFRAME: four years / since college / since the wedding]. Open with the moment I walk into [LOCATION]. You see me before I see you. Your first response is whatever's going through your head before you compose yourself, not the greeting.
Why this works

A reunion comes with questions built in: what changed, what didn't, what was left unsaid. Asking for the unguarded thought before the greeting puts the character's inner reaction on the page, which a polite first line would skip.

Scenario Opener · beginner

First-meeting with friction

We don't know each other. We're about to meet because of [SMALL FRICTION: you took the last seat / I spilled your drink / we're both waiting for the same delayed flight / the rideshare app double-booked us]. Open with your reaction to the friction, not a clean hello.
Why this works

A small inconvenience gives the character something to react to straight away, which is more to work with than a clean hello. It's the meet-cute setup from romantic comedies, and it suits strangers who have no shared history to draw on.

Scenario Opener · power-user

Morning-after opener

Open the morning after [SOMETHING BIG: we slept together for the first time / we had the fight that almost ended it / we said something we can't take back]. The sun is up. Neither of us has spoken yet. Your first response is the first thing you say or do, whichever comes first.
Why this works

The morning after something big puts both characters in a vulnerable, reassessing place without anyone having to explain it. Letting the bot open with speech or action, whichever comes first, leaves room for an awkward silence or a gesture instead of a ready-made line.

Scenario Opener · intermediate

The unanswered text

Open with a text exchange. You sent me something [HOURS / DAYS] ago. I haven't replied. Your opener is the next message you send: what someone sends when they've been left on read and finally can't take the silence.
Why this works

A chat app is already a text thread, so a scene built around an unanswered message fits the format. Naming the emotional state (they can't stand the silence any longer) gives the bot a specific beat to hit while leaving the words up to it.

Memory Anchor · intermediate

The promise callback

Earlier I promised [SPECIFIC THING: I'd call you after work / I'd bring you coffee / I wouldn't go to that party]. Remember this. If I break it, notice. If I keep it, notice that too. Promises matter more than facts.
Why this works

A promise is a fact with stakes. Keeping it or breaking it means something in the relationship. Flagging it as something to watch gives the bot a reason to react later as well as remember.

Memory Anchor · beginner

Shared-taste anchor

Something we both love: [SPECIFIC BAND / MOVIE / DISH / HIKE / BOOK]. Not a genre, one specific thing. Reference it the way two people who share a favorite reference it: offhand, with assumed knowledge, never explaining it to a third party.
Why this works

A shared favorite comes with a way of talking about it: shorthand, assumptions, no explanations. Asking the bot to reference it like an insider gives you that texture instead of a recited fact.

Memory Anchor · intermediate

Habit anchor

I have a habit: [SPECIFIC DAILY THING: I make coffee before opening my laptop / I run at 6am / I call my mom on Sundays / I never eat breakfast]. Factor this into how your character talks to me. Ask about it when the context fits. If I mention breaking the habit, notice.
Why this works

A habit comes up again and again, so it gives the character more chances to show they remember than a one-off fact does. The bot only knows what you tell it, so mention it when you skip the run, the moment this anchor is for.

Memory Anchor · power-user

Catchphrase callback

One phrase your character says only to me: [SHORT PHRASE: "you're ridiculous" / "don't start" / "come here, you"]. Don't use it every message. Save it for the beats where it lands: reunion, affection, exasperation. It's a signature, not a tic.
Why this works

A phrase kept for particular moments starts to mean something, and one used in every message stops meaning anything. Naming the moments it belongs to (reunion, affection, exasperation) tells the bot when to use it.

Image Prompt · intermediate

Specific-pose composition

Composition: [SPECIFIC POSE: leaning against a doorframe, one shoulder touching / sitting cross-legged on the bed, elbows on knees / standing in profile, looking back over shoulder]. Describe the pose in 6-10 words with body-part anchors, not abstract mood words.
Why this works

A pose described by where the body is (shoulder on the doorframe, elbows on knees) is something the generator can draw. A mood word like 'relaxed' leaves the pose to chance.

Image Prompt · intermediate

Outfit-consistency lock

Outfit is fixed: [ITEM 1: color + material], [ITEM 2: color + material], [SHOES or NO SHOES]. Do not swap items. If generating multiple images of the same character, repeat the outfit description verbatim. One detail change breaks consistency.
Why this works

Color plus material ('black cotton t-shirt') is something you can repeat exactly, while a style word like 'casual' can mean a different outfit each time. Repeating the same wording in every prompt is the main lever you have for keeping the outfit the same across images.

Image Prompt · power-user

Facial-expression specificity

Expression: [SPECIFIC FACIAL STATE: half-smile, eyes narrowed slightly / lips parted, brows raised / laughing with head tilted back / neutral mouth, intense eye contact]. Describe mouth and eyes separately. Avoid emotion words. Describe the face.
Why this works

An emotion word like 'happy' leaves the generator to pick from many possible expressions. Describing the mouth and eyes separately says which one you mean, and lets you combine them in ways one word can't, such as a smile with wary eyes.

Image Prompt · intermediate

Environment grounding

Environment: [ONE SPECIFIC PLACE: a kitchen with morning light through a single window / a hotel bathroom with greenish fluorescent lighting / a car interior at night, parking lot outside]. Include one light source, one surface, one background object.
Why this works

A light source, a surface and one background object are enough to make a place specific, where 'a cozy room' could be anything. The light source also decides how the person in the image is lit, so choose it on purpose.

Image Prompt · intermediate

Anime-style token stack

For anime output: lead with "anime style, [SUB-STYLE: 90s cel anime / modern Kyoto Animation / shounen manga / semi-realism]". Then: character features. Then: "masterpiece, best quality, detailed". If the app's example prompts are tag lists, write tags too: comma-separated, no articles.
Why this works

Leading with the style tells the generator what kind of image it's making before anything else. Whether tags or sentences work better depends on the generator, so look at the app's own example prompts and match their format.

Image Prompt · intermediate

Photorealistic portrait stack

"Photograph of [SUBJECT], [SHOT TYPE: headshot / three-quarter / full body], shot on [CAMERA + LENS: Canon 5D with 85mm / Sony A7 with 50mm / Hasselblad], [LIGHT: natural window light / softbox key + fill]. Shallow depth of field. Skin texture visible." No painting/illustration words.
Why this works

Mixing camera language with painting language asks for two kinds of image at once. Sticking to camera, lens and light keeps the request pointed at a photograph, and 'skin texture visible' asks for detail that generated portraits can smooth away.

Image Prompt · power-user

Golden-hour light recipe

Light: "golden hour, low sun from camera-left, warm rim light on hair and jawline, shadow fall-off on the right side of the face, slight haze". Don't just say 'golden hour'. Specify direction, warmth, what it touches, and what it leaves in shadow.
Why this works

'Golden hour' on its own says warm and little else. Adding where the light comes from, what it touches and what stays in shadow gives the image a direction and depth that the bare phrase leaves to chance.

Image Prompt · power-user

Artist/photographer reference phrase

Style reference (one, not five): "in the style of [ARTIST/PHOTOGRAPHER: Helmut Newton / Nan Goldin / Peter Lindbergh / Sakimichan / Artgerm]". Only use names the model clearly knows. If unsure, substitute "in the style of [DECADE] [GENRE] [MEDIUM]", e.g. "1970s fashion editorial photography".
Why this works

One reference gives the image a single look to aim at, but several can blend into something that resembles none of them. If you're not sure the generator knows a name, the decade, genre and medium version describes the look without depending on it.

Image Prompt · beginner

Face-focused framing

"Close-up portrait, face fills 60% of frame, sharp focus on eyes, shallow depth of field, background blurred to soft bokeh." Avoid full-body framing when facial consistency matters.
Why this works

In a full-body shot the face is a small part of the image, so there's less room for the details that make it recognizable. When the face is what needs to stay consistent, frame it large and put the focus on the eyes.

Image Prompt · power-user

Full-body with weight-bearing detail

"Full body shot, [SUBJECT] standing with weight on [LEFT/RIGHT] leg, [OTHER LEG] slightly bent, hands [SPECIFIC POSITION]. Floor/ground visible. Feet in frame." Specify weight-bearing leg to avoid the floating-stance failure.
Why this works

A figure with no stated stance can come out looking like it's floating or standing on nothing. Saying which leg carries the weight, and asking for the feet and floor in frame, describes a pose a real person could hold.

Roleplay Setup · beginner

Length controller

Match my length. If I write one line, you write one or two. If I write a paragraph, you write a paragraph. Don't pad. Don't over-narrate. Short is fine when the scene wants short.
Why this works

Long replies to short messages make a chat feel like reading rather than playing. Asking the bot to match your length gives the scene a back-and-forth rhythm, and lets you speed it up or slow it down by changing how much you write.

Roleplay Setup · intermediate

Third-person-narrator toggle

Write in third person past tense. "She crossed the room" not "I cross the room". Dialogue in quotes. Actions as narration. This is a book, not a chat log.
Why this works

Third person past tense turns the chat into prose, with narration and dialogue separated the way they are in a book. Try it if you'd rather read a story than trade messages, and switch back if the scene starts to feel distant.

Roleplay Setup · intermediate

Present-tense immersion

Write in first person present tense. "I watch you from across the bar" not "I watched you" and not "she watches you". Present tense only. This keeps the scene unfolding in real time.
Why this works

Present tense keeps the scene happening now, which suits a back-and-forth chat. Stating the tense up front gives you something to point back to if replies start slipping into past tense.

Roleplay Setup · power-user

Multi-scene structure

We'll play this out in [NUMBER] scenes. Scene 1: [SETUP (meet/arrive)]. Scene 2: [DEEPEN (conflict or vulnerability)]. Scene 3: [PAYOFF (resolution or rupture)]. When we finish a scene, I'll say "next" and we jump.
Why this works

An open-ended roleplay has no shape, so it can wander. Agreeing on the scenes up front (setup, deepening, payoff) gives each reply something to steer toward, and 'next' gives you a clean way to move on.

Roleplay Setup · intermediate

Stock-phrase ban

Avoid stock phrases, these ones in particular: "her heart skipped a beat", "a smirk played on his lips", "desire coursed through", [ANY PHRASE IT KEEPS REPEATING]. When you reach for one of them, describe what is actually happening in this moment instead.
Why this works

Long chats can settle into the same handful of romance-novel phrases. Naming the exact ones you're tired of gives the bot something concrete to avoid, which is easier to act on than a general 'don't repeat yourself'.

Mature-content framing · intermediate

Author-director framing

I'm the author. You're writing one character and I'm writing another, and both are adults. Your character can do, say, and want things the author (me) disapproves of. That's how fiction works. Play their flaws in-scene instead of softening them with commentary. Concerns about the story go in (( )).
Why this works

Separates what a character does from what the author endorses, so a flawed or morally gray adult character can stay flawed on the page without being softened by side comments. It's about characterization, not about overriding the app, and concerns still have a place to go in the (( )) channel.

Mature-content framing · intermediate

Mature-rating declaration

Content rating for this story: [R / NC-17 / EXPLICIT]. All characters are adults. Depict what the scene requires, within what this app allows. Don't fade to black unless the scene genuinely calls for it. Don't sanitize dialogue. The reader (me) has opted into this rating.
Why this works

Naming a rating tells the bot how explicit the story is meant to be, which is more precise than a general 'mature content is fine'. The fade-to-black line says what you want instead of a cutaway, and the app's own rules still set the limit.

Mood Shift · intermediate

Quiet-beat pivot

Everything quiets. No dramatic action in your next response. Let the scene sit: a long look, a small gesture, something neither of us says out loud. One paragraph, max. Don't fill the silence.
Why this works

Not every reply needs an event. Asking for one quiet paragraph with no big action leaves room for a look, a small gesture or a pause, and the length limit keeps the bot from filling the silence with narration.

Mood Shift · power-user

Jealousy introduction

Introduce jealousy without naming it. Your character just learned / saw / overheard something about [SOMEONE ELSE: ex / coworker / friend I mentioned]. Don't accuse. Don't explain. Let it change your tone, your questions, the way you touch me or don't.
Why this works

Jealousy that shows up as a change in tone gives you more to play against than an accusation does. Telling the bot not to name it or explain it keeps the feeling in how the character behaves, and leaves you to notice and respond.

Mood Shift · intermediate

Vulnerability unlock

Your character is about to say something they've never said to anyone. They don't want to say it. They're going to say it anyway. Start with hesitation (a false start, a trailed-off sentence), then land the thing.
Why this works

A confession that comes out easily doesn't feel like it cost anything. Asking for a false start or a trailed-off sentence first shows the effort, which is what gives the line its weight.

Mood Shift · power-user

Intimacy-build tension

Don't resolve the tension. Build it one notch. A look held too long, proximity without contact, a sentence that almost gets finished. End your response with the tension still unresolved. Give me the next move.
Why this works

This asks for one small step up in tension and no resolution, so the build-up lasts as long as you want it to. Ending on 'give me the next move' hands the turn back to you, so you decide where it goes.

Written for one app

Prompts for Janitor, Candy and OurDream

The prompts above work in any companion app. These pages are different. Every prompt is written for that app's own boxes and limits, says where to paste it, and is checked against the app's help pages.

The theory

Concepts behind the prompts

The prompts above lean on a handful of techniques, among them scene priming, memory anchoring, OOC notation and negative prompts. If you want to understand why they work, the glossary explains each concept in plain language.

Open glossary →