Skip to content

Latest commit

 

History

66 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mischief

Mischief

Version License Stars Last Commit Repo Size Downloads CI PRs Platform Secrets

The open-source platform for desktop entertainment.

Real personality for your computer. Harmless desktop creatures, playful window antics, cursor surprises, and ambient companions — all optional, all reversible, all yours.

100% offline & privacy-first. No accounts. No telemetry. No analytics. Runs entirely on your machine.

Mischief in action


📖 Table of Contents


🎬 See it in action

Spin Dance Hide Idle
Whiskers spinning Whiskers dancing Whiskers hiding Whiskers idle

Every companion runs playful procedural behaviors like these — spin, dance, hide, peek, pounce, and sneak — right on your desktop.


🚀 Features

🎭 A platform, not an app

  • Experience Packs — declarative, data-only content anyone can create: characters, antics, ambience, seasonal effects
  • Plugin SDK — sandboxed extension host for real logic without touching core

⚖️ Deterministic personality engine

  • Events carry priority, conditions, and cooldowns — the companion never spams you
  • Intensity levels from Silent to Chaos — you decide how much mischief you want
  • The companion reacts to your real work: sleeps after inactivity, yawns when you return, wanders the desktop, perks up when you click it
  • Interactive mode — click your companion and watch it react (off by default; click-through preserved)
  • Settings window — tune intensity (Silent → Chaos) and personality live, persist your preferences
  • 19 Flagship Characters — Zen (Red Panda), Kumo (Cyber Fox), Astra (Stardust Dragon), Barnaby (Capybara), Pippin (Penguin), Pocus (Ghostling), Byte (Vintage Bot), Nami (Sea Otter), Pixel-Rex (Pixel Dino), Lumina (Crystal Phoenix), Mochi (Shiba Baker), Voxel (Mecha Cat), Bramble (Hedgehog), Sola (Sunflower), Whiskers (Cat), Spectra (Ghost), Sparky (Robot), Pixel (Pixel Buddy), and Bloop (Sample Creature) — each with unique species-themed dialogue
  • Character-Specific Speech — every companion has its own dialogue pools for petting, idle moments, power events, and more; user-imported companions get a voice that matches their personality
  • Anti-Repeat Chatter — a shuffled picker never repeats the same bubble twice in a row, so the companion stays fresh
  • Behavior-Aware Reactions — the companion comments on its own antics (hiding, peeking, spinning, pouncing, sneaking, dancing)
  • Playful Behaviors — six playful behaviors (hide, peek, spin, pounce, sneak, dance) run for every companion, including custom imports
  • Combo Streaks — consecutive pets trigger escalating reactions (Combo x2! 🎉, Super happy!)
  • Developer Triggers — IDE save, git commit, and build green reactions for your workflow
  • Wellness Reminders — hydration and posture check nudges during work hours, plus deep-focus and weekend greetings

🛡️ Safe by design

  • Every effect is reversible, optional, and transparent
  • Manifests validated at load — a strict security boundary before any third-party content runs
  • Mischief is a mischievous friend — never malware, never destructive

🔒 Privacy-first & offline-first

  • No accounts, no telemetry, no analytics — zero network calls by default
  • Works entirely offline on Windows, macOS, and Linux

🧩 Built for contributors

  • Pure, tested domain layer (src/domain/) with Vitest coverage
  • CI that typechecks, lints, builds, tests, audits dependencies, and scans for secrets
  • good first issue bugs you can pick up in minutes

⚙️ How It Works

Mischief is a lightweight Runtime that loads modular Experience Packs. Packs are data — the runtime decides when and how to show them.

  1. LOAD ────► Experience Pack manifest validated (pure, tested domain layer)
                    │ PASS
                    ▼
  2. SCHEDULE ─► events scored by priority, conditions & cooldowns
                    │ event fires
                    ▼
  3. ACT ─────► overlay companion · window antics · cursor effects · speech bubbles
                    │
  4. REVERT ───► every effect is reversible
                    │ intensity: Silent → Chaos

Each step checks the previous before proceeding. Third-party content is never trusted blindly — validation happens before anything is scheduled or rendered.


🏆 Why Mischief

