@qwen-code/qwen-code 0.17.0 → 0.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/bundled/qc-helper/docs/configuration/_meta.ts +0 -3
  2. package/bundled/qc-helper/docs/configuration/settings.md +13 -12
  3. package/bundled/qc-helper/docs/configuration/themes.md +39 -0
  4. package/bundled/qc-helper/docs/features/approval-mode.md +26 -22
  5. package/bundled/qc-helper/docs/features/commands.md +68 -12
  6. package/bundled/qc-helper/docs/features/status-line.md +168 -32
  7. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +16 -0
  8. package/bundled/simplify/SKILL.md +123 -0
  9. package/chunks/{agent-KVXFGIOU.js → agent-ZJHHICAC.js} +14 -13
  10. package/chunks/{anthropicContentGenerator-L4HWAOIV.js → anthropicContentGenerator-M45RXZVS.js} +48 -5
  11. package/chunks/{askUserQuestion-DC6OWQIL.js → askUserQuestion-TGRD7FNQ.js} +1 -1
  12. package/chunks/{ca-NMZFEGAU.js → ca-6RSCDYUS.js} +2 -1
  13. package/chunks/{chunk-7EHPK6TK.js → chunk-2KEXT6RB.js} +4007 -2390
  14. package/chunks/{chunk-J5VCSWPA.js → chunk-3PJXIDKI.js} +1153 -103
  15. package/chunks/{chunk-7NNBQRV7.js → chunk-5JBZM7FZ.js} +4 -4
  16. package/chunks/{chunk-EMVEDSVZ.js → chunk-6O244QKR.js} +43 -3
  17. package/chunks/chunk-7TQVELRB.js +10412 -0
  18. package/chunks/{chunk-HCSJIOLR.js → chunk-BNESGOSJ.js} +7450 -3516
  19. package/chunks/{chunk-MEN6IEKX.js → chunk-C5CUHYSM.js} +456 -1225
  20. package/chunks/{chunk-7YJIR2FX.js → chunk-G4K6P5KN.js} +8 -15
  21. package/chunks/chunk-HX3JRTWL.js +393 -0
  22. package/chunks/{chunk-V7LMZR76.js → chunk-JBSYXHJF.js} +1 -1
  23. package/chunks/{chunk-R2B65CAN.js → chunk-JKUAX6UT.js} +0 -1
  24. package/chunks/chunk-MRO43B25.js +30 -0
  25. package/chunks/{chunk-JI7FDD65.js → chunk-NJJER6E2.js} +9 -6
  26. package/chunks/{chunk-ODPVJ6JJ.js → chunk-OJFMTECH.js} +6 -1
  27. package/chunks/{chunk-QEXSIXLX.js → chunk-PLYRQYKC.js} +10 -10
  28. package/chunks/{chunk-U2K6HDUJ.js → chunk-QVJ33ZBG.js} +23 -13
  29. package/chunks/{chunk-HAQCNXSG.js → chunk-RQW7WUJR.js} +15 -0
  30. package/chunks/{chunk-UQRYJQBE.js → chunk-SOGUPKP6.js} +1 -1
  31. package/chunks/{chunk-6NUSWV4M.js → chunk-TDZCEIK6.js} +2 -0
  32. package/chunks/{chunk-4O2TWJK4.js → chunk-X2474BTT.js} +183 -40
  33. package/chunks/{computer-use-2J5ZXEER.js → computer-use-NAHQPV2L.js} +24 -6
  34. package/chunks/{contextCommand-52NTEMCT.js → contextCommand-7KJT3UJS.js} +16 -15
  35. package/chunks/{cron-create-FXRORK2U.js → cron-create-V3UK2SJN.js} +1 -1
  36. package/chunks/{cron-delete-D24IN6CA.js → cron-delete-MANALPCP.js} +1 -1
  37. package/chunks/{cron-list-SMOX26SL.js → cron-list-UDIYK3B3.js} +1 -1
  38. package/chunks/{de-OIMT3OMI.js → de-APURNJ3I.js} +2 -1
  39. package/chunks/{dist-GRQVFL3G.js → dist-ATAKC63R.js} +1 -1
  40. package/chunks/{edit-RLFUTT5F.js → edit-JWXCQ4KK.js} +14 -13
  41. package/chunks/{en-2IFZ5THF.js → en-FYO57HJW.js} +3 -1
  42. package/chunks/{enter-worktree-CYRAPQKJ.js → enter-worktree-G4CJXPT4.js} +14 -13
  43. package/chunks/{exit-worktree-WQZM72QD.js → exit-worktree-MYZ2FGU2.js} +14 -13
  44. package/chunks/{exitPlanMode-STFEBQZE.js → exitPlanMode-ELJ6FSMU.js} +14 -13
  45. package/chunks/{fr-PVELSHTV.js → fr-32YHQZIS.js} +2 -1
  46. package/chunks/{geminiContentGenerator-DIV32SKO.js → geminiContentGenerator-3LR7MKCQ.js} +4 -3
  47. package/chunks/{glob-N3XO4RVI.js → glob-CANUAUTC.js} +14 -13
  48. package/chunks/{grep-AK5MP7P3.js → grep-WZWNJRDX.js} +14 -13
  49. package/chunks/{ja-P5TK5GNN.js → ja-PEUXN4XT.js} +2 -1
  50. package/chunks/{ls-7FYQHPWF.js → ls-T4SVZWR6.js} +1 -1
  51. package/chunks/{lsp-DKG34USR.js → lsp-U4ZQLNIS.js} +1 -1
  52. package/chunks/{monitor-IVBWJZEZ.js → monitor-CCKNOUFG.js} +17 -14
  53. package/chunks/{multipart-parser-IXGBIOIN.js → multipart-parser-AJ4WASWR.js} +2 -2
  54. package/chunks/{notebook-edit-PM46AXFS.js → notebook-edit-XDUY5Q4I.js} +14 -13
  55. package/chunks/{openaiContentGenerator-4QXCH7L2.js → openaiContentGenerator-N3O3MYIT.js} +11 -10
  56. package/chunks/{pt-A5GHG66T.js → pt-2INS7YVC.js} +2 -1
  57. package/chunks/{qwenContentGenerator-BLXQIIMX.js → qwenContentGenerator-DEOIWKVH.js} +16 -15
  58. package/chunks/{qwenOAuth2-BAN2EGSH.js → qwenOAuth2-LKXG7XVO.js} +2 -1
  59. package/chunks/{read-file-IEQAS3EZ.js → read-file-BRNXGILN.js} +8 -7
  60. package/chunks/{ripGrep-HQO7IE4C.js → ripGrep-ZRY5PKUZ.js} +14 -13
  61. package/chunks/{ru-66XKB4QX.js → ru-6CQ5HNHB.js} +2 -1
  62. package/chunks/scheduler-SSFABMN5.js +306 -0
  63. package/chunks/{send-message-ZL7CDM7K.js → send-message-GFYV7WLL.js} +1 -1
  64. package/chunks/{serve-CYRAK4UM.js → serve-B5O72CRN.js} +43 -30
  65. package/chunks/{shell-UZBGNO2Q.js → shell-SGYNBVMK.js} +14 -13
  66. package/chunks/{skill-JVC34QYN.js → skill-V7Y6DOFB.js} +9 -8
  67. package/chunks/{src-TMOD5X6F.js → src-7XL4G4DC.js} +88 -46
  68. package/chunks/{src-FOODLH7B.js → src-OKFFQGXB.js} +41 -15
  69. package/chunks/{syntheticOutput-U3YJ3GOO.js → syntheticOutput-DM43O6TY.js} +2 -2
  70. package/chunks/{task-stop-NPUI3YBA.js → task-stop-WKP5OB3V.js} +1 -1
  71. package/chunks/{todoWrite-Y6F7YEIM.js → todoWrite-GHL6DCLP.js} +14 -3
  72. package/chunks/{tool-search-P7PRPOW3.js → tool-search-7MHT3HGM.js} +8 -7
  73. package/chunks/{web-fetch-XWEK4TFX.js → web-fetch-SZIV74ZX.js} +2 -2
  74. package/chunks/{write-file-SIIEUON5.js → write-file-ARS2Z6BJ.js} +16 -15
  75. package/chunks/{zh-TW-3ND6DQRX.js → zh-TW-SSL3ATVZ.js} +3 -1
  76. package/chunks/{zh-OB5P2ZDO.js → zh-ZHZCMIRG.js} +3 -1
  77. package/cli.js +38665 -53791
  78. package/locales/ca.js +2 -1
  79. package/locales/de.js +2 -1
  80. package/locales/en.js +4 -1
  81. package/locales/fr.js +2 -1
  82. package/locales/ja.js +2 -1
  83. package/locales/pt.js +2 -1
  84. package/locales/ru.js +2 -1
  85. package/locales/zh-TW.js +4 -1
  86. package/locales/zh.js +4 -1
  87. package/package.json +2 -2
  88. package/chunks/chunk-EM6ETG2K.js +0 -60
  89. package/chunks/chunk-TI4GXJKO.js +0 -4277
  90. package/chunks/multipart-parser-3QWGTLK3.js +0 -384
  91. package/chunks/src-IPWIHNMI.js +0 -1406
