A collection of opinionated dev container features built for my own workflows — open for anyone to use.
Reference features in your devcontainer.json:
Several features bind-mount host paths (CLI auth and config) so state is shared with tools on the host. Docker cannot mount those sources until they exist.
Features that need this declare a host init command under customizations.sliekens.initializeCommand. Add oneinitializeCommand to your devcontainer.json — it runs every feature’s command and composes when you enable more than one:
"initializeCommand": "devcontainer read-configuration --workspace-folder . --include-merged-configuration | jq -r '(.mergedConfiguration.customizations.sliekens // []) | .[] | .initializeCommand' | xargs -I{} bash -c {}"Requires devcontainer and jq on the host PATH.
Note: This pipeline runs only on Unix-like systems (Linux, macOS, and source code inside WSL2 on Windows). Native Windows (
cmd.exe) is not supported — the Dev Containers CLI runsinitializeCommandvia/bin/sh -con Unix andcmd.exe /con native Windows.
As an alternative to automating with the Dev Containers CLI, jq, and xargs, you can pre-create the host paths yourself (see each feature’s README for the exact mkdir / touch recipe).
| Feature | Description |
|---|---|
ansible | Installs ansible and associated CLI tools using pipx |
ansible-core | Installs ansible-core via pipx with optional Ansible Galaxy collections and roles |
ansible-lint | Installs ansible-lint using pipx |
aspire-cli | Installs the Aspire CLI (aspire) |
bitwarden-agent-access | Installs the Bitwarden Agent Access CLI (aac) binary from Bitwarden release assets. |
bitwarden-cli | Installs the official Bitwarden CLI (bw) binary from Bitwarden release assets. |
bitwarden-secrets-manager | Installs the Bitwarden Secrets Manager CLI (bws) binary from Bitwarden release assets. |
claude | Installs claude (Claude Code) via the upstream native installer and persists shared state across devcontainers. |
codex | Installs the OpenAI codex CLI from the official packaged release assets and persists ~/.codex in shared state across devcontainers. |
copilot | Installs the GitHub copilot CLI from official release assets and persists shared ~/.copilot state across devcontainers. |
cursor-agent | Installs the Cursor CLI (agent / cursor-agent) from official release assets and persists shared ~/.cursor state across devcontainers. |
github-cli | Wraps the official gh (GitHub CLI) feature and adds persistent volume mounts for config and state |
grok-build | Installs the xAI grok CLI (Grok Build) via the upstream installer and persists shared ~/.grok state across devcontainers. |
mistral-vibe | Installs Mistral Vibe CLI coding agent using Python virtual environment and persists shared state across devcontainers. |
mono | Installs mono-complete from the official Mono stable repository |
omp | Installs the Oh My Pi coding agent CLI (omp) from official prebuilt release assets (noninteractive, derived from https://omp.sh/install) and persists shared ~/.omp state across devcontainers. Requires Bun 1.3.14+ or Node.js as a peer dependency for the full harness. |
opencode | Installs opencode from official GitHub release assets and persists shared state across devcontainers. |
pi | Installs the Pi coding agent CLI (pi) via a noninteractive npm install and persists shared ~/.pi state across devcontainers. Requires Node.js 22.19+ with npm as a peer dependency. |
rename-user | Renames the default container user (vscode) to match the configured remoteUser, preserving sudo access. |
tea | Installs the Gitea CLI (tea) from Gitea releases and enables shell completion via bash_completion.d and zsh site-functions. |
worktrunk | Installs the Worktrunk CLI (wt and git-wt) from official GitHub release assets, sets a container-safe system worktree-path default, and persists ~/.config/worktrunk across devcontainers. |
Features are published to: ghcr.io/sliekens/devcontainer-features/<feature-id>:<version>
Each feature is published with multiple version tags following semver:
:1- Major version (recommended for most users):1.0- Minor version:1.0.0- Exact patch version:latest- Latest version (may include breaking changes)
Recommendation: Pin to the major version (e.g., :1) to receive bug fixes and minor updates without breaking changes.
See CONTRIBUTING.md for information on:
- Creating new features
- Testing features locally
- Publishing to the registry
{ "image": "mcr.microsoft.com/devcontainers/base:ubuntu", "features": { "ghcr.io/sliekens/devcontainer-features/ansible-core:1": { "collections": "community.general", }, }, }