Vibe Machine

Coming soonVibe Machine is on its way to the App Store.Get notified

The daemon

Set up your Mac

The app is the cockpit; the Vibe Machine daemon on your Mac does the work. It's a small, free, open-source program that runs your Claude Code sessions and streams them to your phone. Setting it up takes about five minutes.

You need

Before you start

  • A Mac. The daemon runs there and starts at login.
  • Node 24 or newer. brew install node, or the installer from nodejs.org.
  • Claude Code, installed and signed in with your own account: run claude once in a terminal and sign in. Vibe Machine never sees your sign-in; it runs the claude you installed.
  • Your repos in one folder, ~/dev by default.
  • Optional: Tailscale on the Mac and the phone, to reach your Mac away from home. Without it the phone finds the Mac on the same Wi-Fi.
  • Optional: Xcode with a simulator, for before-and-after screenshots of the iOS apps you work on.
Install

Install and pair

  1. Install the daemon

    In Terminal on your Mac:

    npm install -g vibemachine-daemon
  2. Run setup

    vibemachine setup

    Setup starts the daemon in the background (it starts again at every login) and shows a QR code. If macOS asks whether node may accept incoming connections, allow it: that's how the phone reaches the Mac on your Wi-Fi.

  3. Scan it with your iPhone

    Open Vibe Machine and scan the QR code, or point the iPhone's Camera at it. Codes last ten minutes; for a fresh one, run:

    vibemachine pair
  4. Start a session

    Tap +, pick a repo and type what you want.

Keep it running

Check, update, remove

vibemachine doctorChecks everything the phone needs: Node, Claude Code and its sign-in, the daemon, Wi-Fi and Tailscale, your projects folder, pushes and Xcode. Each failing check says what to do.
vibemachine updateInstalls the newest release and restarts the daemon. Your settings and sessions are kept. A session running on the phone stops and picks up again with your next prompt.
vibemachine pairShows a fresh pairing code, for a new phone or an expired code.
vibemachine uninstallStops the daemon, removes its login item and its Tailscale Serve rule, and says what's left. Add --purge to delete your sessions, screenshots and keys too. Then npm uninstall -g vibemachine-daemon removes the command.
Open source

What runs on your Mac

The daemon is open source under the MIT licence, at github.com/pnlazzaro-png/vibemachine-daemon. Read it before you run it, if you like.

  • Your own Claude Code. It runs the unmodified Claude Code program you installed, under your own sign-in. It never sees, stores or sends your credentials.
  • Your own network. It listens only on your Mac, your Wi-Fi (encrypted, with a certificate your phone pins when it pairs) and your tailnet if you use Tailscale.
  • Your own data. Sessions, screenshots and usage figures stay on your Mac, and on your phone once it's paired. See the privacy policy.
Previews (optional)

Before-and-after screenshots

For an iOS app, add a .vibemachine.json at the root of its repo. After every build in a turn, the daemon installs the app in the simulator, opens each screen with its launch arguments, waits settle_ms, and takes the picture. For a web project, web shows the page live instead (or as well). For example:

{
  "preview": {
    "simulator": "iPhone 17 Pro",
    "bundle_id": "com.example.myapp",
    "app": "build/DerivedData/Build/Products/Debug-iphonesimulator/MyApp.app",
    "settle_ms": 3000,
    "screens": [
      { "name": "Home", "args": [] },
      { "name": "Settings", "args": ["-openSettings", "YES"] }
    ],
    "web": "http://localhost:5173"
  }
}

Screenshots need Xcode and a simulator on the Mac. Web previews need only the URL.

Something not working? Support