Skip to main content

Updates

How Daintree handles auto-updates, stable and nightly channels, manual checks, the menu update states, the toast cooldown, Windows Store builds, and agent CLI updates.

Updated
Reviewed

App Updates

Daintree uses electron-updater to check for and install app updates on its own. Updates ship through two release channels. The same update flow applies to both.

Update Flow

  1. Check: Daintree checks for updates on startup, then every 4 hours after that
  2. Download: when an update is found, it downloads in the background
  3. Notify: an in-app notification shows download progress and completion
  4. Install: the update installs when you quit Daintree

The Update-Available Toast and 24-Hour Cooldown

The "Update Available" toast appears when a new version is found and starts downloading. Dismiss it, and Daintree won't show the same version's toast again for 24 hours, even across app restarts. A newer version bypasses the cooldown, so you won't miss a follow-up release.

The "Update Ready" toast is never suppressed. Once a download finishes, Daintree always tells you the build is ready to install, whether or not you dismissed the available-toast earlier.

Tip
Want the current status now? Use Check for Updates… from the app menu. Manual checks ignore the cooldown and always report what's available.
Note
Background update checks recover from brief network drops on their own, without telling you. Permanent errors, and any manual check that fails, surface right away.

For how these toasts fit alongside the rest of Daintree's notifications, see Notifications and Sound.

Update Channels

Daintree ships two release channels. Stable is the default and gets fully tested builds. Nightly gives you early access to features that haven't been through manual QA yet.

ChannelFeed URLQA Level
Stablehttps://updates.daintree.org/releases/Full QA
Nightlyhttps://updates.daintree.org/nightly/Pre-release (skips manual QA)

Nightly builds use a pre-release version format that encodes the build timestamp and git commit, like 0.8.0-nightly.20260403142530.abc1234f. Nightlies are kept for 3 days, then cleaned up automatically.

Canopy Legacy Builds

Early releases also shipped a Canopy-branded variant that pulled updates from updates.canopyide.com. That variant was retired at v0.9.0. Everyone now runs Daintree and updates from updates.daintree.org.

Switching Channels

Open Settings and go to the General tab, then the Overview subtab. The Update channel section has two buttons: Stable and Nightly.

Switching takes effect immediately. You don't need to restart Daintree. The next update check, automatic or manual, pulls from whichever channel you selected. Your existing settings and data are untouched.

If you switch from nightly back to stable, Daintree handles the version difference for you and installs the latest stable release, even if it has a lower version number than the nightly you were running.

Below the channel buttons, a Last checked line shows how long ago the last update check ran. It refreshes on its own, about once a minute.

Checking for Updates Manually

You can trigger an update check at any time from the application menu. This menu item shows up only in packaged builds. It won't appear when you run Daintree from source.

Open the Daintree menu at the top-left of the screen and click Check for Updates…

That menu item relabels itself to match what's happening. It normally reads Check for Updates… If a check runs longer than about 400ms, it briefly switches to Checking… and goes disabled while it works. Once a build has downloaded and is ready, it reads Restart to install update. Click it, and Daintree installs the update and relaunches.

If you're already on the latest version, a toast confirms it and names your current version (for example, "No updates available — Daintree 0.12.0 is the latest version."). If a manual check fails, you'll see an "Update failed" toast with a Retry button.

When Auto-Update Is Disabled

Auto-update turns itself off in these cases:

  • Development builds: when you run from source and the app isn't packaged
  • Windows Store builds: MSIX/AppX builds update through the Microsoft Store, so Daintree's own updater stays off. Regular installer (NSIS) builds aren't affected and update normally.
  • Linux without AppImage or package marker: on Linux, auto-update needs either the APPIMAGE environment variable, set automatically for AppImage builds, or a package-type marker file, present in .deb packages. Without one of those, auto-update is off.

On a Windows Store build, Settings drops the channel selector and shows an Updates section instead. It reads "Updates are managed by the Microsoft Store on Windows," with a single toggle to be notified when a new version is available.

Linux AppImage and .deb packages both support auto-update. If you installed from a .deb and updates aren't working, check that the package-type marker file exists in your installation directory.

Agent CLI Updates

Agent CLI updates are separate from Daintree app updates. Each agent updates through its own package manager:

AgentnpmOther
Claude Codenpm install -g @anthropic-ai/claude-code
Gemini CLInpm install -g @google/gemini-cli
Codex CLInpm install -g @openai/codex
OpenCodenpm install -g opencode-ai@latestbrew upgrade opencode

Version Checking

Daintree reads the installed version of each agent CLI and tells you when an update is available. Current versions show up in agent settings.

Update Methods

You can trigger an agent update three ways:

  • npm: npm install -g <package>
  • Homebrew: brew upgrade <package>
  • Custom command: per-agent update commands defined in the agent registry
Note
After you update an agent CLI, Daintree detects the new version on its own. No restart required.