# Install, update and uninstall cwdio

> The installer updates itself in the background; the portable zip never changes and shows a notice instead. Checksums, the kill-switch, and how to uninstall.

- Canonical: https://cwdio.com/docs/install-and-update/
- Updated: 2026-08-15
- Product: Cwdio File Manager (cwdio) — https://cwdio.com

There are two builds of cwdio and they update differently: the **installer** keeps itself current in the
background, the **portable zip** never changes itself but tells you when a newer version exists. Both have
**Help ▸ Check for updates**, and both are the same application.

## The two builds

| | Installer | Portable zip |
| --- | --- | --- |
| File | `CwdioFileManagerSetup.exe` | `cwdio-win32-x64-portable.zip` |
| Installs to | Your user profile's local app data (per-user, no administrator prompt) | Wherever you unzip it |
| Start menu / shortcuts | Yes | No — run `cwdio.exe` from the folder |
| Updates | Automatic, in the background | Never; a notice plus a manual check |
| Explorer right-click entry | Registered at install | Opt-in via Tools ▸ Explorer integration |
| Remove | Windows Settings ▸ Apps ▸ cwdio ▸ Uninstall | Delete the folder |

Both need 64-bit Windows 10 or 11 and neither needs administrator rights.

## Installing

1. Download from the [download page](/download/) — the buttons there are counted server-side, which is the
   only download number that survives ad-blockers, and redirect to the release on GitHub.
2. Run the installer, or unzip the portable build anywhere you like.
3. On first run Windows may show *"Windows protected your PC"*. cwdio is code-signed, so **More info** names
   the verified publisher, *Ihor Melnyk*; SmartScreen weighs a file's install count too, and a fresh release
   starts at zero. Click **More info**, then **Run anyway**. It appears once per file.

Rather check first? Every release ships `SHA256SUMS.txt`. In PowerShell:

```powershell
Get-FileHash .\CwdioFileManagerSetup.exe -Algorithm SHA256
```

Compare the result with the line for that file. The checksums file is uploaded by the same workflow that
builds the binaries.

## How the installer build updates

The installer build uses the built-in Windows updater (Squirrel) against cwdio's own update feed at
`updates.cwdio.com`.

- It checks about a minute after launch and then every four hours while running.
- A new version downloads in the background; when it is ready you get **Restart now / Later**. Nothing is
  applied until you restart.
- The **first run after installing skips the check** — Setup may still hold file locks — so a freshly
  installed copy checks on its second start. A first run that never prompts is correct.
- Every update is a full download of the new version (roughly the size of the installer). There are no
  delta updates yet.

If you would rather not wait for the schedule, **Help ▸ Check for updates** also nudges the updater
immediately on this build.

## How the portable build learns about updates

The portable build changes nothing on disk, so it cannot update itself. Instead:

- About half a minute after launch, and every four hours, it reads the current release information from
  GitHub and — if a newer version exists — shows a **passive notice** with a *Download* action. It never
  interrupts you with a dialog; a new version is something to know, not something to decide on the spot.
- **Help ▸ Check for updates** (also a button in the About dialog) reports one of three states: you are on
  the current version, a newer one is available, or **unknown** — offline, a 404, or malformed release
  information. Unknown is shown as a warning, never as "up to date".
- To update: download the new zip, unzip it over or beside the old folder, run it. Your settings live under
  `%AppData%\@cwdio\desktop`, not in the app folder, so they carry over.

## The kill-switch (why an old build might ask you to update)

Every packaged build fetches a tiny minimum-version manifest about half a minute after launch. If the
version you are running is below the published minimum — the mechanism exists so a known-bad release can be
retired — a dialog offers to update (installer build) or open the downloads page (portable). It is strictly
**fail-open**: if the manifest cannot be reached, is missing or is malformed, nothing happens. An offline
copy is never blocked.

## Uninstalling

- **Installer build:** Windows Settings ▸ Apps ▸ *cwdio* ▸ Uninstall. No administrator prompt.
- **Portable build:** delete the folder.
- **Everything else:** settings, layout and logs live under `%AppData%\@cwdio\desktop`; delete that folder
  too for a clean removal. The optional Explorer right-click entry is a per-user registry verb — the
  installer removes it on uninstall; on the portable build switch it off under Tools ▸ Explorer integration
  before deleting the folder.

## If something goes wrong

- **The installer build never seems to update:** check Help ▸ Check for updates. If it reports *unknown*,
  the machine cannot reach the release information; if it reports current, there is nothing to install yet.
  Remember the very first run after installing skips the check on purpose.
- **"Windows protected your PC" every time:** that means a *different* file each time — the prompt is
  per-file. Once a given installer or exe has been allowed it does not prompt again.
- **You lost the portable folder:** download the zip again; settings were never inside it.

More in [Troubleshooting](/docs/troubleshooting/).

## Related

- [Download](/download/) — both builds, requirements, checksums.
- [Changelog](/changelog/) — what each version changed.
- [Security and privacy](/security/) — the complete list of network calls the app makes.

## Frequently asked questions

**How often does the installer build check for updates?** Shortly after launch (about a minute in) and then every four hours while it runs. A new version downloads in the background and you get a Restart now / Later choice. A freshly installed copy skips the check on its very first run, because Setup may still hold file locks, so it checks on its second start.

**Does the portable build update itself?** No, by design — nothing about it changes on disk. It shows a passive notice about half a minute after launch and every four hours when a newer version exists, with a Download action, and Help ▸ Check for updates works any time. To update, download the new zip and replace the folder.

**What does “unknown” mean in Check for updates?** cwdio could not learn the latest version — you are offline, the release information returned a 404, or it was malformed. It is deliberately reported as a warning rather than as “up to date”, because an offline app cannot honestly claim you are current.

**Where does the installer put cwdio?** Under your Windows user profile’s local application data, never in Program Files. That is why it needs no administrator prompt and why it can update itself without one. Uninstall from Windows Settings ▸ Apps like any other app.

**How do I verify a download?** Every release publishes SHA256SUMS.txt beside the binaries. In PowerShell run Get-FileHash on the downloaded file with -Algorithm SHA256 and compare the hash with the matching line. If they match, you have the file the release workflow built.
