How to Update Different-AI/OpenWork to the Latest Version: Complete Guide for Users and Developers

Update OpenWork using the built-in Electron auto-updater (Settings → About → Check for updates), download signed release artifacts manually from GitHub, or pull the latest source and run pnpm install followed by version bump scripts for custom builds.

OpenWork is a native desktop application built on Electron that supports both automatic and manual update workflows. This guide covers how to update different-ai/openwork to the latest version whether you're an end-user running the packaged app or a developer working from source. The update system is orchestrated through a three-layer architecture: version bump scripts, updater metadata files, and the runtime Electron auto-updater that consumes a latest.json feed.


How OpenWork Updates Work: Architecture Overview

The repository implements a coordinated release pipeline defined in the migration run-book at [scripts/migration/README.md](https://github.com/different-ai/openwork/blob/dev/scripts/migration/README.md). Understanding these layers helps troubleshoot update issues and ensures version consistency across distribution channels.

Three Core Layers

These layers ensure that users clicking "Check for updates" and users downloading release assets manually receive identical, cryptographically verified binaries.


Update OpenWork as an End-User

The Electron auto-updater provides the smoothest experience with automatic signature verification and data migration.

  1. Launch OpenWork
  2. Navigate to Settings → About → Check for updates
  3. If newer version detected, review the version number and release notes in the dialog
  4. Click Install now to download the signed Electron bundle
  5. The app verifies the signature using the public key embedded in latest.json, then restarts automatically

The updater behavior is configured through electron-builder and the latest.json feed produced by the CI pipeline. Periodic background checks occur automatically unless disabled.

Method 2: Manual Download for Offline or Custom Environments

Download signed artifacts directly from GitHub releases when automatic updates are unavailable:

Platform Asset Name Pattern Example URL
macOS Apple Silicon openwork-mac-arm64-X.Y.Z.dmg https://github.com/different-ai/openwork/releases/download/vX.Y.Z/openwork-mac-arm64-X.Y.Z.dmg
macOS Intel openwork-mac-x64-X.Y.Z.dmg https://github.com/different-ai/openwork/releases/download/vX.Y.Z/openwork-mac-x64-X.Y.Z.dmg
Windows x64 openwork-win-x64-X.Y.Z.exe https://github.com/different-ai/openwork/releases/download/vX.Y.Z/openwork-win-x64-X.Y.Z.exe
Linux AppImage openwork-linux-x64-X.Y.Z.AppImage https://github.com/different-ai/openwork/releases/download/vX.Y.Z/openwork-linux-x64-X.Y.Z.AppImage

Replace X.Y.Z with the target version (e.g., 0.17.1).

macOS installation example:

curl -L -o openwork.dmg \
  https://github.com/different-ai/openwork/releases/download/v0.17.1/openwork-mac-arm64-0.17.1.dmg

hdiutil attach openwork.dmg
cp -R /Volumes/OpenWork/OpenWork.app /Applications/
hdiutil detach /Volumes/OpenWork

All artifacts are cryptographically signed: macOS apps are notarized by Apple, Windows binaries carry Authenticode signatures, and checksums are published alongside each release. The latest.json feed contains these hashes for automatic verification.


Update OpenWork as a Developer (Source Workflow)

For contributors and custom builds, update the local development environment using pnpm and the migration toolchain.

Standard Source Update


# Fetch latest code

git fetch origin
git checkout dev
git pull origin dev

# Install exact dependency tree (pnpm required)

pnpm install --frozen-lockfile

# Launch development server

pnpm dev

# Or use isolated worktree profile

OPENWORK_DEV_PROFILE=auto pnpm dev:worktree

The --frozen-lockfile flag ensures reproducibility using pnpm-workspace.yaml and pnpm-lock.yaml.

Manual Version Bumping (Forks and Private Releases)

When cutting a custom release, replicate the CI pipeline's version bump process:


# Bump version across all synchronized files

pnpm bump:set -- 0.18.0

# Commit and tag

git commit -am "Bump to 0.18.0"
git tag v0.18.0
git push --tags

# Build and package

pnpm run build
pnpm exec electron-builder

The pnpm bump:set command updates five files that must stay in sync, as documented in [AGENTS.md](https://github.com/different-ai/openwork/blob/dev/AGENTS.md). The resulting artifact can be tested locally or distributed through a private release channel.


Programmatic Update Operations

Trigger Update Check from Plugin Code

import { exec } from 'child_process';

// Force immediate update check
exec('pnpm run electron-updater-check', (err, stdout) => {
  if (err) {
    console.error('Update check failed:', err);
  } else {
    console.log('Updater output:', stdout);
  }
});

The electron-updater-check script wraps autoUpdater.checkForUpdatesAndNotify() from the electron-updater library.

Verify Bundle Signatures Manually


# macOS: Verify Apple notarization

codesign -dv --verbose=4 /Applications/OpenWork.app | grep "Authority"

# Windows: Verify Authenticode signature

sigcheck -q -i openwork-win-x64-0.17.1.exe

These commands replicate the validation logic in scripts/migration/02-validate-migration.mjs.


Critical Source Files for Updates

File Purpose Location
scripts/migration/README.md Migration run-book with release orchestration steps [scripts/migration/README.md](https://github.com/different-ai/openwork/blob/dev/scripts/migration/README.md)
01-cut-migration-release.mjs Version bump execution and tag creation scripts/migration/01-cut-migration-release.mjs
.env.migration-release Updater metadata and platform URLs apps/app/.env.migration-release
package.json (root) Central version field [package.json](https://github.com/different-ai/openwork/blob/dev/package.json)
AGENTS.md Files requiring version synchronization [AGENTS.md](https://github.com/different-ai/openwork/blob/dev/AGENTS.md)
build-electron-desktop.yml CI workflow generating latest.json and artifacts [.github/workflows/build-electron-desktop.yml](https://github.com/different-ai/openwork/blob/dev/.github/workflows/build-electron-desktop.yml)

Summary

  • End-users: Use Settings → About → Check for updates for automatic updates, or download signed artifacts from GitHub releases for manual installation
  • Developers: Run git pull origin dev && pnpm install --frozen-lockfile to update source, then pnpm dev to launch
  • Custom releases: Execute pnpm bump:set -- <version> to synchronize version fields, then build with electron-builder
  • Verification: All distribution paths converge on the same latest.json feed with cryptographic signatures verified by the Electron updater
  • Safety: User data in $HOME/.config/openwork is preserved across updates; migration scripts handle Tauri→Electron transition data porting

Frequently Asked Questions

Will updating OpenWork delete my data?

No. The updater preserves the user data directory at $HOME/.config/openwork before replacing the binary. The migration run-book includes data porting logic for the Tauri-to-Electron transition, ensuring seamless hand-off between major architectural versions.

Can I disable automatic updates?

Yes. Navigate to Settings → Updates → Automatic checks to disable background checking. You can also click "Remind me later" when update prompts appear. Manual installations from downloaded artifacts will not trigger automatic replacement unless you explicitly run the updater again.

Do I need to rebuild anything after updating from source?

No for end-users. Native code is pre-compiled into the Electron binary. For developers running custom builds: after git pull, always run pnpm install --frozen-lockfile to refresh any compiled native modules in the dependency tree.

Where does the updater retrieve release notes?

Release notes are generated from the changelog/ directory and embedded in the releaseNotes field of latest.json. The updater displays this content in the update dialog. Full release notes are also available on the GitHub releases page for each version tag.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →