{"id":20250454,"url":"https://github.com/3timeslazy/vscodium-devpodcontainers","last_synced_at":"2025-04-10T22:50:23.763Z","repository":{"id":248094873,"uuid":"827062402","full_name":"3timeslazy/vscodium-devpodcontainers","owner":"3timeslazy","description":"VSCodium extension for devcontainer remote development using DevPod.","archived":false,"fork":false,"pushed_at":"2024-12-05T01:09:29.000Z","size":3108,"stargazers_count":22,"open_issues_count":7,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-24T19:45:08.018Z","etag":null,"topics":["devcontainer","devcontainers","devpod","hacktoberfest","vscodium"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/3timeslazy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-11T00:26:14.000Z","updated_at":"2025-02-27T11:05:28.000Z","dependencies_parsed_at":"2024-07-20T19:53:48.830Z","dependency_job_id":"7cf64a85-7682-46dd-851c-5bba0a7e97aa","html_url":"https://github.com/3timeslazy/vscodium-devpodcontainers","commit_stats":null,"previous_names":["3timeslazy/vscodium-devpodcontainers"],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3timeslazy%2Fvscodium-devpodcontainers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3timeslazy%2Fvscodium-devpodcontainers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3timeslazy%2Fvscodium-devpodcontainers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3timeslazy%2Fvscodium-devpodcontainers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/3timeslazy","download_url":"https://codeload.github.com/3timeslazy/vscodium-devpodcontainers/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248312168,"owners_count":21082637,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["devcontainer","devcontainers","devpod","hacktoberfest","vscodium"],"created_at":"2024-11-14T09:58:30.216Z","updated_at":"2025-04-10T22:50:23.751Z","avatar_url":"https://github.com/3timeslazy.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DevPod Containers\n\n\u003cdiv\u003e\n    \u003ca href=\"https://codeberg.org/3timeslazy/vscodium-devpodcontainers\"\u003e\n        \u003cimg alt=\"Get it on Codeberg\" src=\"https://img.shields.io/badge/Codeberg-2185D0?style=for-the-badge\u0026logo=Codeberg\u0026logoColor=white\" height=\"60\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/3timeslazy/vscodium-devpodcontainers\"\u003e\n        \u003cimg alt=\"Get it on Codeberg\" src=\"https://img.shields.io/badge/GitHub-100000?style=for-the-badge\u0026logo=github\u0026logoColor=white\" height=\"60\"\u003e\n    \u003c/a\u003e\n\u003c/div\u003e\n\n---\n\nVSCodium extension for remote development with devcontainers using [DevPod](https://github.com/loft-sh/devpod).\n\n\u003e The extension is written by me and for me, so it lacks many features or may be confusing to use. So, if you find anything confusing or missing feel free to create an issue or a PR.\n\nhttps://github.com/user-attachments/assets/69f34f33-14e5-4bcd-a96e-8b069e1727ef\n\n## Features\n\n- Works with VS Codium.\n- Aware of differen container engines. Will add Podman's `--userns=keep-id` for you.\n- Supports alternative extension registries.\n\n## Installation\n\n**Enable experimental API for the extension**. This is needed for displaying devcontainers in Remote Explorer. Create or modify `argv.json` file with the following content:  \n\n```jsonc\n{\n  // ...\n  \"enable-proposed-api\": [\n    // ...\n    \"3timeslazy.vscodium-devpodcontainers\",\n  ],\n}\n```\n\nFind the file you need to update with `Preferences: Configure Runtime Arguments` command.\n\n**Install the extension itself.**\n\nThe extension is available on [Open VSX Marketplace](https://open-vsx.org/extension/3timeslazy/vscodium-devpodcontainers). Just type \"DevPod Containers\" in the extension tab and find the extension published by `3timeslazy`.\n\nAlternatively, you can download the .vsix file from either Open VSX or GitHub releases and run\n\n```sh\n$ code --install-extension /path/to/vsix\n```\n\n**Install [devpod](https://devpod.sh/docs/getting-started/install#optional-install-devpod-cli) command**\n\n**Make sure you have _ssh_ command.**\n\nYou can check whether the command exist by execution `which ssh` in the terminal.\n\n## Customizations\n\nThe extensions support two customizations formats, that you can add to `devcontainer.json`:\n\n- **vscode**. VS Code standard format\n- **vscodium**. Experimental format with additional features\n\nFor comparison, that's how the **vscode** format looks like:\n\n```jsonc\n{\n  \"customizations\": {\n    \"vscode\": {\n      \"settings\": {\n        \"go.useLanguageServer\": true,\n        \"go.gopath\": \"/go\",\n      },\n      \"extensions\": [\"golang.Go\", \"connor4312.esbuild-problem-matchers\"],\n    },\n  },\n}\n```\n\nAnd that's an example of **vscodium** format:\n\n```jsonc\n{\n  \"customizations\": {\n    \"vscodium\": {\n      // Settings are not yet supported\n      //\n      // \"settings\": {\n      //    \"go.useLanguageServer\": true,\n      //    \"go.gopath\": \"/go\"\n      // },\n\n      // Here you can define additional registries, which can later\n      // be referred in the \"extensions\" section.\n      //\n      // OpenVSX here is just an example, if you use VS Codium\n      // without any product.json modifications, just skip this part.\n      //\n      // This part is intended to be of use for enterprises and anyone with their private\n      // extensions registry. See: https://github.com/coder/code-marketplace\n      \"registries\": {\n        // Registry alias to be used in the \"extensions\" section.\n        \"openvsx\": {\n          // Registry base url. Must be compatible with OpenVSX API.\n          // See: https://github.com/eclipse/openvsx/wiki/Using-Open-VSX-in-VS-Code\n          \"url\": \"https://open-vsx.org/vscode/gallery\",\n\n          // Random headers you'd like to add to all registry requests.\n          \"headers\": {\n            \"Accept\": \"application/json\",\n          },\n        },\n\n        // NOTE: Please, remember that putting Microsoft's Marketplace URL\n        // may be prohibited by its Terms of Use.\n        // See: https://cdn.vsassets.io/v/M190_20210811.1/_content/Microsoft-Visual-Studio-Marketplace-Terms-of-Use.pdf\n      },\n\n      // Extensions configuration\n      \"extensions\": {\n        // This extension will be downloaded from your editor's\n        // default registry, which is OpenVSX for VS Codium and\n        // Visual Studio Marketplace for VS Code.\n        \"golang.Go\": {},\n\n        // If you wish, you can specify the desired registry and\n        // version for the extension.\n        \"webben.browserslist\": {\n          \"registry\": \"openvsx\",\n          \"version\": \"11.0.0\",\n        },\n      },\n    },\n  },\n}\n```\n\nThe key difference between the formats is that the extension gives developers more control and options in dealing with remote extensions.\n\n## Dependencies\n\n- **devpod** CLI\n- **ssh**\n\n## FAQ\n\n### Why not use the Dev Containers from VS Code?\n\nBecause Microsoft Devcontainer is a proprietary extension incompatible with VS Codium.\n\n### Why it is not on VS Code Marketplace?\n\nBecause Microsoft is a VS Code gatekeeper and won't allow anyone to publish an extension if it uses [Proposed API](https://code.visualstudio.com/api/advanced-topics/using-proposed-api). [Except Microsoft and its \"partners\"](https://github.com/microsoft/vscode/issues/137744#issuecomment-989889396), of course.\n\nMeanwhile, these API are the only way to implement an extension like [Open Remote SSH](https://github.com/jeanp413/open-remote-ssh) or Devcontainers.\n\nMicrosoft promises to allow everyone to use these API and publish extensions based on them in the future, once these API are \"stable\". But it's been many years since Microsoft first [published an extension backed by a proposed API](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh). It has also published many other extensions supported by the same API. However, the API is \"unstable\" and doesn't seem to be going to stabilise anytime soon.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3timeslazy%2Fvscodium-devpodcontainers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F3timeslazy%2Fvscodium-devpodcontainers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3timeslazy%2Fvscodium-devpodcontainers/lists"}