Features

Composable dev container features. Each installs one tool via devbox global with shell integration and VS Code settings.

Features are published to ghcr.io/devopsbuildingblocks/devcontainer-features/ and follow the Dev Container Feature spec.

Design

Each feature installs its tool via devbox global add, which means tools are isolated in Nix with no system package conflicts and reliable version-pinning across rebuilds. The devbox feature (or an image that already includes it) is a prerequisite for all tool features.

Shell integration is dropped into ~/.shellrc.d/ by the common-utils shell framework, sourced automatically by both bash and zsh.

Feature list

FeatureDescription
awscli2AWS CLI v2
batcat clone with syntax highlighting
claudeClaude Code CLI and VS Code extension
common-utilsNon-root user, shell framework, volume mounts
deltaSyntax-highlighting pager for git diffs
devboxDevbox package manager (Nix-based)
direnvEnvironment switcher with /workspaces whitelisted
ezaModern ls replacement
fdFast, user-friendly find replacement
fzfCommand-line fuzzy finder
geminiGemini CLI and VS Code extension
helmKubernetes package manager
k9sTerminal UI for Kubernetes
kubectlKubernetes command-line tool
lazygitTerminal UI for git
oh-my-poshShell prompt theme engine
ripgrepFast line-oriented search tool
terragruntThin wrapper for Terraform/OpenTofu

Dependency order

Most tool features require devbox first. The images handle this automatically. If you’re composing features on a third-party image, add nix, common-utils, and devbox before any tool features:

"features": {
  "ghcr.io/devcontainers/features/nix:1": {},
  "ghcr.io/devopsbuildingblocks/devcontainer-features/common-utils:0": {},
  "ghcr.io/devopsbuildingblocks/devcontainer-features/devbox:0": {},
  "ghcr.io/devopsbuildingblocks/devcontainer-features/bat:0": {}
}