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.
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
- Check: Daintree checks for updates on startup, then every 4 hours after that
- Download: when an update is found, it downloads in the background
- Notify: an in-app notification shows download progress and completion
- 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.
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.
| Channel | Feed URL | QA Level |
|---|---|---|
| Stable | https://updates.daintree.org/releases/ | Full QA |
| Nightly | https://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…
Open the Help menu and click Check for Updates…
Open the Help menu 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
APPIMAGEenvironment variable, set automatically for AppImage builds, or apackage-typemarker 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:
| Agent | npm | Other |
|---|---|---|
| Claude Code | npm install -g @anthropic-ai/claude-code | — |
| Gemini CLI | npm install -g @google/gemini-cli | — |
| Codex CLI | npm install -g @openai/codex | — |
| OpenCode | npm install -g opencode-ai@latest | brew 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