This repository contains a collection of DevContainer Features developed and maintained by helpers4.
Published at: ghcr.io/helpers4/devcontainer/<feature-name>
Complete Vite+ toolchain setup with VS Code extensions (Oxc, Vitest), optimized configuration, and optional global CLI tools. Perfect for modern web development with React, Vue, Svelte, and more.
Key benefits:
- Pre-configured Oxc formatter/linter (100x faster than ESLint)
- Vitest test explorer integration
- Smart defaults for Vite+ development
- Global Oxc CLI installation option
- Project setup helper command
- Supports all Vite-compatible frameworks
Automatically detects and runs npm/yarn/pnpm install in non-interactive mode after container creation. Handles corepack setup for Node 24+ and intelligently detects the package manager from package.json or lockfiles.
Key benefits:
- Automatic package manager detection from package.json or lockfiles
- Corepack support for Node 24+ (auto-installs if needed)
- Non-interactive mode (CI=true) prevents prompts
- Smart command selection (npm ci, pnpm --frozen-lockfile, yarn --immutable)
- Eliminates need for manual postCreateCommand
Angular-specific development environment with VS Code extensions and CLI autocompletion.
Key benefits:
- Essential VS Code extensions for Angular development
- CLI autocompletion for zsh and bash
- Optional Angular CLI installation
- Ready-to-use Angular development setup
Persist shell history per project by automatically detecting and configuring all available shells (zsh, bash, fish). Supports auto-detection or manual shell selection.
Key benefits:
- Per-project history isolation
- Persistent across container rebuilds
- Multiple shell support (zsh, bash, fish)
- Team collaboration friendly
- Clean separation between personal and project commands
Installs git-absorb, a tool that automatically absorbs staged changes into their logical commits. Like 'git commit --fixup' but automatic.
Key benefits:
- Automatic fixup commits for staged changes
- Multi-architecture support (x86_64, aarch64)
- Git subcommand integration
- Lightweight single binary installation
- Perfect for cleaning up commit history
Mounts local Git, SSH, GPG, and npm configuration files into the devcontainer for seamless development authentication. Now with proper SSH agent forwarding support.
Key benefits:
- Git configuration available inside container
- SSH keys and SSH agent forwarding configured automatically
- GPG keys for commit signing
- npm authentication for private registries
- Fixed SSH_AUTH_SOCK handling for devcontainer compatibility
Features from this repository are available via GitHub Container Registry. Reference them in your devcontainer.json:
{
"features": {
"ghcr.io/helpers4/devcontainer/vite-plus:1": {},
"ghcr.io/helpers4/devcontainer/package-auto-install:1": {},
"ghcr.io/helpers4/devcontainer/angular-dev:1": {},
"ghcr.io/helpers4/devcontainer/shell-history-per-project:1": {},
"ghcr.io/helpers4/devcontainer/git-absorb:1": {},
"ghcr.io/helpers4/devcontainer/local-mounts:1": {}
}
}| Feature | Description | Documentation |
|---|---|---|
| vite-plus | Complete Vite+ toolchain with Oxc, Vitest, and VS Code integration | README |
| package-auto-install | Automatic package installation with corepack support for Node 24+ | README |
| angular-dev | Angular development environment with extensions and CLI autocompletion | README |
| shell-history-per-project | Per-project shell history persistence with multi-shell auto-detection | README |
| git-absorb | Automatic absorption of staged changes into logical commits | README |
| local-mounts | Mount local Git, SSH, GPG, and npm config into devcontainer | README |
This repository follows the DevContainer Features specification and is compatible with the DevContainer Features distribution.
.package-auto-install/
│ │ ├── devcontainer-feature.json
│ │ ├── install.sh
│ │ └── README.md
│ ├── angular-dev/
│ │ ├── devcontainer-feature.json
│ │ ├── install.sh
│ │ └── README.md
│ ├── git-absorb/
│ │ ├── devcontainer-feature.json
│ │ ├── install.sh
│ │ └── README.md
│ ├── local-mounts/
│ │ ├── devcontainer-feature.json
│ │ ├── install.sh
│ │ └── README.md
│ └── shell-history-per-project/
│ ├── devcontainer-feature.json
│ ├── install.sh
│ └── README.md
├── test/
│ ├── package-auto-install/
│ │ └── test.sh── install.sh
│ └── README.md
├── test/
│ ├── angular-dev/
│ │ └── test.sh
│ ├── git-absorb/
│ │ └── test.sh
│ ├── local-mounts/
│ │ └── test.sh
│ └── shell-history-per-project/
│ └── test.sh
└── README.mdpackage-auto-install
devcontainer features test --features
Features can be tested locally using the DevContainer CLI:
devcontainer features test --features shell-history-per-projectFeatures are automatically published to GitHub Container Registry via GitHub Actions when tagged releases are created.
- Fork the repository
- Create a feature branch
- Add your feature following the established patterns
- Test your feature locally
- Submit a pull request
This project is licensed under the GNU Affero General Public License v3.0. See LICENSE for details.
Inspired by the DevContainers Features repository and stuart leeks' dev-container-features for the shell-history concept, with the key difference being project-scoped rather than global user history persistence.