The Instance Management API provides programmatic access to VS Code extension management inside your containerized environment. Use these endpoints to inventory installed extensions and install new ones from external VSIX URLs—useful for automated deployment workflows, custom extension distribution, and LLM-driven extension management.
Extensions
Section titled “Extensions”GET /api/v1/code/extensions/list
Section titled “GET /api/v1/code/extensions/list”Returns a list of all installed VS Code extensions in the extensions directory. Useful for verifying installation, inventory management, debugging extension issues, and automated testing.
This endpoint takes no parameters.
curl -X GET "https://proj-abc123-cont456-code-1.us-east-1.containers.hoody.icu/api/v1/code/extensions/list"for await (const extensions of client.code.extensions.listIterator()) { console.log(extensions);}Response
Section titled “Response”Extensions installed
{ "success": true, "extensionsDir": "/home/user/.local/share/hoody-code/extensions", "count": 3, "extensions": [ "ms-python.python-2023.1.0", "ms-toolsai.jupyter-2023.2.0", "github.copilot-1.67.0" ]}No extensions installed
{ "success": true, "extensionsDir": "/home/user/.local/share/hoody-code/extensions", "count": 0, "extensions": []}{ "success": false, "error": "Failed to read extensions directory"}POST /api/v1/code/extensions/install
Section titled “POST /api/v1/code/extensions/install”Install a VS Code extension by downloading and installing a VSIX file from a URL. The VSIX file is downloaded to a cache directory and then installed using VS Code’s extension manager. If the extension is already cached, the cached version is used.
This endpoint takes no path, query, or header parameters.
Request Body
Section titled “Request Body”| Field | Type | Required | Default | Description |
|---|---|---|---|---|
url | string | Yes | — | URL to the VSIX file to install. Supports HTTPS URLs (recommended) and HTTP URLs. |
asBuiltin | boolean | No | false | If true, install as a system/built-in extension. Built-in extensions cannot be uninstalled by users. |
curl -X POST "https://proj-abc123-cont456-code-1.us-east-1.containers.hoody.icu/api/v1/code/extensions/install" \ -H "Content-Type: application/json" \ -d '{ "url": "https://github.com/microsoft/vscode-python/releases/download/2023.1.0/ms-python-python-2023.1.0.vsix", "asBuiltin": false }'await client.code.extensions.install({ url: "https://github.com/microsoft/vscode-python/releases/download/2023.1.0/ms-python-python-2023.1.0.vsix", asBuiltin: false});Response
Section titled “Response”Extension installed successfully.
{ "success": true, "message": "Extension installed successfully", "url": "https://example.com/my-extension.vsix", "vsixPath": "/home/user/.local/share/hoody-code/vsix-cache/a1b2c3d4e5f6-my-extension.vsix", "asBuiltin": false, "installed": true}Missing URL
{ "success": false, "error": "Missing or invalid 'url' parameter"}Invalid URL format
{ "success": false, "error": "Invalid URL: not-a-url", "url": "not-a-url"}| Error Code | Title | Description | Resolution |
|---|---|---|---|
MISSING_URL | Missing URL parameter | The required url parameter was not provided | Include a valid VSIX URL in the request body |
INVALID_URL_FORMAT | Invalid URL format | The provided URL is not a valid HTTPS or HTTP URL | Check the URL format and try again |
Download failed
{ "success": false, "error": "HTTP 404 while downloading https://example.com/missing.vsix", "url": "https://example.com/missing.vsix"}Installation failed
{ "success": false, "error": "Installation failed: Extension is incompatible", "url": "https://example.com/extension.vsix"}| Error Code | Title | Description | Resolution |
|---|---|---|---|
DOWNLOAD_FAILED | Failed to download VSIX | Unable to download the extension file from the provided URL | Check if the URL is accessible and try again |
INSTALLATION_FAILED | Extension installation failed | VS Code failed to install the extension (may be incompatible or corrupted) | Verify the VSIX file is valid and compatible with this VS Code version |