VibeNanny

⚡ Mac runtime · CLI · SDK

Your app does the work.
Your mascot feels it.

Put a character above your Mac app and let your code direct it. Start in the terminal, then connect states and reactions from Swift, Node.js or Electron.

brew install vibenanny/tap/vibenanny
vibenanny show pip
vibenanny state working --name pip
# …your long script runs…
vibenanny play celebrate --name pip

How it works

A small API.
A visible response.

The CLI and SDKs talk to a native Mac renderer. Your app controls the character’s activity, reactions, visibility, size and position.

01

Install and show Pip

Install the CLI and renderer on macOS 14+ with Apple Silicon. Show Pip without signing in.

02

Connect your app

Use the CLI from scripts, Swift from native apps, or TypeScript from Node.js and Electron.

03

Make it your character

Create a mascot and its behavior in Studio, then ship it with your app.

From your terminal to your app

Start with a command.
Keep going with code.

import { VibeNanny } from "@vibenanny/desktop";
const pip = await VibeNanny.show("pip");
build.on("start", () => pip.setState("working"));
build.on("success", () => pip.play("celebrate"));
build.on("error", () => pip.play("oops"));

The little details

Common questions.

In a floating, transparent window above your other windows, wherever you position it.

macOS 14+ on Apple Silicon today.

A state loops until you change it (working). A reaction plays once, then returns (celebrate).

Yes. Bundle its media with your app, or load it from hosted links.

Start with a little character

Make something
with personality.

Start with one character. Give it every pose, move and line your product needs.