hush

Hush

Hush is a local-first idle horror game built with SvelteKit.

The player survives by managing when to check the signal, when to stay quiet, and how predictable their behavior becomes. Opening the app, repeating actions, and returning too often can all teach the unseen listener how to find the player.

Gameplay

Status Terms

The UI intentionally avoids exact numbers during normal play.

Green is safer, yellow is unstable, and red is dangerous.

Development

Install dependencies:

npm install

Run the dev server:

npm run dev

Run type and Svelte checks:

npm run check

Build for production:

npm run build

Preview a production build:

npm run preview

Debug Mode

Open the app with:

?debug=true

Debug mode:

Example:

http://127.0.0.1:5173/?debug=true

Persistence

Hush stores progress locally in localStorage.

Current keys:

There is no backend, login, cloud save, leaderboard, or database in the MVP.

PWA

The app includes basic PWA support:

The service worker is registered only outside SvelteKit dev mode, so local development does not get stuck with stale cached assets.

Project Structure

src/lib/game/          Core simulation, actions, save/load, balance, death logic
src/lib/components/    Svelte UI components
src/routes/+page.svelte Main game screen
static/                PWA manifest, icons, service worker
documentation.md       Original MVP design documentation

Design Notes

The listener is never shown. The horror comes from logs, ambiguity, timing, pattern recognition, and corrupted information.

The game should stay small, readable, and tense rather than becoming a complex resource-management dashboard.