Dimension Typical prank apps Desktop pets (Shimeji, Goose) Mischief
Business model Ads, bundles, paywalls Free, often abandoned Open source, MIT
Safety Irreversible effects Varies Reversible + transparent + intensity levels
Extensibility Closed Limited Experience Packs + plugin SDK
Privacy Telemetry Varies Zero telemetry, offline-first
Platform Single OS One OS Windows / macOS / Linux
Trust Unknown binaries Unsigned CI-tested, gitleaks-scanned, reproducible

🔧 Installation

Option 1: Install a release (recommended)

Installers for Windows, macOS, and Linux are published in Releases. Download the build for your OS, install, and a small companion appears at the corner of your desktop with a tray icon.

Option 2: Run from source

Requires Node.js 18+

git clone https://github.com/moiz-za/Mischief.git
cd Mischief
npm install
npm run dev

A small companion appears on your desktop, and a tray icon keeps Mischief running.

Build installers locally

npm run dist:mac   # or dist:win / dist:linux

🧩 Building Experiences

Any data-only pack can become an experience. Start from the reference pack:

examples/experiences/sample-creature/   # a complete working character
examples/plugins/hello-plugin/          # a minimal plugin skeleton

New to the project? Browse the good first issue list — icons and manifest validation are great starting points.


🔒 Security & Privacy

Security is a core design principle, not an afterthought:

  • Secret scanning — gitleaks blocks secrets in the pre-commit hook and in CI; the full history is scanned
  • Dependency auditnpm audit runs in CI on every push and gates every release
  • Pinned, maintained Electron — upgraded and kept current; 0 known vulnerabilities at every release
  • Zero telemetry — Mischief makes no network calls by default; nothing leaves your machine
  • Private vulnerability reporting — report via the repository's Security tab (see SECURITY.md)

See Transparency for exactly what Mischief does with your machine.


🔍 Transparency

Mischief is a desktop app that lives on your screen, so you deserve to know exactly what it can and cannot do. This is the whole truth — nothing hidden, nothing "in beta."

What Mischief does

Behavior Details
Reads your cursor position Moves the companion to follow or wander near it. Position data never leaves your machine
Reads system idle time To know when you've stepped away (so the companion can nap). It does not log what you were doing
Draws a small overlay on top of your windows A 96×96px transparent, always-on-top companion window. It's decorative; it can't read or modify other apps
Captures the screen — only when you ask "Capture moment" grabs ~1.2s or a single frame only when you click the menu item, and saves it to ~/Pictures/Mischief/. There is no background or automatic capture, ever
Writes two local files settings.json (your preferences, mode 0600) and your saved moments in ~/Pictures/Mischief/

What Mischief never does

  • No network calls — Mischief runs 100% offline; it cannot phone home, fetch content, or update itself silently
  • No accounts, no telemetry, no analytics, no advertising SDKs
  • No keylogging — it reads cursor position and idle time only
  • No file access — it reads nothing outside its own install, settings.json, and the moments folder
  • No destructive effects — every effect is reversible, optional, and off by default
  • No third-party code runs — community packs are strict-validated data; the plugin host ships disabled

Verifying authenticity

  • Source-first — the app is MIT-licensed and fully auditable at github.com/moiz-za/Mischief. Build it yourself with npm run dist:mac (or dist:win / dist:linux)
  • Checksums — every release attaches a SHA256SUMS manifest; verify the installer before running it (shasum -a 256 -c SHA256SUMS)
  • Signed builds — as of now, release builds are unsigned, so macOS Gatekeeper and Windows SmartScreen will warn on first launch. That warning is the OS being cautious about any new unsigned app, not a sign Mischief is dangerous. Code signing is planned (see Security & Privacy); until then, the source + checksums above are your ground truth

Platform support & testing

Mischief targets macOS, Windows, and Linux, and every release ships installers for all three (built on native CI runners). The full test suite (pure-JS unit tests for cutout/motion/manifests/behavior/config) runs on Windows, macOS, and Linux in CI, and a Linux boot smoke boots the real Electron app under a virtual display on every push to confirm it starts, loads a companion, and registers its handlers without fatal errors.

We develop and runtime-test on macOS, so it's the most polished. Windows and Linux are continuously build- and unit-test-verified, but occasional cosmetic differences (tray icon rendering, transparent-window behavior on some Linux window managers) may surface there first — report them as an issue and they get fixed fast.


📦 Repository Structure

mischief/
├── src/                    Electron runtime
│   ├── main.ts             tray + overlay host
│   ├── preload.ts          secure IPC bridge
│   ├── renderer/           overlay companion (sprite + cutout canvas)
│   └── domain/             pure, tested logic (no Electron)
├── examples/               starter content
│   ├── experiences/        19 companion packs (zen, kumo, astra, …)
│   └── plugins/            plugin skeletons
├── docs/                   experience-pack guide + community docs
├── tests/                  unit tests (Vitest)
├── assets/                 branding, demos, and icons
└── scripts/                build + hook tooling

❓ FAQ

Q: Is Mischief malware? A: No. Every effect is reversible, optional, and transparent. It is a mischievous friend, never destructive.

Q: Will it interfere with my work? A: You control the intensity — from Silent to Chaos. Events respect priority, conditions, and cooldowns, so the companion never spams you.

Q: Does it need an account or internet? A: No accounts, no telemetry, no analytics. It runs entirely offline.

Q: Can I make my own companion? A: Yes. Experience Packs are declarative data — copy sample-creature, tweak the manifest and assets, and load it. No core changes needed.

Q: What platforms are supported? A: Windows, macOS, and Linux. Builds are produced with electron-builder.

Q: How is this different from Shimeji or Desktop Goose? A: They're single-app pets. Mischief is a platform: a small runtime that loads any number of packs, with safety, intensity controls, and an SDK at its core.


📋 Changelog

Version Date Summary
v0.4.1 2026-08 Patch release: CI tooling updated to Node 24 GitHub Action majors (no app changes)
v0.4.0 2026-08 Playful behaviors (hide/peek/spin/pounce/sneak/dance) for every companion, always-on drag-to-move, anti-repeat + companion-specific + personality-matched speech, behavior-aware chatter, follow-cursor & quick-menu sync, spin/hide animation fixes, removed sound chimes
v0.3.1 2026-08 Companion switcher, raster sprite support (PNG/JPG/WebP/GIF), custom companions, import any image with background cutout + expression anchor, import pipeline internals, settings UI layout + repository-boundary fixes
v0.3.0 2026-08 14 character-specific speech pools with unique dialogue, combo streak tracking, developer triggers (IDE save, git commit, build green), wellness reminders (hydration, posture)
v0.2.0 2026-08 Settings window (intensity/personality selectors, interactive & cursor-follow toggles, persisted), config manager with fallbacks, GIF moment capture to ~/Pictures/Mischief/, PNG snapshot
v0.1.3 2026-08 Personality engine: event bus, intensity levels (Silent→Chaos), weighted behaviors with cooldowns, sleeps/yawns/wanders, interactive pet mode, PNG moment capture
v0.1.2 2026-08 Strict manifest validation (security boundary), Experience Pack loader, typed localization (en-US/es/de/fr), themes, runtime loads the Whiskers companion pack, 4 example packs + 2 plugins
v0.1.0 2026-08 Initial foundation — Electron + TypeScript skeleton, overlay companion + tray, pure tested domain layer, CI (typecheck/lint/build/test/audit), gitleaks secret scanning, packaging config

See full CHANGELOG.md for details.


🤝 Community & Support

  • Report bugs & request featuresOpen a GitHub Issue
  • Questions — GitHub Discussions on this repository
  • Contribute — See CONTRIBUTING.md for guidelines; every PR is squashed and CI-gated
  • Star the repo — Helps others discover Mischief

👤 Author & Maintainer

Built and maintained by Moiz Zoaib Ali:


📄 License & Disclaimer

  • License: Distributed under the MIT License. Copyright (c) 2026 Moiz Zoaib Ali. See LICENSE for details.
  • Disclaimer: Mischief is provided for entertainment. All effects are reversible and user-controlled; the user remains responsible for how the software is used. Not affiliated with or endorsed by any OS vendor.

Built by Moiz Solutions · Report issues on GitHub

About

The open-source platform for desktop entertainment. Harmless, delightful desktop companions and experiences — privacy-first, offline-first, plugin & pack ecosystem.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages