Custom dev container Features for enhancing development containers, hosted on GitHub Container Registry. This repository follows the dev container Feature distribution specification.
Installs Oh My Posh, a prompt theme engine for customizing your shell prompt across bash, zsh, and fish.
Usage:
{
"features": {
"ghcr.io/rosstaco/devcontainer-features/ohmyposh:1": {
"version": "latest",
"theme": "jandedobbeleer",
"installPath": "/usr/local/bin",
"shells": "bash,zsh"
}
}
}Options:
version- Oh My Posh version to install (default: "latest")theme- Built-in theme name to use (default: "jandedobbeleer")installPath- Installation directory (default: "/usr/local/bin")shells- Comma-separated list of shells to configure: bash, zsh, fish (default: "bash,zsh")
Custom Themes:
To use a custom theme file from your host machine, add a mount in your devcontainer.json:
{
"features": {
"ghcr.io/rosstaco/devcontainer-features/ohmyposh:1": {}
},
"mounts": [
"source=${localEnv:HOME}/path/to/theme.json,target=/home/vscode/.ohmyposh.json,type=bind"
]
}The feature creates a placeholder file at ~/.ohmyposh.json during installation. If you mount a custom theme to this location, it will be used automatically. Otherwise, the built-in theme specified in the options will be used.
Installs Microsoft Security DevOps CLI (guardian command) for running security analysis tools without requiring .NET installation.
Usage:
{
"features": {
"ghcr.io/rosstaco/devcontainer-features/microsoft-security-devops-cli:1": {
"version": "latest"
}
}
}Options:
version- Version to install (default: "latest"). Use "latest" or a specific version like "0.215.0"installPath- Installation directory (default: "/usr/local/bin/guardian")
Supported Architectures:
- linux-x64 (x86_64)
- linux-arm64 (aarch64)
Running Guardian:
After installation, the guardian command is available in your PATH. To initialize guardian in your repository:
guardian init --forceNote: guardian init requires a git repository, so it must be run manually after the container starts (not during feature installation).
Persists GitHub Copilot CLI settings and chat history across container rebuilds using a named Docker volume.
Usage:
{
"features": {
"ghcr.io/devcontainers/features/copilot-cli:1": {},
"ghcr.io/rosstaco/devcontainer-features/copilot-persistence:1": {}
}
}How It Works:
- Mounts a named volume (scoped per dev container) to
/copilot-data - Creates a symlink from
~/.copilot→/copilot-data - Sets the
COPILOT_DATA_DIRenvironment variable to/copilot-data
What Persists:
- Chat history and sessions
- CLI configuration (model preferences, settings)
- Command history
- Trusted folders
This repository uses a GitHub Action workflow that publishes each Feature to GHCR (GitHub Container Registry).
Features in this repository are referenced with:
ghcr.io/rosstaco/devcontainer-features/<feature>:1
By default, GHCR packages are marked as private. To make them publicly accessible, navigate to the Feature's package settings page in GHCR and set the visibility to public:
https://github.com/users/rosstaco/packages/container/devcontainer-features%2F<featureName>/settings
To add Features to the public index:
- Go to github.com/devcontainers/devcontainers.github.io
- Open a PR to modify the collection-index.yml file
This allows tools like VS Code Dev Containers and GitHub Codespaces to surface your Features in their creation UI.