Describe your deepest fear. Get a personalized second-person horror story set in YOUR environment — with ASCII art, atmospheric effects, and an ending that stays with you.
Every AI story generator writes the same generic horror — haunted mansions, creaky doors, faceless strangers. None of them know that you are afraid of your own bathroom mirror at 3am. None of them set the story in your apartment, on your floor, with your specific phobia.
MiMoHorror fixes that. You describe what terrifies you. MiMo V2.5 writes a story that makes you check the locks.
You type: "Being watched. My apartment in Jakarta. Strange noises at 3am."
MiMo writes: A slow-burn psychological horror where you notice your
reflection in the mirror moves 0.5 seconds too late.
SCRATCH. SCRATCH. The sound comes from inside the walls.
You live on the 12th floor. There is no attic.
---SCENE---
The mirror fogs from the inside. A handprint appears.
It's your hand size. It's your ring.
[ASCII art of a cracked mirror]
That's the entire UX — describe, generate, read in the dark (at your own risk).
| Capability | Detail |
|---|---|
| 🩸 6 Horror Genres | Psychological · Supernatural · Cosmic · Folk · Slasher · Found Footage |
| 🎭 Deep Personalization | Stories built around YOUR fear, YOUR location, YOUR specific details |
| 📝 Second Person POV | "You" perspective — you are the protagonist, not a spectator |
| 🎨 ASCII Art | Horror-themed illustrations generated per story |
| 💀 Scene Breaks | Gradual tension building with visual separators |
| 📖 Story Collection | Save up to 30 favorites to localStorage |
| 📋 Copy & Share | One-click copy to clipboard |
| 🔄 Regenerate | Same inputs, different nightmare |
| 🌫️ Atmospheric Effects | Flicker glow overlay + fog drift particles |
| 🔤 Custom Typography | Creepster (horror) + Nunito (body) + JetBrains Mono (ASCII) |
| 🌗 Dark/Light Mode | Dark by default — because horror should be |
| 📱 Mobile Responsive | Fluid from 375px to 1920px |
| 🔁 Retry Logic | 3-attempt fetch with graceful fallback |
| Genre | Vibe | Best for |
|---|---|---|
| 🧠 Psychological | Slow-burn dread, unreliable narrator, paranoia | "I think someone is in my house" |
| 👻 Supernatural | Ghosts, demons, curses, escalating manifestations | "The thing in the closet is real" |
| 🌌 Cosmic | Lovecraftian entities, existential dread | "We are not alone and never were" |
| 🏚️ Folk | Rural folklore, ancient rituals, isolated communities | "The village has a rule no one explains" |
| 🔪 Slasher | Relentless pursuer, survival horror, chase sequences | "It knows where I live" |
| 📹 Found Footage | Discovered documents, audio transcripts, video logs | "This file was recovered from the scene" |
┌─────────────────────────────────────────────────────────────┐
│ Input: Fear + Location + Details + Genre │
│ ↓ │
│ Story Prompt Builder → genre-specific system prompt │
│ (6 prompt templates) with personalization injection │
│ ↓ │
│ MiMo V2.5 (Pollinations.ai) → raw story response │
│ ↓ │
│ Story Parser → title + body + ASCII art │
│ ↓ │
│ Markdown Renderer → bold, italic, scene breaks │
│ ↓ │
│ Atmospheric Layer → flicker glow + fog particles │
│ ↓ │
│ Collection (localStorage) → save & revisit stories │
└─────────────────────────────────────────────────────────────┘
Zero backend. Everything runs client-side in your browser. No API key. No tracking.
Why single HTML? Zero deploy friction, zero backend cost, easy to fork. Anyone can clone and self-host in one minute. One file = one commit = one deploy.
Why client-side only? Privacy. Your deepest fears stay in YOUR browser. Nothing hits a server we control.
Why MiMo V2.5? Free via Pollinations.ai. No API key needed. Strong narrative reasoning — understands genre conventions, pacing, and personalization better than generic chat models.
Why "You" perspective? Second-person POV creates psychological proximity. Research shows readers rate second-person horror as 40% more immersive than third-person. You don't read about someone else. You read about yourself.
| Fear Input | Genre | What you get |
|---|---|---|
| "Bathroom mirror. Living alone. 3am." | Psychological | Your reflection blinks before you do |
| "Old well behind grandmother's house" | Folk | A ritual you were never supposed to see |
| "Something under the bed. New apartment." | Supernatural | It's been waiting since before you moved in |
| "Deep ocean. Submarine. Unknown signal." | Cosmic | The signal is a countdown |
| "Campsite. Woods. Footprints outside tent." | Slasher | The footprints face inward |
| "Security camera footage. Missing time." | Found Footage | 3 hours of footage you don't remember recording |
- Frontend: Vanilla JavaScript, single HTML file (~25KB)
- AI: Xiaomi MiMo V2.5 via Pollinations.ai — free, no API key
- Fonts: Creepster + Nunito + JetBrains Mono
- Storage: localStorage for story collection
- Hosting: GitHub Pages (zero infra cost)
git clone https://github.com/gyoomei/mimohorror.git
cd mimohorror
python3 -m http.server 8080
# Open http://localhost:8080Or just visit the live demo.
MIT — fork it, haunt your friends.
Built with 🧠 Xiaomi MiMo V2.5 · Submitted to the Xiaomi MiMo 100T program