This repository contains a collection of DevContainer Features developed and maintained by baxyz.
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
Installs Biome, a fast formatter, linter, and more for web projects. One toolchain for your web project.
Key benefits:
- Fast formatter and linter for JavaScript, TypeScript, JSX, JSON, CSS, and more
- Replace Prettier and ESLint with a single tool
- Multi-architecture support (x86_64, aarch64)
- Configurable version installation
- Lightweight single binary
Features from this repository are available via GitHub Container Registry. Reference them in your devcontainer.json:
{
"features": {
"ghcr.io/baxyz/devcontainer-features/shell-history-per-project:0": {},
"ghcr.io/baxyz/devcontainer-features/git-absorb:0": {},
"ghcr.io/baxyz/devcontainer-features/biome:0": {}
}
}| Feature | Description | Documentation |
|---|---|---|
| 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 |
| biome | Fast formatter, linter, and more for web projects | README |
This repository follows the DevContainer Features specification and is compatible with the DevContainer Features distribution.
.
├── src/
│ └── shell-history-per-project/
│ ├── devcontainer-feature.json
│ ├── install.sh
│ └── README.md
├── test/
│ └── 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.