---
url: /en/build/internal-steps/vscode/go.md
---
`vscode:go`

Difference in configuring this built-in task for Workspaces:

* \==Using this task==: When starting cloud-native development,
  you need to wait for this task to complete before the WebIDE and VSCode/Cursor client entry points appear.
* \==Not using this task==: After the pipeline's prepare stage completes (code-server code service starts),
  the WebIDE and VSCode/Cursor client entry points will appear before the stages tasks are executed.

The difference in the timing of the appearance of the entry points mentioned above refers to the transition from the
`loading` waiting page to the entry point selection page. In reality, whether or not this task is used,
Workspaces is already available once the `code-server` code service has started.

**Note: Using this task will increase the waiting time.
If you need to delay developers' entry into the environment until certain tasks are completed, you can use this task.**

* [Applicable Events](#vscode-go-applicable-events)
* [Output Results](#vscode-go-output)
* [Configuration Examples](#vscode-go-configuration-examples)

## Applicable Events {#vscode-go-applicable-events}

* `vscode`
* `branch.create`
* `api_trigger`
* `web_trigger`

## Output Results {#vscode-go-output}

```json
{
  // WebIDE URL
  "url": ""
}
```

## Configuration Examples {#vscode-go-configuration-examples}

```yaml title=".cnb.yml"
$:
  # vscode event: specifically for starting Workspaces in the page
  vscode:
    - docker:
        # Use a custom image as the development environment;
        # if not provided, the default image
        # cnbcool/default-dev-env:latest will be used
        image: cnbcool/default-dev-env:latest
      services:
        - vscode
        - docker
      stages:
        # Wait for this task to complete before entering the development environment
        - name: pre-entry preparation
          script: ls -al
        - name: vscode go
          type: vscode:go
        # Tasks that can be executed after entering the development environment
        - name: post-entry initialization
          script: ls -al
```
