Qwen Code v0.26.0 Ships Daemon Control Commands, Revocable Web Shell Pairing and a Loop-Protection Default That Reminds Instead of Stops
Qwen Code v0.26.0 adds daemon lifecycle commands, listable and revocable Web Shell pairings, artifact records for agent-edited files, and a model.loopProtection default that reminds instead of stopping loops. What operators should check first.
QwenLM published Qwen Code v0.26.0 on 21 October 2026 (23:20 on the release page), tagging commit ac97ce7 and declaring “no known breaking changes”. That calm header undersells the drop. Inside a change list carrying dozens of feature entries are some of the most operator-relevant controls Qwen Code has shipped in recent memory: a daemon lifecycle command family, listable and revocable Web Shell device pairings, artifact records for files an agent creates or edits, and a default loop-protection change that alters how long-running sessions behave.
Context: Qwen Code is Qwen’s agentic coding tool that lives in your terminal — scriptable, pipe-friendly and increasingly deployed as a hosted managed agent, not just an interactive CLI. This release trains on that dual role.
One night, three releases
The stable CLI did not ship alone. The project’s releases list shows a coordinated train:
| Release | Published | Notes |
|---|---|---|
| Qwen Code v0.26.0 (CLI) | 21 Oct 23:20 | Commit ac97ce7, changelog v0.25.3...v0.26.0 |
| Qwen Code Desktop v0.26.0 | 21 Oct 23:50 | Same commit ac97ce7 |
| SDK TypeScript v0.1.22 | 22 Oct 00:23 | Bundles CLI 0.26.0, built from source |
The previous stable was v0.25.3 on 19 Oct, which Automater covered for its snapshot-isolated child agents and persistent Kubernetes workspaces.

Daemon control commands you can script
Five feat(serve) entries add a local daemon control surface: daemon discovery and control commands (#14739), qwen daemon start (#14869), a start --wait variant (#14914), daemon restart (#14929) and daemon status detail (#14902).
# Command names as listed in the v0.26.0 release notes
qwen daemon start # start the local daemon (#14869)
qwen daemon start --wait # block until the daemon is ready (#14914)
qwen daemon restart # restart a running daemon (#14929)
The --wait flag is the one automation authors should care about: provisioning scripts and CI jobs can block until the daemon is ready instead of polling. It pairs with the systemd units and setup guidance for single-host managed-agent deployments shipped in the same release, which keep Runtime workers running when the Broker restarts (#14633).
Revocable Web Shell pairings
Paired Web Shell devices become listable and revocable (#15000). If you have ever paired a browser with a daemon on a shared or remote host, this is the missing hygiene control: you can enumerate pairings and revoke the one that belonged to a lost laptop or a departed contractor. A companion fix admits loopback origins on any port via --allow-origin (#15002), making how local Web Shell clients reach the daemon explicit and predictable under an operator-set flag. That is the same discipline as auditing what your agent’s remote control stores — except the tool now ships the off-switch.
Loop protection reminds by default
The change with the widest blast radius is one line: feat(core): add model.loopProtection and remind instead of stopping loops by default (#15016). The release describes the new default as reminding the model about a loop rather than stopping it. A companion entry makes a stop that does occur explainable: loop protection now reports why it stopped a turn (#14858).
This is a behavior change for every default install: a session that previously ended in a hard stop may now continue after a reminder, with different token spend and a different trajectory. Canary it on a representative long-running task before it reaches unattended lanes — the same discipline as every unpinned CLI upgrade.
Artifact records for provenance
The artifacts feature now records files the agent creates or edits (#14292), and the serve layer adds a persisted workspace artifact library (#14867). Together they give operators a trail of what an agent actually touched in a workspace — useful evidence when you require receipts from background work instead of trusting the summary.
Experimental: Mods, tool middleware and Generated UI
Three flagged surfaces land in this release, all opt-in:
- Mods in settings (#14889) and tool middleware in interactive terminals (#14565) — interception points that can transform tool calls around execution.
- Generated UI, bundled behind an experimental flag (#14888): an optional extension renders model-generated HTML/CSS cards with bounded local JavaScript, letting users adjust inputs without another model turn (#14338).
Because they are experimental, treat them like any in-process extension code: review before enabling on production machines. Qwen Code sits in a crowded field of China-based CLIs; see our field notes on the category.
Managed-agent upgrades worth noting
- Attachment input budget rises to 8 MiB, large pending requests survive refresh, and unrecoverable drafts can be discarded (#14628).
- Local and SSH workspace file references (#14639).
- Image attachments accept PNG, JPEG, GIF, WebP and the
image/jpgalias, matching Qwen Code image handling (#14704). - A read-only
--checkpreflight prints PASS, WARN, FAIL or SKIP for deployment checks and exits nonzero on failure (#14632) — wire it into deployment gating.
What you can do now
| Change | Release entries | Action |
|---|---|---|
| Daemon lifecycle commands | #14739, #14869, #14914, #14929, #14902 | Script daemon startup; use --wait in CI and provisioning |
| Revocable pairings | #15000 | Audit paired Web Shell devices and revoke lost or stale ones |
| Loop-protection default | #15016, #14858 | Canary remind-by-default on long sessions; watch token spend |
| Artifact records | #14292, #14867 | Use artifact records as provenance for agent-edited files |
| Deployment preflight | #14632 | Gate managed-agent deployments on --check exiting zero |