Requirements
Desktop development requires:- Node.js 22 or later
- Bun and pnpm
- Xcode, including its command-line tools
Run from source
From the repository root, install workspace dependencies, build the CLI and Web UI, then start Electron:agentuse serve daemon when one
is already running. Otherwise it starts the compiled local CLI on a loopback
port. The browser dashboard remains available at the URL shown in the menu.
Set AGENTUSE_CLI_PATH to test against a specific CLI build:
Install a local build
For routine testing, install and launch one canonical app copy:~/Applications/AgentUse.app, and launches
that copy. Avoid opening apps/desktop/dist/*/AgentUse.app directly; using one
canonical installation prevents Launch Services from retaining several copies
with the same bundle identifier.
Package the app
Create a package for the current Mac architecture:arm64 and x86_64 package, include both architectures in the nested
SwiftUI helper:
Sign and notarize a release
For a manual release, store notarization credentials in the login Keychain so the app-specific password does not enter shell history:notarytool prompts securely for the app-specific password. electron-builder
uses the Developer ID Application identity installed in the login Keychain.
For CI, set the electron-builder signing variables CSC_LINK and
CSC_KEY_PASSWORD, plus APPLE_ID, APPLE_APP_SPECIFIC_PASSWORD, and
APPLE_TEAM_ID. Keep all signing credentials in CI secrets. Hardened runtime is
enabled, and the packaged native Settings helper is placed under
Contents/Frameworks before notarization.
Prepare an updater-enabled release
The root package and Desktop app share one release version. Use the repository release script to prepare that version; do not edit the Desktop version separately:--publish never: creating packages must not upload or publish
anything automatically.
Before uploading, verify that the release output contains the signed and
notarized DMG, the Mac ZIP, their blockmaps, and latest-mac.yml. Confirm that
latest-mac.yml references both primary artifacts with the prepared version,
and that the packaged app contains an app-update.yml feed pointing to the
public agentuse/agentuse GitHub Releases repository.
After the normal GitHub release exists, manually upload all of those Mac assets
to that same public release. Test the completed feed from an older signed build:
confirm that the update downloads in the background, choose Later in the
native prompt, install it from Settings → About, and confirm the new version
launches. Repeat with Restart Now, then repeat a check while offline and
confirm the app continues working while the About tab reports the failure.