About
Create vscode extensions with python.
Note
This repository is being archived due to a lack of time for regular maintenance. If you are interested in taking over the maintenance of this project, please feel free to contact me at cwswastik2005@gmail.com. Thank you for your support!
Installation
Stable version:
Why use vscode.py?
Why should you use this for building VScode extensions when you can use typescript? Here are some reasons:
- vscode.py 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.py provides a pythonic way of creating the extension. Python has some powerful modules that Javascript doesn't and you can include these with vscode.py
- vscode.py extensions work perfectly with vsce and you can publish your extensions just like you would publish any other extension.
Example Extension
import vscode from vscode import InfoMessage ext = vscode.Extension(name="Test Extension") @ext.event async def on_activate(): vscode.log(f"The Extension '{ext.name}' has started") @ext.command() async def hello_world(ctx): return await ctx.show(InfoMessage(f"Hello World from {ext.name}")) ext.run()
Tutorial
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 required extension 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 in the development window.
- Type
>Hello World
- It should show a popup like this in the bottom right corner
Extensions built using vscode.py
Here's a list of some extensions built using vscode.py. If you'd like to include your extension here feel free to create a PR.
Documentation
The docs are coming soon! In the meantime you can look at the examples in order to learn how vscode.py works and what it offers!






