This package allows you to create vscode extensions with python.


Stable version:

pip install vscode-ext

Working version: pip install git+https://github.com/CodeWithSwastik/vscode-ext

Why use this?

Why should you use this for building VScode extensions when you can use typescript? Here are some reasons:

  • vscode-ext builds the package.json for you! No need to switch between your extension.py and package.json in order to add commands. It also handles adding Activity Bars, Keybinds and Views.
  • vscode-ext provides a more pythonic way of creating the extension. Python also has some powerful modules that Javascript doesn't and you can include these with vscode-ext
  • vscode-ext extensions work perfectly with vsce and you can publish your extensions just like you would publish any other extension.


Step 1:

Create a python file inside a folder.


Step 2:

Write the code for your extension. For this tutorial we have used the Example Extension


Step 3:

Run the python file. It will build the files.



Step 4:

Press F5. This will run the extension and open a new vscode window in development mode.

Step 5:

Finally, test your command.

  • Open the command palette with Ctrl+P


  • Type >Hello World


  • It should show a popup like this in the bottem right corner


Example Extension

import vscode

ext = vscode.Extension(name = "testpy", display_name = "Test Py", version = "0.0.1")

def on_activate():
    return f"The Extension '{ext.name}' has started"

def hello_world():
    vscode.window.show_info_message(f'Hello World from {ext.name}')

def ask_question():
    res = vscode.window.show_info_message('How are you?', 'Great', 'Meh')
    if res == "Great":
        vscode.window.show_info_message('Woah nice!!')
    elif res == "Meh":
        vscode.window.show_info_message('Sorry to hear that :(')

Extensions built using vscode-ext

Here's a list of some extensions built using vscode-ext. If you'd like to include your extension here feel free to create a PR.