Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>UIPNew to Visual Studio Code? Get it now.
UIP

UIP

Stonebranch

|
342 installs
| (0) | Free
Universal Extension IDE helper for VS Code
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Universal Integration Platform - VS Code Extension

UIP is a Visual Studio Code Extension that enhances the development experience of creating and working with Universal Extensions.

Features

  • Provides an IDE wrapper for the uip-cli command line utility
  • Quickly prototype Extensions using starter Extension Templates
  • Build and upload Extensions and/or Universal Templates
  • Pull the latest Universal Template source files from the Controller
  • Download the full Universal Template package
  • Debug Extensions locally without the need of Agent and Controller

Requirements

uip-cli

UIP requires the uip-cli command line utility to be installed on the target system where the Universal Extensions will be developed. If an internet connection is available, the UIP VS Code Extension will detect when a uip-cli install is required and prompt for automatic installation.

uip-cli is a Python based utility. To install uip-cli manually, download it from PyPI and install with pip.
Refer to the uip-cli landing page on PyPI for detailed instructions.

Pre-launch task

In 2.2.0, changes were made to how the extension worker process is spawned. A pre-launch task of type uipWorkerProcess is now required on any launch configurations used to debug extensions.

For example, in .vscode/launch.json:

{
    "configurations": [
        {
            "name": "UIP: Debug Universal Extension",
            "type": "python",
            "request": "attach",
            "redirectOutput": false,
            "justMyCode": true,
            "showReturnValue": true,
            "connect": {
                "host": "127.0.0.1",
                "port": 5678
            },

            // A pre-launch task is now required.
            "preLaunchTask": {
                "type": "uipWorkerProcess"
            }
        },
    ]
}

Newly created extension projects will include this pre-launch task by default, but existing projects will need to include it.

If a pre-launch task is already configured, you may create another task which depends on both your already-configured task as well as a uipWorkerProcess task. For example, in .vscode/tasks.json:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "My existing pre-launch task",
            "type": "shell",
            "command": "ls"
        },
        {
            "label": "A new pre-launch task",
            "type": "uipWorkerProcess",
            "dependsOn": [
                "My existing pre-launch task",
            ]
        }
    ]
}

And in .vscode/launch.json:

{
    "configurations": [
        {
            "name": "UIP: Debug Universal Extension",
            ...
            "preLaunchTask": "A new pre-launch task"
        }
    ]
}

In cases where the value of preLaunchTask is not explicitly { "type": "uipWorkerProcess" } an error message will appear notifying the user that debugging extensions may not work. This may be dismissed permanently by setting UIP.debug.ignoreMissingPreLaunchTask to true.

Note that if a task is defined in dependsOn inline, this may trigger a bug in vscode, especially in multi-root workspaces. In tasks.json:

{
    ...
    "tasks": [
        {
            "label": "Don't do this",
            ...
            "dependsOn": [
                // Don't do this!
                {
                    "type": "uipWorkerProcess"
                }
            ]
        }
    ]
}

Instead, prefer to give a fully-defined label to a uipWorkerProcess task, with a dependsOn field:

        {
            "label": "Do do this",
            "type": "uipWorkerProcess",
            "dependsOn": [
                "This will work"
            ]
        },
        {
            "label": "This will work",
            ...
        }

Extension Settings

This extension contributes the following commands:

  • UIP: Initialize New Project
  • UIP: Build
  • UIP: Build All
  • UIP: Upload
  • UIP: Upload All
  • UIP: Push
  • UIP: Push All
  • UIP: Pull
  • UIP: Download
  • UIP: Clean
  • UIP: Show Stdout
  • UIP: Show Stderr
  • UIP: Show Extension Output
  • UIP: Show Extension Console
  • UIP: Select Universal Extension API
  • UIP: Cancel
  • UIP: Terminate
  • UIP: Task Launch
  • UIP: Task Launch No Wait
  • UIP: Task Status
  • UIP: Task Status List
  • UIP: Task Output
  • UIP: Task Output for Instance Number
  • UIP: Set uip-cli Install Source
  • UIP: Set User ID
  • UIP: Set Password
  • UIP: Set URL
  • UIP: Set Target Task
  • UIP: Set Task Instance Count
  • UIP: Clear uip-cli Install Source
  • UIP: Clear User ID
  • UIP: Clear Password
  • UIP: Clear URL
  • UIP: Clear Environment
  • UIP: Clear Target Task
  • UIP: Clear Task Instance Count
  • UIP: Install uip-cli for the currently selected Python interpreter
  • UIP: Uninstall uip-cli for the currently selected Python interpreter

UIP: Initialize New Project

Initialize a new project using one of the provided starter Extension templates.

UIP: Build

Build 'Universal Extension' only

UIP: Build All

Build full Universal Extension package

UIP: Upload

Upload 'Universal Extension' only

UIP: Upload All

Upload full Universal Extension package

UIP: Push

Combines the UIP: Build and UIP: Upload commands

UIP: Push All

Combines the UIP: Build All and UIP: Upload All commands

UIP: Pull

Pull the Universal Template source files template.json and template_icon.png from the Controller

UIP: Download

Downloads the full Universal Template from the Controller as a zip file and places it in the ./dist/package_download/ folder

UIP: Clean

Purges build artifacts which includes anything inside the ./dist, ./build, and ./temp folders (including the folders themselves).

UIP: Show Stdout

Used to show the STDOUT output of the most recently debugged Extension instance.

UIP: Show Stderr

Used to show the STDERR output of the most recently debugged Extension instance.

UIP: Show Extension Output

Used to show the EXTENSION output of the most recently debugged Extension instance.

UIP: Show Extension Console

Used to show miscellaneous output of the most recently debugged Extension instance.

UIP: Select Universal Extension API

Used to select the desired Universal Extension API Level for debugging Extensions.

UIP: Cancel

Issues the Cancel command on the currently running Extension instance.

UIP: Terminate

Forcefully terminates the currently running Extension instance.

UIP: Task Launch

Launch a specific Universal Extension task in the Controller, monitor it to completion and return output. The task to launch is specified with the UIP: Set Target Task command.

UIP: Task Launch No Wait

Launch a specific Universal Extension task in the Controller. The task will not be monitored. The sys_id of the task instance created in the Controller will be returned as output in the UIP terminal.

UIP: Task Status

Retrieve the status of the last "Target Task" launched in the Controller.

UIP: Task Status List

Retrieve the status of the last instance-count "Target Tasks" launched in the Controller. The instance-count value is set with the UIP: Set Task Instance Count command.

UIP: Task Output

Retrieve the output of the last "Target Task" launched in the Controller.

UIP: Task Output for Instance Number

Retrieve the output associated with the specified instance-number of the "Target Task" launched in the Controller. The instance-number is supplied to an input window that pops up upon executing this command.

UIP: Set uip-cli Install Source

Sets the source location of the uip-cli installation package. The default value is simply uip-cli, which will cause the PyPi repository to be used as the source. The value can be a url or file path to uip-cli packaged as a tar.gz or .whl file.

UIP: Set User ID

Sets the user ID to be used with commands that communicate with the Universal Controller

UIP: Set Password

Sets the password to be used with commands that communicate with the Universal Controller

UIP: Set URL

Sets the URL to be used with commands that communicate with the Universal Controller

UIP: Set Target Task

Sets the "Target Task" to use for UIP task commands. The "Target Task" value should be a Universal Extension task name that exists (or, will exist) in the Universal Controller.

UIP: Set Task Instance Count

Sets the "Instance Count" value to be used with the UIP: Task Status List command to indicate the number of task instances to return the status for.

UIP: Clear uip-cli Install Source

Removes the "uip-cli Install Source" if it has been set.

UIP: Clear User ID

Removes the UIP user ID environment variable from the project environment

UIP: Clear Password

Removes the UIP password environment variable from the project environment

UIP: Clear URL

Removes the UIP URL environment variable from the project environment

UIP: Clear UIP Environment

Removes the UIP environment variables from the project environment

UIP: Clear Target Task

Removes the "Target Task" if it has been set.

UIP: Clear Task Instance Count

Removes the "Instance Count" if it has been set.

UIP: Install uip-cli for the currently selected Python interpreter

Installs the uip-cli command line tool to the currently selected Python environment

UIP: Uninstall uip-cli for the currently selected Python interpreter

Uninstalls the uip-cli command line tool from the currently selected Python environment

Known Issues


No known issues.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft