Skip to content

This repository contains a collection of DevContainer Features developed and maintained by helpers4.

License

Notifications You must be signed in to change notification settings

helpers4/devcontainer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DevContainer Features by helpers4

This repository contains a collection of DevContainer Features developed and maintained by helpers4.

Published at: ghcr.io/helpers4/devcontainer/<feature-name>

Features

vite-plus

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

📖 Documentation

package-auto-install

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

📖 Documentation

angular-dev

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

📖 Documentation

shell-history-per-project

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

📖 Documentation

git-absorb

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

📖 Documentation

local-mounts

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

📖 Documentation

Usage

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": {}
    }
}

Available Features

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

Development

This repository follows the DevContainer Features specification and is compatible with the DevContainer Features distribution.

Repository Structure

.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 

Testing

Features can be tested locally using the DevContainer CLI:

devcontainer features test --features shell-history-per-project

Publishing

Features are automatically published to GitHub Container Registry via GitHub Actions when tagged releases are created.

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Add your feature following the established patterns
  4. Test your feature locally
  5. Submit a pull request

License

This project is licensed under the GNU Affero General Public License v3.0. See LICENSE for details.

Acknowledgments

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.

About

This repository contains a collection of DevContainer Features developed and maintained by helpers4.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • Shell 100.0%