Skip to content

feat(vscode-ide-companion): Add configuration for experimental CLI flags like --experimental-skills #1562

@yiliang114

Description

@yiliang114

Summary

The VSCode IDE Companion extension currently does not provide a way to enable experimental features like Agent Skills (--experimental-skills) or other CLI flags. Users should be able to configure these options through extension settings.

Background

The Qwen Code CLI supports several experimental features that can be enabled via command-line arguments:

  • --experimental-skills - Enables the Agent Skills feature
  • --proxy <url> - Configure proxy for network requests
  • Other potential flags for future experimental features

Currently, in qwenConnectionHandler.ts, the extraArgs array is hardcoded as empty:

```typescript
// Build extra CLI arguments (only essential parameters)
const extraArgs: string[] = [];

await connection.connect(cliEntryPath!, workingDir, extraArgs);
```

This means users cannot enable experimental features like Skills when using the VSCode extension.

Expected Behavior

Users should be able to configure experimental CLI flags through:

  1. VSCode Extension Settings - Add a configuration option in package.json contributes section, e.g.:
    ```json
    {
    "qwen-code.experimental.skills": {
    "type": "boolean",
    "default": false,
    "description": "Enable experimental Agent Skills feature"
    },
    "qwen-code.cli.extraArgs": {
    "type": "array",
    "default": [],
    "description": "Additional CLI arguments to pass to Qwen Code"
    }
    }
    ```

  2. Read settings and pass to CLI - Update qwenConnectionHandler.ts to read these settings and include them in extraArgs.

Proposed Implementation

  1. Add configuration options to the extension's package.json

  2. Update qwenConnectionHandler.ts to read settings:
    ```typescript
    const config = vscode.workspace.getConfiguration('qwen-code');
    const extraArgs: string[] = [];

    if (config.get('experimental.skills')) {
    extraArgs.push('--experimental-skills');
    }

    const customArgs = config.get<string[]>('cli.extraArgs') || [];
    extraArgs.push(...customArgs);
    ```

Related

  • Skills documentation: docs/users/features/skills.md
  • TypeScript SDK enables skills by default: packages/sdk-typescript/src/transport/ProcessTransport.ts

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions