This repository contains a collection of DevContainer Features developed and maintained by helpers4.
Published at: ghcr.io/helpers4/devcontainer/<feature-name>
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.
Key benefits:
- Git configuration available inside container
- SSH keys for Git operations and remote connections
- GPG keys for commit signing
- npm authentication for private registries
Features from this repository are available via GitHub Container Registry. Reference them in your devcontainer.json:
{
"features": {
"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 |
|---|---|---|
| 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.
.
├── src/
│ ├── 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/
│ ├── angular-dev/
│ │ └── test.sh
│ ├── git-absorb/
│ │ └── test.sh
│ ├── local-mounts/
│ │ └── test.sh
│ └── shell-history-per-project/
│ └── test.sh
└── README.md
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.