Skip to content

Updates

Updating by install route, silent patch installs, the qialike-update.auto setting, and the qialike upgrade family.

An install that can update itself does so automatically: about a second after launch a background child process checks once for a newer release (it never blocks the UI, and failures are silent). Only a patch release is installed silently; a minor or major release is announced in the status line only.

Which installs those are is the table below — in short: an npm install can (on Windows too), the curl installer’s can (Linux / macOS only), and a hand-unpacked zip or a source build cannot.


Updating, by how you installed

How you installedAutomaticBy hand
Linux / macOS (the shell installer)✅ patch installed silently; minor/major announcedqialike upgrade
Windows · npm✅ patches installed silently (same rule as Linux/macOS)qialike upgrade, or npm i -g @qialike/cli@latest yourself (quit qialike first)
Windows · manual zip❌ neverqialike upgrade --check to see the version → download the new .zip → quit qialike → replace qialike.exe
Built from source❌ never touchedgit pull, then rebuild

Why most Windows installs have no automatic update: the shell installer cannot run there (it is bash) and a running .exe cannot be replaced (POSIX swaps a live ELF with mv; Windows has no equivalent) — so the installer’s copies AND hand-unpacked ones are announce-only. An npm install is the one exception: npm is its own updater and needs no bash, so that channel updates itself on Windows under the usual rule — when the background check finds a patch it runs npm install -g @qialike/cli@<version> (an exact version, not @latest, so npm cannot resolve its way to something newer than the release you were told about). The running session keeps the old build; the new one takes effect on the next launch. Minor and major releases are still announced only, and setting qialike-update.auto to "notify" makes even patches announce-only.

That is why qialike upgrade has two behaviours on Windows: an npm copy really installs (through npm), while a hand-unpacked copy only reports the version and prints the two download links (GitCode primary, gitcode mirror) — its layout has no file to swap in place, so downloading the new .zip, quitting qialike and replacing qialike.exe is how it moves forward.


What automatic updates require

That something owns the binary: the curl installer’s copy in ~/.dsh/bin (Linux/macOS) or the copy under npm’s global prefix (including Windows). The two layouts nobody owns are never replaced: a checkout build, and a binary unpacked from the zip by hand — they only receive a notice (the version plus the download links), and --check only reports.


Turning it off, or switching to notice-only

The qialike-update.auto setting — a section of ~/.dsh/settings.yaml, registered by the updater — takes:

ValueMeaning
true (default)Patch releases are installed silently; minor / major releases are announced only.
falseNo check at all.
"notify"Check and announce, never install.

Two environment variables override it: QIALIKE_DISABLE_AUTOUPDATE=1 disables automatic updating globally, and QIALIKE_ALWAYS_NOTIFY_UPDATE=1 forces notice-only. See Config for the exact YAML and the rest of the environment variables.


Updating by hand

Terminal window
qialike upgrade # move to the newest release
qialike upgrade <version> # install a specific version (v-prefix accepted)
qialike upgrade --check # report only, install nothing

/upgrade does the same from inside the TUI. Whether these can actually install depends on who owns the binary, not on the platform:

  • An npm copy is replaced by npm (on Windows too); qialike upgrade --check additionally prints npm i -g @qialike/cli@latest.
  • The ~/.dsh/bin copy is replaced by the installer (POSIX only — on Windows the installer is bash and a running .exe cannot be swapped).
  • A copy nobody owns (a checkout build, a hand-placed binary) is refused with a suggestion to reinstall through the installer. The one exception is a hand-unpacked copy ON WINDOWS, where the platform gate comes first and hands over the download links instead.

Where the update requests go

Version checks and downloads go to GitCode (canonical), the gitcode mirror, or qialike.cn — the same hosts the installer uses; see Install → Download sources and fallback.


Next steps

  • Install — the installer, the archives, and Windows’ npm / manual routes
  • Commands — the CLI surface, including qialike upgrade and qialike plugin
  • Config — settings, environment variables and telemetry