Skip to main content

No project description provided

Project description

uVSCEM

PyPI - Version PyPI - Python Version PyPI - Implementation PyPI - License Lint Test Publish codecov

uVSCEM is a VS Code extension installer for restricted environments.

It helps when normal extension installation fails because of proxy issues, controlled outbound access, or air-gapped workflows. It can also export and import offline extension bundles.

What it does

  • Reads extension IDs from your devcontainer.json.
  • Downloads VSIX packages and marketplace signatures.
  • Verifies extension signatures using vsce-sign.
  • Installs extensions in a DevContainer-compatible way.
  • Supports offline bundles (export and import).

Requirements

  • Python 3.10+
  • VS Code CLI (code) available in your environment
  • Access to your devcontainer.json

Platform support

uVSCEM auto-detects common VS Code runtime environments and can fall back to local CLI discovery on macOS and Windows.

The primary tested target is still Linux, especially DevContainer and VS Code Remote (.vscode-server) environments.

Install

pip install uvscem

You can also use uv or pipx if you prefer.

Quick start (DevContainer)

Add uVSCEM to your container image, then call it from postAttachCommand:

{
  "postAttachCommand": "uvscem install --config-name /path/to/devcontainer.json"
}

This installs (and updates) extensions listed in your config each time the container is attached.

Commands

Install extensions directly:

uvscem install --config-name ./devcontainer.json

Pinning is supported in devcontainer.json using publisher.extension@version:

{
  "customizations": {
    "vscode": {
      "extensions": [
        "dbaeumer.vscode-eslint@3.0.10"
      ]
    }
  }
}

Export an offline bundle:

uvscem export --config-name ./devcontainer.json --bundle-path ./uvscem-offline-bundle

Import an offline bundle without network access:

uvscem import --bundle-path ./uvscem-offline-bundle --strict-offline

Optional manifest authenticity checks:

uvscem export --config-name ./devcontainer.json --manifest-signing-key YOUR_GPG_KEY_ID
uvscem import --bundle-path ./uvscem-offline-bundle --verify-manifest-signature

Proxy note

uVSCEM follows standard proxy environment variables such as HTTP_PROXY, HTTPS_PROXY, and NO_PROXY.

Why this exists

uVSCEM is a practical workaround for known VS Code proxy/devcontainer limitations, including:

Contributing

Development setup, testing, and release details are in CONTRIBUTING.md.

A big thank you to the following people

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uvscem-1.0.0.tar.gz (93.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uvscem-1.0.0-py3-none-any.whl (25.3 kB view details)

Uploaded Python 3

File details

Details for the file uvscem-1.0.0.tar.gz.

File metadata

  • Download URL: uvscem-1.0.0.tar.gz
  • Upload date:
  • Size: 93.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for uvscem-1.0.0.tar.gz
Algorithm Hash digest
SHA256 4930e0da05f1c9a9c1bc6ad15edc9be6a48320b47b9032cb76a3a3f1a2ad19ca
MD5 159a0eb0b9a242e969f52a405d5a566d
BLAKE2b-256 6fa5abdecdea4e604fd45a28be1f99615360fd95e31144630dc6c8283c35aa0d

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvscem-1.0.0.tar.gz:

Publisher: publish.yml on macgeneral/uVSCEM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uvscem-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: uvscem-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 25.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for uvscem-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 137d0e9d492f96c4d1e8f1770e4c0973851606ffc2f04258bd314c0721fa19e0
MD5 8fd9f68fac3a656c00a2adb534d6e865
BLAKE2b-256 831596047be5eb084511a219dc7dc104c4846ae0ef164565bfce9d5de1ca3489

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvscem-1.0.0-py3-none-any.whl:

Publisher: publish.yml on macgeneral/uVSCEM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page