https://github.com/devcontainers-community/features
๐งฐ Community-driven collection of addons for @devcontainers
https://github.com/devcontainers-community/features
collection community devcontainer-feature devcontainers
Last synced: 9 months ago
JSON representation
๐งฐ Community-driven collection of addons for @devcontainers
- Host: GitHub
- URL: https://github.com/devcontainers-community/features
- Owner: devcontainers-community
- Created: 2023-03-07T01:48:46.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-09-05T19:44:35.000Z (over 2 years ago)
- Last Synced: 2025-04-14T01:18:21.582Z (9 months ago)
- Topics: collection, community, devcontainer-feature, devcontainers
- Homepage:
- Size: 88.9 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Community Dev Container Features
๐งฐ Community-driven collection of addons for [@devcontainers]
โ Add extra features to your GitHub Codespace \
๐ณ Use JSON, not Dockerfiles! \
๐จโ๐ฉโ๐งโ๐ฆ Community-driven maintainership
[](https://github.com/devcontainers-community/features/discussions/new?category=ideas) ย
[](https://github.com/orgs/devcontainers-community/discussions/new?category=general)
- **[TinyGo](https://github.com/devcontainers-community/features-tinygo#readme)** - ๐ค Installs tinygo from tinygo-org/tinygo
- **[SurrealDB](https://github.com/devcontainers-community/features-surrealdb)**
- **Bazel** - Bazel feature
- **[direnv](http://github.com/devcontainers-community/features-direnv)** - direnv is an extension for your shell. It augments existing shells with a new feature that can load and unload environment variables depending on the current directory.
- **[llvm](https://github.com/devcontainers-community/features-llvm)** - Installs llvm on debian based systems
- **Deno** - Installs Deno
[โ๏ธ See all features at containers.dev/features](https://containers.dev/features)
## Usage


To add any feature to your Dev Container, just add something like this to your
`devcontainer.json` file:
```jsonc
// devcontainer.json
{
"features": {
"ghcr.io/devcontainers-community/features/cmake": {},
"ghcr.io/devcontainers-community/features/llvm": {},
"ghcr.io/devcontainers-community/features/gcc": {}
}
}
```
โ Don't know what this โ means? Check out [this VS Code blog post].
Some features may have additional options that you can configure. ๐ ๏ธ For
example, the CMake feature lets you pin the version like this. Make sure you
check each feature's documentation for more information on what options are
available and what they do. ๐ป
```jsonc
// devcontainer.json
{
"features": {
"ghcr.io/devcontainers-community/features/cmake": { "version": "3.15.0" },
"ghcr.io/devcontainers-community/features/gcc": { "version": "11.3.0" }
}
}
```
## Development

This is just the **collection index** of all the features that we have. The
actual source code for each feature is housed in each feature's own repository.
๐ Why do this? Because it makes it much easier to use a release-based workflow.
โน This magic index image is only really used by [containers.dev/features] and
other indexing tools. You can use Dev Container Features without an index just
fine.
To add a new feature, you can [open an Issue]. It'll probably result in some
kind of new repository being created (or [transferred] to us if you've already
coded it up) and you being granted unrestricted access to manage it how you see
fit. ๐ค
If you want to become a Member of this organization, just [open an Issue] and
we'll get you set up. ๐ We're very open to new people.
[this vs code blog post]: https://code.visualstudio.com/blogs/2022/09/15/dev-container-features
[@devcontainers]: https://github.com/devcontainers
[open an issue]: https://github.com/devcontainers-community/features/issues/new
[transferred]: https://docs.github.com/en/github/administering-a-repository/transferring-a-repository
[containers.dev/features]: https://containers.dev/features