entersh

Dev containers for AI coding agents.
One script. No YAML. No Compose.

Quick start

Linux

curl -fsSL https://github.com/entershdev/entersh/releases/latest/download/enter.sh -o enter.sh
chmod +x enter.sh
./enter.sh

macOS / Windows (WSL2)

curl -fsSL https://github.com/entershdev/entersh/releases/latest/download/enter-machine.sh -o enter.sh
chmod +x enter.sh
./enter.sh

On first run, a default Containerfile.dev is generated. Add your project env and agent:

# Add your language/runtime
RUN dnf install -y golang nodejs python3 ...

# Install your AI coding agent
RUN npm install -g @anthropic-ai/claude-code   # Claude Code
# RUN curl -fsSL https://opencode.ai/install | bash  # Opencode
# RUN npm install -g @anthropic-ai/amp               # Amp

Then rebuild: ./enter.sh --rebuild

Why containers for agents?

Why Podman?

entersh requires Podman. It is not Docker-compatible.

Why entersh?

entersh is designed for one thing: giving AI coding agents a safe, reproducible place to work. It's a single shell script you drop into a project — no config language to learn, no platform to install, no YAML to maintain. The folder name is the container name. First run generates a Containerfile.dev if you don't have one. Security hardening is on by default (--cap-drop=all, --read-only, --no-new-privileges). That's it.

ToolApproachAgent isolationConfig complexityNested containers
entershRootless Podman containerStrong (secure defaults)Zero config (one script)Yes (Podman socket)
DistroboxHost-integrated containerNone (shares $HOME)MinimalVia host-exec
Dev ContainersDocker container + JSON specGood (needs hardening)Medium (devcontainer.json)Yes (DinD feature)
Docker ComposeMulti-container orchestrationModerateMedium (compose.yaml)Requires privileges
devenvNix shell environmentsNone (no container)Medium (Nix language)N/A
VagrantFull VMStrongestMedium (Vagrantfile)Yes (full kernel)

How it works

  1. Drop enter.sh into your project
  2. Run it — a Containerfile.dev is generated if one doesn't exist
  3. The image is built and a container is created automatically
  4. On subsequent runs, it attaches to the existing container
  5. Use --force to recreate, --rebuild to rebuild the image, --verbose for full output

The container name matches your project folder name.

Agent-first by design

The scripts are written to be read and modified by AI coding agents. Every section has comments explaining what it does and how to extend it. Just ask your agent to update enter.sh and Containerfile.dev for your project — it will know what to do.