aicage - Runs agentic coding assistants in Docker containers
This project holds samples for customization of aicage images.
Aicage images are built in layers:
- base-image: The core layer with the OS and all software needed for development
- agent: The coding agent is added to a base-image
- optional extensions: Custom extensions add more software to images
All layers can be fully customized. Users can write their own, and aicage builds the remaining layers on the user's PC.
aicage also updates the images when needed by checking:
- base-image digest local vs. remote
- agent version
- (extensions currently not checked)
Clone this repo to ~/.aicage-custom and start aicage with a coding agent.
git clone https://github.com/aicage/aicage-custom-samples.git ~/.aicage-custom
aicage <AGENT>Extensions are the easiest way to add more software to Aicage images.
Current extension samples in this repository:
act: Run GitHub Actions locallycrane: Install cranecosign: Install sigstore/cosigndotnet: Install the .NET SDKgcloud: Install the Google Cloud CLIgh: Install GitHub CLInvidia-cuda: Install NVIDIA CUDA user-space toolingphp: Install PHP CLI tooling and Composerregctl: Install regctlshellcheck: Install ShellCheckskopeo: Work with remote container images and registries
Aicage will automatically build a custom image with your chosen extensions on top of the base+agent image.
You can easily add your own extension by adding a folder to ~/.aicage-custom/extensions.
Examples/Templates:
Current custom agent samples in this repository:
auggieforgekimivibe
Use one with:
aicage <AGENT>Aicage will automatically build a custom image with your chosen base.
You can easily add your own custom agent by adding a folder to ~/.aicage-custom/agents.
Examples/Templates:
- auggie
- forge
- kimi
- vibe
- aicage-image/agents for the builtin agents.
Current custom base-image samples in this repository:
actdebian-mirrorminimalphp
Extensions are much easier and more convenient than custom bases.
Add a folder to ~/.aicage-custom/base-images for your personal base-image.
Examples/Templates:
- act
- debian-mirror
- minimal
- php
- aicage-image-base/bases for the builtin bases
Notes:
- A base-image must contain everything for development.
- Plus the
entrypoint.shfromaicage- feel free to copy and extend it.- Use the same
base.ymlschema as the builtin bases.
aicage builds images automatically on start, this helps when writing your custom base-image.
Test-build it with (example for base minimal):
BASE=minimal
FROM_IMAGE=alpine:latest
docker build \
--tag aicage-image-base:${BASE} \
--build-arg FROM_IMAGE=${FROM_IMAGE} \
~/.aicage-custom/base-images/${BASE}You can validate your YAML files against their schemas.
cd ~/.aicage-custom
echo "Setting up dependencies"
python3 -m venv .venv
source .venv/bin/activate
pip install check-jsonschema
echo "Validate agent.yml files with schema"
check-jsonschema \
--schemafile validation/agent.schema.json \
agents/*/agent.yml
echo "Validate base.yml files with schema"
check-jsonschema \
--schemafile validation/base.schema.json \
base-images/*/base.yml
echo "Validate extension.yml files with schema"
check-jsonschema \
--schemafile validation/extension.schema.json \
extensions/*/extension.yml