Openvsx
An open-source registry for VS Code extensions
Install / Use
/learn @eclipse-openvsx/OpenvsxQuality Score
Category
Development & EngineeringSupported Platforms
README
Eclipse Open VSX
[!IMPORTANT] This repository has been moved from its previous location at eclipse/openvsx. During the repository transfer, already released packages have not been transferred and are still accessible at their previous location to ease migration.
Releases upto
v0.32.3are accessible at ghcr.io/eclipse/openvsx-server and ghcr.io/eclipse/openvsx-webui.Releases starting from
v0.33.0are accessible at ghcr.io/eclipse-openvsx/openvsx-server and ghcr.io/eclipse-openvsx/openvsx-webui.
Open VSX is a vendor-neutral open-source alternative to the Visual Studio Marketplace. It provides a server application that manages VS Code extensions in a database, a web application similar to the VS Code Marketplace, and a command-line tool for publishing extensions similar to vsce.
A public instance of Open VSX is running at open-vsx.org. Please report issues related to that instance at EclipseFdn/open-vsx.org.
For information on publishing and managing extensions at open-vsx.org, please see the EclipseFdn/open-vsx.org wiki.
Getting Started
See the openvsx Wiki for documentation of general concepts and usage of this project.
Development
- The easiest way to get a development environment for this project is to open it in Gitpod.
Click Open Browser on port 3000 to see the running web application.
- Open a development environment in Red Hat OpenShift Dev Spaces, it is an open source product based on Eclipse Che that is running on OpenShift Dedicated.
cli
yarn build— build the library andovsxcommandyarn watch— watch (build continuously)
The command line tool is available at cli/lib/ovsx.
webui
The default frontend is the one bundled in the Docker image, and is also used for testing in the development environment. It depends on the compiled library, so make sure to build or watch the library before you build or watch the default frontend.
yarn build— build the libraryyarn watch— watch (build continuously)yarn build:default— build the default frontend (run vite)yarn watch:default— run vite in watch modeyarn start:default— start Express to serve the frontend on port 3000yarn dev— use vite to serve the frontend in development mode on port 3000
The Express server is started automatically in Gitpod. A restart is usually not necessary.
server
./gradlew build— build and test the server./gradlew assemble -t— build continuously (the server is restarted after every change)./gradlew runServer— start the Spring server on port 8080./scripts/test-report.sh— display test results on port 8081
The Spring server is started automatically in Gitpod. It includes spring-boot-devtools which detects changes in the compiled class files and restarts the server.
OAuth Setup
If you would like to test authorization through GitHub, you need to create an OAuth app with a callback URL pointing to the exposed port 8080 of your Gitpod workspace. You can get it by calling a script:
server/scripts/callback-url.sh github
Note that the callback URL needs to be updated on GitHub whenever you create a fresh Gitpod workspace.
After you created the GitHub OAuth app, the next step is to copy the Client ID and Client Secret into Gitpod environment variables named GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET and bound to this repository. If you change the variables in a running workspace, run scripts/generate-properties.sh in the server directory to update the application properties.
With these settings in place, you should be able to log in by authorizing your OAuth app.
Docker Compose Setup
If you prefer to quickly get started with a local, docker-based development environment, you can use the approach described in our docker compose setup. You can use our docker compose profiles, allowing you the option to either run a service directly in a docker container or to manually build and run it on your local machine.
Google Cloud Setup
If you would like to test file storage via Google Cloud, follow these steps:
- Create a GCP project and a bucket.
- Make the bucket public by granting the role "Storage Object Viewer" to
allUsers. - Configure CORS on the bucket with origin
"*"and method"GET". - Create environment variables named
GCP_PROJECT_IDandGCS_BUCKET_IDcontaining your GCP project and bucket identifiers. If you change the variables in a running workspace, runscripts/generate-properties.shin theserverdirectory to update the application properties. - Create a GCP service account with role "Storage Object Admin" and copy its credentials file into your workspace.
- Create an environment variable
GOOGLE_APPLICATION_CREDENTIALScontaining the path to the credentials file.
Azure Setup
If you would like to test file storage via Azure Blob, follow these steps:
- Create a file storage account and a container named
openvsx-resources(a different name is possible if you change theovsx.storage.azure.blob-containerproperty). - Allow Blob public access in the storage account and set the container's public access level to "Blob".
- Configure CORS in your storage account with origin
"*", method"GET"and allowed headers"x-market-client-id, x-market-user-id, x-client-name, x-client-version, x-machine-id, x-client-commit" - Create an environment variable
AZURE_SERVICE_ENDPOINTwith the "Blob service" URL of your storage account. If you change the variables in a running workspace, runscripts/generate-properties.shin theserverdirectory to update the application properties. - Generate a "Shared access signature" and put its token into an environment variable
AZURE_SAS_TOKEN.
If you also would like to test download count via Azure Blob, follow these steps:
- Create an additional storage account for diagnostics logging.
- IMPORTANT: set the same location as the file storage account (e.g. North Europe).
- Disable Blob public access.
- In the file storage account
- Open the diagnostic settings (
Monitoring->Diagnostic settings (preview)).- Click
blob. - Click
Add diagnostic setting. - Select
StorageRead,TransactionandArchive to a storage account. - Select the diagnostic storage account you created in the previous step as
Storage account.
- Click
- Open the diagnostic settings (
- Back to the diagnostic storage account
- Navigate to
Data Storage->Containers- The
insights-logs-storagereadcontainer should have been added (it might take a few minutes and you might need to do some test downloads or it won't get created). - Create a "Shared access token" for the
insights-logs-storagereadcontainer.- Click on the
insights-logs-storagereadcontainer.
- Click on the
- The
- Navigate to
Related Skills
node-connect
345.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
106.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
345.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
345.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