@@ -1,9 +1,6 @@
1
1
  export default {
2
2
  settings: 'Settings',
3
3
  auth: 'Authentication',
4
- memory: {
5
- display: 'hidden',
6
- },
7
4
  'qwen-ignore': 'Ignoring Files',
8
5
  'trusted-folders': 'Trusted Folders',
9
6
  themes: 'Themes',
@@ -77,17 +77,18 @@ Settings are organized into categories. Most settings should be placed within th
77
77
 
78
78
  #### general
79
79
 
80
- | Setting | Type | Description | Default |
81
- | ------------------------------------------ | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
82
- | `general.preferredEditor` | string | The preferred editor to open files in. | `undefined` |
83
- | `general.vimMode` | boolean | Enable Vim keybindings. | `false` |
84
- | `general.enableAutoUpdate` | boolean | Enable automatic update checks and installations on startup. | `true` |
85
- | `general.showSessionRecap` | boolean | Auto-show a one-line "where you left off" recap when returning to the terminal after being away. Off by default. Use `/recap` to trigger manually regardless of this setting. | `false` |
86
- | `general.sessionRecapAwayThresholdMinutes` | number | Minutes the terminal must be blurred before an auto-recap fires on focus-in. Only used when `showSessionRecap` is enabled. | `5` |
87
- | `general.gitCoAuthor.commit` | boolean | Add a Co-authored-by trailer to git commit messages AND attach a per-file AI-attribution git note (`refs/notes/ai-attribution`) for commits made through Qwen Code. Disabling skips both. | `true` |
88
- | `general.gitCoAuthor.pr` | boolean | Append a Qwen Code attribution line to pull request descriptions when running `gh pr create`. | `true` |
89
- | `general.checkpointing.enabled` | boolean | Enable session checkpointing for recovery. | `false` |
90
- | `general.defaultFileEncoding` | string | Default encoding for new files. Use `"utf-8"` (default) for UTF-8 without BOM, or `"utf-8-bom"` for UTF-8 with BOM. Only change this if your project specifically requires BOM. | `"utf-8"` |
80
+ | Setting | Type | Description | Default |
81
+ | ------------------------------------------ | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
82
+ | `general.preferredEditor` | string | The preferred editor to open files in. | `undefined` |
83
+ | `general.vimMode` | boolean | Enable Vim keybindings. | `false` |
84
+ | `general.enableAutoUpdate` | boolean | Enable automatic update checks and installations on startup. | `true` |
85
+ | `general.showSessionRecap` | boolean | Auto-show a one-line "where you left off" recap when returning to the terminal after being away. Off by default. Use `/recap` to trigger manually regardless of this setting. | `false` |
86
+ | `general.sessionRecapAwayThresholdMinutes` | number | Minutes the terminal must be blurred before an auto-recap fires on focus-in. Only used when `showSessionRecap` is enabled. | `5` |
87
+ | `general.gitCoAuthor.commit` | boolean | Add a Co-authored-by trailer to git commit messages AND attach a per-file AI-attribution git note (`refs/notes/ai-attribution`) for commits made through Qwen Code. Disabling skips both. | `true` |
88
+ | `general.gitCoAuthor.pr` | boolean | Append a Qwen Code attribution line to pull request descriptions when running `gh pr create`. | `true` |
89
+ | `general.checkpointing.enabled` | boolean | Enable session checkpointing for recovery. | `false` |
90
+ | `general.defaultFileEncoding` | string | Default encoding for new files. Use `"utf-8"` (default) for UTF-8 without BOM, or `"utf-8-bom"` for UTF-8 with BOM. Only change this if your project specifically requires BOM. | `"utf-8"` |
91
+ | `general.cleanupPeriodDays` | number | Days to retain `~/.qwen/file-history/` session backups used by `/rewind`. Backups older than this are removed by a background pass that runs at most once per day. `0` = minimum retention (~1 hour): keeps sessions touched in the last hour plus the currently active one. Changes take effect after restart. | `30` |
91
92
 
92
93
  #### output
93
94
 
@@ -101,7 +102,7 @@ Settings are organized into categories. Most settings should be placed within th
101
102
  | --------------------------------------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
102
103
  | `ui.theme` | string | The color theme for the UI. See [Themes](../configuration/themes) for available options. | `undefined` |
103
104
  | `ui.customThemes` | object | Custom theme definitions. | `{}` |
104
- | `ui.statusLine` | object | Custom status line configuration. A shell command whose output is shown in the footer's left section. See [Status Line](../features/status-line). | `undefined` |
105
+ | `ui.statusLine` | object | Custom status line configuration. Supports `command`, `refreshInterval`, `respectUserColors`, and `hideContextIndicator` options. See [Status Line](../features/status-line). | `undefined` |
105
106
  | `ui.hideWindowTitle` | boolean | Hide the window title bar. | `false` |
106
107
  | `ui.hideTips` | boolean | Hide all tips (startup and post-response) in the UI. See [Contextual Tips](../features/tips). | `false` |
107
108
  | `ui.hideBanner` | boolean | Hide the startup ASCII logo and info panel. Tips and chat input still render unless `ui.hideTips` is also set. | `false` |
@@ -36,6 +36,45 @@ Selected themes are saved in Qwen Code's [configuration](../configuration/settin
36
36
 
37
37
  ---
38
38
 
39
+ ## Auto Theme Detection
40
+
41
+ When the theme is set to `"auto"` (or left unset), Qwen Code automatically detects whether your terminal uses a dark or light background and selects the matching Qwen theme (`Qwen Dark` or `Qwen Light`).
42
+
43
+ ### How to enable
44
+
45
+ Set the theme to `"auto"` in `settings.json`:
46
+
47
+ ```json
48
+ {
49
+ "ui": {
50
+ "theme": "auto"
51
+ }
52
+ }
53
+ ```
54
+
55
+ Or select **Auto** in the `/theme` dialog. This is the default behavior when no theme is explicitly configured.
56
+
57
+ ### Detection methods
58
+
59
+ Qwen Code uses multiple detection methods in a fallback chain. At startup (async path), the order is:
60
+
61
+ | Priority | Method | Platform | How it works |
62
+ | -------- | ----------------------- | ---------- | ---------------------------------------------------------------------------------------------------- |
63
+ | 1 | `COLORFGBG` | All | Reads the `COLORFGBG` environment variable (set by terminals like iTerm2, rxvt, Konsole) |
64
+ | 2 | OSC 11 | All (TTY) | Sends an `ESC]11;?` query to the terminal and parses the background color from the response (~200ms) |
65
+ | 3 | macOS system appearance | macOS only | Runs `defaults read -g AppleInterfaceStyle` to check if macOS Dark Mode is active |
66
+ | 4 | Default | All | Falls back to dark theme if no method succeeds |
67
+
68
+ The first method that returns a result wins. The detected value is cached for the session so subsequent theme resolutions (e.g. reselecting Auto in the `/theme` dialog) stay consistent.
69
+
70
+ ### When to use Auto
71
+
72
+ - **Most users** — Auto works well if your terminal background matches your OS appearance or if your terminal sets `COLORFGBG` / supports OSC 11.
73
+ - **tmux / screen users** — OSC 11 may not pass through multiplexers. Detection falls back to `COLORFGBG` or macOS system appearance. If neither is available, the default dark theme is used. Set a specific theme if auto-detection gives the wrong result.
74
+ - **SSH sessions** — detection depends on the remote environment. If `COLORFGBG` is not forwarded and the remote terminal doesn't respond to OSC 11, the default dark theme is used.
75
+
76
+ ---
77
+
39
78
  ## Custom Color Themes
40
79
 
41
80
  Qwen Code allows you to create your own custom color themes by specifying them in your `settings.json` file. This gives you full control over the color palette used in the CLI.
@@ -4,18 +4,22 @@ Qwen Code offers five distinct permission modes that allow you to flexibly contr
4
4
 
5
5
  ## Permission Modes Comparison
6
6
 
7
- | Mode | File Editing | Shell Commands | Best For | Risk Level |
8
- | -------------- | --------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------ | ---------- |
9
- | **Plan**​ | ❌ Read-only analysis only | ❌ Not executed | • Code exploration <br>• Planning complex changes <br>• Safe code review | Lowest |
10
- | **Default**​ | ✅ Manual approval required | ✅ Manual approval required | • New/unfamiliar codebases <br>• Critical systems <br>• Team collaboration <br>• Learning and teaching | Low |
11
- | **Auto-Edit**​ | ✅ Auto-approved | ❌ Manual approval required | • Daily development tasks <br>• Refactoring and code improvements <br>• Safe automation | Medium |
12
- | **Auto**​ | ✅ Classifier-evaluated | ✅ Classifier-evaluated | • Long autonomous sessions <br>• When Auto-Edit is too cautious but YOLO is too risky | Medium |
13
- | **YOLO**​ | ✅ Auto-approved | ✅ Auto-approved | • Trusted personal projects <br>• Automated scripts/CI/CD <br>• Batch processing tasks | Highest |
7
+ | Mode | File Editing | Shell Commands | Best For | Risk Level |
8
+ | -------------------- | --------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------ | ---------- |
9
+ | **Plan**​ | ❌ Read-only analysis only | ❌ Not executed | • Code exploration <br>• Planning complex changes <br>• Safe code review | Lowest |
10
+ | **Ask Permissions**​ | ✅ Manual approval required | ✅ Manual approval required | • New/unfamiliar codebases <br>• Critical systems <br>• Team collaboration <br>• Learning and teaching | Low |
11
+ | **Auto-Edit**​ | ✅ Auto-approved | ❌ Manual approval required | • Daily development tasks <br>• Refactoring and code improvements <br>• Safe automation | Medium |
12
+ | **Auto**​ | ✅ Classifier-evaluated | ✅ Classifier-evaluated | • Long autonomous sessions <br>• When Auto-Edit is too cautious but YOLO is too risky | Medium |
13
+ | **YOLO**​ | ✅ Auto-approved | ✅ Auto-approved | • Trusted personal projects <br>• Automated scripts/CI/CD <br>• Batch processing tasks | Highest |
14
+
15
+ > [!NOTE]
16
+ >
17
+ > The mode previously named **Default** has been renamed to **Ask Permissions** to better describe its behavior. The underlying configuration value (`tools.approvalMode: "default"`) and the `/approval-mode default` command are unchanged for backward compatibility.
14
18
 
15
19
  ### Quick Reference Guide
16
20
 
17
21
  - **Start in Plan Mode**: Great for understanding before making changes
18
- - **Work in Default Mode**: The balanced choice for most development work
22
+ - **Work in Ask Permissions Mode**: The balanced choice for most development work
19
23
  - **Switch to Auto-Edit**: When you're making lots of safe code changes
20
24
  - **Try Auto Mode**: When you want fewer interruptions but still want safety on shell commands and network calls — an LLM classifier evaluates each call
21
25
  - **Use YOLO sparingly**: Only for trusted automation in controlled environments
@@ -96,11 +100,11 @@ How should we handle database migration?
96
100
  }
97
101
  ```
98
102
 
99
- ## 2. Use Default Mode for Controlled Interaction
103
+ ## 2. Use Ask Permissions Mode for Controlled Interaction
100
104
 
101
- Default Mode is the standard way to work with Qwen Code. In this mode, you maintain full control over all potentially risky operations - Qwen Code will ask for your approval before making any file changes or executing shell commands.
105
+ Ask Permissions Mode is the standard way to work with Qwen Code. In this mode, you maintain full control over all potentially risky operations - Qwen Code will ask for your approval before making any file changes or executing shell commands.
102
106
 
103
- ### When to use Default Mode
107
+ ### When to use Ask Permissions Mode
104
108
 
105
109
  - **New to a codebase**: When you're exploring an unfamiliar project and want to be extra cautious
106
110
  - **Critical systems**: When working on production code, infrastructure, or sensitive data
@@ -108,23 +112,23 @@ Default Mode is the standard way to work with Qwen Code. In this mode, you maint
108
112
  - **Team collaboration**: When multiple people are working on the same codebase
109
113
  - **Complex operations**: When the changes involve multiple files or complex logic
110
114
 
111
- ### How to use Default Mode
115
+ ### How to use Ask Permissions Mode
112
116
 
113
- **Turn on Default Mode during a session**
117
+ **Turn on Ask Permissions Mode during a session**
114
118
 
115
- You can switch into Default Mode during a session using **Shift+Tab**​ (or **Tab** on Windows) to cycle through permission modes. If you're in any other mode, pressing **Shift+Tab** (or **Tab** on Windows) will eventually cycle back to Default Mode, indicated by the absence of any mode indicator at the bottom of the terminal.
119
+ You can switch into Ask Permissions Mode during a session using **Shift+Tab**​ (or **Tab** on Windows) to cycle through permission modes. If you're in any other mode, pressing **Shift+Tab** (or **Tab** on Windows) will eventually cycle back to Ask Permissions Mode, indicated by the absence of any mode indicator at the bottom of the terminal.
116
120
 
117
- **Start a new session in Default Mode**
121
+ **Start a new session in Ask Permissions Mode**
118
122
 
119
- Default Mode is the initial mode when you start Qwen Code. If you've changed modes and want to return to Default Mode, use:
123
+ Ask Permissions Mode is the initial mode when you start Qwen Code. If you've changed modes and want to return to Ask Permissions Mode, use:
120
124
 
121
125
  ```
