qwen-code/packages/vscode-ide-companion
易良 202be6ec7d
Some checks are pending
Qwen Code CI / Lint (push) Waiting to run
Qwen Code CI / Test (push) Blocked by required conditions
Qwen Code CI / Test-1 (push) Blocked by required conditions
Qwen Code CI / Test-2 (push) Blocked by required conditions
Qwen Code CI / Test-3 (push) Blocked by required conditions
Qwen Code CI / Test-4 (push) Blocked by required conditions
Qwen Code CI / Test-5 (push) Blocked by required conditions
Qwen Code CI / Test-6 (push) Blocked by required conditions
Qwen Code CI / Test-7 (push) Blocked by required conditions
Qwen Code CI / Test-8 (push) Blocked by required conditions
Qwen Code CI / Post Coverage Comment (push) Blocked by required conditions
Qwen Code CI / CodeQL (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:none (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:docker (push) Waiting to run
E2E Tests / E2E Test - macOS (push) Waiting to run
feat(vscode): expose /skills as slash command with secondary picker (#2548)
* feat(vscode): expose /skills as slash command with secondary picker

Add a secondary completion picker for the /skills slash command in the
VSCode IDE companion, allowing users to browse and select skills from
a dropdown before sending.

Changes:
- CLI: add 'skills' to ALLOWED_BUILTIN_COMMANDS_NON_INTERACTIVE whitelist
- CLI: send available_skills_update via ACP with skill names/descriptions
- Extension: handle available_skills_update in session update handler
- Webview: implement secondary picker that triggers after selecting /skills
- Webview: allow spaces in completion trigger for /skills sub-queries

Closes #1562

Made-with: Cursor

* feat(vscode-ide-companion): embed skills in commands update metadata

- Move available skills from separate session update to _meta field of
  available_commands_update for more efficient delivery
- Simplify skill data to just skill names (string array)
- Add skillsCompletion utility for secondary picker logic
- Cache available skills in WebViewProvider for replay on webview ready
- Update all related types and handlers to support the new structure

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* refactor(vscode-ide-companion): simplify skills picker flow

* refactor(vscode-ide-companion): extract skills completion utils to shared module

Move `isSkillsSecondaryQuery`, `shouldOpenSkillsSecondaryPicker`, and
`SKILL_ITEM_ID_PREFIX` from App.tsx and useCompletionTrigger.ts into a
shared `completionUtils.ts` file to eliminate duplication.

* fix(vscode-ide-companion): restore skills picker state on reload

Cache and replay available skills when the webview becomes ready again.

Clear stale skills when commands metadata does not include availableSkills.

* fix(vscode-ide-companion): replay slash commands after webview reload

Cache available commands in the webview provider.

Replay them on webviewReady so slash command state survives reloads.

* fix(vscode-ide-companion): import AvailableCommand from ACP SDK

* fix(vscode-ide-companion): fallback /skills to direct command

* test(vscode-ide-companion): cover skills secondary picker flow

* test(vscode-ide-companion): guard App mock initialization

* fix(vscode-ide-companion): remove duplicate AvailableCommand import

The auto-merge introduced a duplicate AvailableCommand in the
@agentclientprotocol/sdk import block, causing TS2300.

* fix(vscode-ide-companion): remove duplicate availableCommands replay in handleWebviewReady

The handleWebviewReady method was sending cachedAvailableCommands twice
on every webview-ready handshake, causing an unnecessary extra state
update in the webview.

---------

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-24 23:28:53 +08:00
..
.vscode pre-release commit 2025-07-22 23:26:01 +08:00
assets feat(vscode-ide-companion/layout): add sidebar view and simplify chat positioning 2026-03-07 00:30:40 +08:00
schemas feat(cli): add Traditional Chinese (zh-TW) as a UI language option (#3569) 2026-04-24 21:34:46 +08:00
scripts Merge branch 'main' of https://github.com/QwenLM/qwen-code into feat/unified-ui-for-vscode-extension 2026-01-28 18:52:37 +08:00
src feat(vscode): expose /skills as slash command with secondary picker (#2548) 2026-04-24 23:28:53 +08:00
.vscodeignore feat: add JSON Schema validation for VS Code settings 2026-02-13 17:32:18 +08:00
development.md Sync upstream Gemini-CLI v0.8.2 (#838) 2025-10-23 09:27:04 +08:00
esbuild.js feat(vscode-companion): support /export session command (#2592) 2026-04-24 17:55:26 +08:00
eslint.config.mjs fix(vscode-ide-companion): 修复 Tailwind 可重用组件类和 ESLint 配置, 调整 ChatHeader 按钮样式 2025-11-29 18:13:50 +08:00
LICENSE Upload VSIX of companion VS Code extension (#4241) 2025-07-15 18:44:03 +00:00
NOTICES.txt refactor(acp): migrate to @agentclientprotocol/sdk and clean up handlers 2026-03-06 21:57:41 +08:00
package.json feat(vscode): add native context menu copy actions for webview chat (#3477) 2026-04-24 20:26:56 +08:00
package.nls.json feat(vscode): add native context menu copy actions for webview chat (#3477) 2026-04-24 20:26:56 +08:00
package.nls.zh-cn.json feat(vscode): add native context menu copy actions for webview chat (#3477) 2026-04-24 20:26:56 +08:00
postcss.config.js refactor(vscode): 重构消息排序和展示逻辑 2025-11-28 22:35:31 +08:00
README.md fix: update TOS link in VS Code extension README 2026-03-19 17:36:32 +08:00
tailwind.config.js feat(webui): add webview container and isolate styles for VSCode integration 2026-01-17 10:53:32 +08:00
tsconfig.json feat(vscode-companion): support /export session command (#2592) 2026-04-24 17:55:26 +08:00
vitest.config.ts feat(vscode-companion): support /export session command (#2592) 2026-04-24 17:55:26 +08:00

Qwen Code Companion

Version VS Code Installs Open VSX Downloads Rating

Seamlessly integrate Qwen Code into Visual Studio Code with native IDE features and an intuitive chat interface. This extension bundles everything you need — no additional installation required.

Demo

Features

  • Native IDE experience: Dedicated Qwen Code Chat panel accessed via the Qwen icon in the editor title bar
  • Native diffing: Review, edit, and accept changes in VS Code's diff view
  • Auto-accept edits mode: Automatically apply Qwen's changes as they're made
  • File management: @-mention files or attach files and images using the system file picker
  • Conversation history & multiple sessions: Access past conversations and run multiple sessions simultaneously
  • Open file & selection context: Share active files, cursor position, and selections for more precise help

Requirements

  • Visual Studio Code 1.85.0 or newer (also works with Cursor, Windsurf, and other VS Code-based editors)

Quick Start

  1. Install from the VS Code Marketplace or Open VSX Registry

  2. Open the Chat panel using one of these methods:

    • Click the Qwen icon in the top-right corner of the editor
    • Run Qwen Code: Open from the Command Palette (Cmd+Shift+P / Ctrl+Shift+P)
  3. Start chatting — Ask Qwen to help with coding tasks, explain code, fix bugs, or write new features

Commands

Command Description
Qwen Code: Open Open the Qwen Code Chat panel
Qwen Code: Run Launch a classic terminal session with the bundled CLI
Qwen Code: Accept Current Diff Accept the currently displayed diff
Qwen Code: Close Diff Editor Close/reject the current diff

Feedback & Issues

Contributing

We welcome contributions! See our Contributing Guide for details on:

  • Setting up the development environment
  • Building and debugging the extension locally
  • Submitting pull requests

Terms of Service and Privacy Notice

By installing this extension, you agree to the Terms of Service.

License

Apache-2.0