ChatPilot
For developers

Build the Mac app on your own Mac

Make ChatPilot.app and its DMG from your own copy of the source code with one command, for test builds without waiting for a release.

On an Apple silicon Mac (M1 or newer) you can build the desktop app yourself from your copy of the source code: the same steps the release runs, without waiting for it. Handy for trying a change in the real app before it is released. The first time takes about 20 minutes (the tools, and ffmpeg is built once); a rebuild takes a few minutes.

Build it

In the repository folder, in Terminal:

packaging/macos/build_local.sh

It first checks the tools it needs: Xcode 26 or newer (for the app icon), uv, Rust with Tauri's command line tool, Homebrew and libmagic. What's missing it lists with the command to install it; install those and run it again. For Xcode: install it from the App Store, open it once, then sudo xcode-select -s /Applications/Xcode.app.

Then it makes the self-contained build, checks that only allowed files ship, signs it, builds the app and the DMG, and checks that the bundled ChatPilot runs from the app. At the end it prints where the .app and the .dmg are (in desktop/target/release/bundle/macos/ and dist/).

  • Signing. With a Developer ID Application certificate in your keychain the build is signed with it; without one it is signed ad hoc. An ad-hoc build runs on your own Mac. It isn't notarised either way: that needs the release's Apple account.
  • Version. A local build has the version of the source plus the commit, e.g. 0.1.0b1+local.7cf91f3 (.dirty added when you have uncommitted changes), so it is never mistaken for a released one.
  • Voice messages. ffmpeg is built once and kept in build/ffmpeg for the next builds. --no-ffmpeg skips it; that build then can't convert voice messages.

Install it

packaging/macos/build_local.sh --install

builds as above, then quits a running ChatPilot.app, puts the new one in /Applications/ChatPilot.app and starts it.

A local build doesn't update itself: otherwise the next released version would replace your test build without you noticing. --install therefore writes a file no-auto-update in the app's settings folder (~/Library/Application Support/ai.chat-pilot.desktop) and says so. Add --updates to leave updates on. To switch them back on later, delete that file and restart the app.

Checked against ChatPilot 0.1.0b1. Report a problem with this page