122
126
  /approval-mode default
123
127
  ```
124
128
 
125
- **Run "headless" queries in Default Mode**
129
+ **Run "headless" queries in Ask Permissions Mode**
126
130
 
127
- When running headless commands, Default Mode is the default behavior. You can explicitly specify it with:
131
+ When running headless commands, Ask Permissions Mode is the default behavior. You can explicitly specify it with:
128
132
 
129
133
  ```
130
134
  qwen --prompt "Analyze this code for potential bugs"
@@ -148,7 +152,7 @@ Qwen Code will analyze your codebase and propose a plan. It will then ask for ap
148
152
 
149
153
  You can review each proposed change and approve or reject it individually.
150
154
 
151
- ### Configure Default Mode as default
155
+ ### Configure Ask Permissions Mode as default
152
156
 
153
157
  ```bash
154
158
  // .qwen/settings.json
@@ -200,7 +204,7 @@ configuration, troubleshooting, FAQ).
200
204
 
201
205
  ### When to use Auto Mode
202
206
 
203
- - **Long autonomous sessions**: When Default Mode interrupts too often but
207
+ - **Long autonomous sessions**: When Ask Permissions Mode interrupts too often but
204
208
  YOLO is too risky.
205
209
  - **Trusted projects**: Internal codebases where the agent should keep
206
210
  moving but you still want a guardrail on destructive shell commands and
@@ -277,7 +281,7 @@ Refactor the auth module to use OAuth2. Run the full test suite afterwards.
277
281
  Qwen Code makes the file edits (in-workspace edits skip the classifier),
278
282
  runs `npm test` (classifier judges safe), and surfaces a block if it ever
279
283
  tries something risky like `rm -rf /Users/me/.aws`. You can review the
280
- reason inline and decide whether to switch to Default Mode for that step.
284
+ reason inline and decide whether to switch to Ask Permissions Mode for that step.
281
285
 
282
286
  ### Configure Auto Mode as default
283
287
 
@@ -363,7 +367,7 @@ qwen --prompt "Run the test suite, fix all failing tests, then commit changes"
363
367
  During a Qwen Code session, use **Shift+Tab**​ (or **Tab** on Windows) to quickly cycle through the four modes:
364
368
 
365
369
  ```
366
- Default Mode → Auto-Edit Mode → YOLO Mode → Plan Mode → Default Mode
370
+ Ask Permissions Mode → Auto-Edit Mode → YOLO Mode → Plan Mode → Ask Permissions Mode
367
371
  ```
368
372
 
369
373
  ### Persistent Configuration
@@ -31,15 +31,18 @@ These commands help you save, restore, and summarize work progress.
31
31
 
32
32
  Commands for adjusting interface appearance and work environment.
33
33
 
34
- | Command | Description | Usage Examples |
35
- | ------------ | ---------------------------------------- | ----------------------------- |
36
- | `/clear` | Clear terminal screen content | `/clear` (shortcut: `Ctrl+L`) |
37
- | `/context` | Show context window usage breakdown | `/context` |
38
- | → `detail` | Show per-item context usage breakdown | `/context detail` |
39
- | `/theme` | Change Qwen Code visual theme | `/theme` |
40
- | `/vim` | Turn input area Vim editing mode on/off | `/vim` |
41
- | `/directory` | Manage multi-directory support workspace | `/dir add ./src,./tests` |
42
- | `/editor` | Open dialog to select supported editor | `/editor` |
34
+ | Command | Description | Usage Examples |
35
+ | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------- |
36
+ | `/clear` | Clear terminal screen content | `/clear` (shortcut: `Ctrl+L`) |
37
+ | `/context` | Show context window usage breakdown | `/context` |
38
+ | → `detail` | Show per-item context usage breakdown | `/context detail` |
39
+ | `/diff` | Open an interactive diff viewer showing uncommitted changes and per-turn diffs. Use ←/→ to switch between current git diff and individual conversation turns, ↑/↓ to browse files | `/diff` |
40
+ | `/theme` | Change Qwen Code visual theme | `/theme` |
41
+ | `/vim` | Turn input area Vim editing mode on/off | `/vim` |
42
+ | `/directory` | Manage multi-directory support workspace | `/dir add ./src,./tests` |
43
+ | `/editor` | Open dialog to select supported editor | `/editor` |
44
+ | `/statusline` | Open interactive [status line](./status-line.md) preset dialog | `/statusline` |
45
+ | `/statusline <text>` | Generate a command-mode [status line](./status-line.md) via agent | `/statusline show model and git branch` |
43
46
 
44
47
  ### 1.3 Language Settings
45
48
 
@@ -85,6 +88,7 @@ These commands invoke bundled skills that provide specialized workflows.
85
88
  | ------------ | ------------------------------------------------------------------- | ------------------------------------------------- |
86
89
  | `/review` | Review code changes with 5 parallel agents + deterministic analysis | `/review`, `/review 123`, `/review 123 --comment` |
87
90
  | `/loop` | Run a prompt on a recurring schedule | `/loop 5m check the build` |
91
+ | `/simplify` | Review recent changes and apply safe cleanup edits directly | `/simplify`, `/simplify focus on duplication` |
88
92
  | `/qc-helper` | Answer questions about Qwen Code usage and configuration | `/qc-helper how do I configure MCP?` |
89
93
 
90
94
  See [Code Review](./code-review.md) for full `/review` documentation.
@@ -208,7 +212,59 @@ this setting.
208
212
  > `general.showSessionRecap` to `false` to opt out of the auto-trigger
209
213
  > while keeping the manual command available.
210
214
 
211
- ### 1.8 Information, Settings, and Help
215
+ ### 1.8 Diff Viewer (`/diff`)
216
+
217
+ The `/diff` command opens an interactive diff viewer showing uncommitted changes and per-turn diffs. Use ←/→ to switch between the current git diff and individual conversation turns, ↑/↓ to browse files, and Enter to view inline diffs.
218
+
219
+ **How it works:**
220
+
221
+ In interactive mode, `/diff` opens a dialog with a **source picker** along the top:
222
+
223
+ - **Current** — working tree vs HEAD (`git diff HEAD`). Shows all uncommitted changes including staged, unstaged, and untracked files.
224
+ - **T1, T2, T3, …** — per-turn diffs, one tab per model turn that modified files. Most recent turns appear first. Each tab shows a preview of the original prompt for context.
225
+
226
+ The file list displays per-file stats (lines added/removed) with tags for special states (`new`, `deleted`, `untracked`, `binary`, `truncated`, `oversized`). Press Enter on a file to view its inline diff with syntax-highlighted hunks.
227
+
228
+ Per-turn diffs require [file checkpointing](./checkpointing) to be enabled (on by default in interactive mode). When file checkpointing is off, only the "Current" source is available.
229
+
230
+ **Keyboard shortcuts:**
231
+
232
+ | Key | Action |
233
+ | --------- | ------------------------------------------- |
234
+ | `←` / `→` | Switch between sources (Current / T1 / T2…) |
235
+ | `↑` / `↓` | Navigate file list |
236
+ | `j` / `k` | Navigate file list (vim-style) |
237
+ | Enter | View inline diff for selected file |
238
+ | `←` / Esc | Return to file list from inline diff view |
239
+ | Esc | Close the dialog |
240
+
241
+ **Example:**
242
+
243
+ ```
244
+ ┌ /diff · Turn 3 "refactor the auth middleware" ──── 3 files +45 -12 ┐
245
+ │ │
246
+ │ ◀ Current · T3 · T2 · T1 ▶ │
247
+ │ │
248
+ │ › src/utils/parser.ts +30 -8 │
249
+ │ src/utils/parser.test.ts +12 -2 │
250
+ │ README.md +3 -2 │
251
+ │ │
252
+ │ ←/→ source · ↑/↓ file · Enter view · Esc close │
253
+ └─────────────────────────────────────────────────────────────────────┘
254
+ ```
255
+
256
+ **Non-interactive mode:**
257
+
258
+ In headless (`--prompt`) or non-interactive contexts, `/diff` prints a plain-text summary of the working tree vs HEAD. Per-turn navigation is not available.
259
+
260
+ ```
261
+ 3 files changed, +45 / -12
262
+ +30 -8 src/utils/parser.ts
263
+ +12 -2 src/utils/parser.test.ts
264
+ +3 -2 README.md
265
+ ```
266
+
267
+ ### 1.9 Information, Settings, and Help
212
268
 
213
269
  Commands for obtaining information and performing system settings.
214
270
 
@@ -224,7 +280,7 @@ Commands for obtaining information and performing system settings.
224
280
  | `/copy` | Copy last output content to clipboard | `/copy` |
225
281
  | `/quit` | Exit Qwen Code immediately | `/quit` or `/exit` |
226
282
 
227
- ### 1.9 Common Shortcuts
283
+ ### 1.10 Common Shortcuts
228
284
 
229
285
  | Shortcut | Function | Note |
230
286
  | ------------------ | ----------------------- | ---------------------- |
@@ -234,7 +290,7 @@ Commands for obtaining information and performing system settings.
234
290
  | `Ctrl/cmd+Z` | Undo input | Text editing |
235
291
  | `Ctrl/cmd+Shift+Z` | Redo input | Text editing |
236
292
 
237
- ### 1.10 Authentication Commands
293
+ ### 1.11 Authentication Commands
238
294
 
239
295
  Use `/auth` inside a Qwen Code session to configure authentication. Use `/doctor` to inspect the current authentication and environment status.
240
296