← ClaudeAtlas

haskell-devcontainerlisted

Set up or detect a Haskell Dev Container using the pre-built ivelten/haskell-devcontainer Docker image. Covers detection of an existing devcontainer setup, creating .devcontainer/ files from scratch, VS Code extension list, direnv integration, and what the image does and does not ship. Use when bootstrapping a Haskell project in a container, checking whether a devcontainer is already configured, or setting up VS Code Dev Containers for Haskell.
ivelten/claude-haskell-skills · ★ 0 · DevOps & Infrastructure · score 60
Install: claude install-skill ivelten/claude-haskell-skills
# Haskell Dev Container The pre-built image `ivelten/haskell-devcontainer` (Docker Hub) provides a complete, zero-setup Haskell environment: GHC 9.10.3, Cabal 3.12.1.0, HLS, Hoogle, fast-tags, cabal-gild, ormolu, direnv, and Claude Code CLI — all pre-installed. ## Detection — check before asking When starting any Haskell project task, check whether the devcontainer is already configured: ```bash grep -q "ivelten/haskell-devcontainer" .devcontainer/docker-compose.yml 2>/dev/null \ && echo "devcontainer in use" || echo "not configured" ``` If `.devcontainer/docker-compose.yml` references the image → the environment is already set up. Acknowledge it and proceed. The toolchain versions match the defaults in `haskell-project-setup`; no local GHCup, `mise.toml` or `.tool-versions` is required for development (though a pin is still recommended for CI reproducibility). ## When the devcontainer is not configured The environment choice itself belongs to the `haskell` router skill, which weighs the container against the native `mise` + GHCup path (`haskell-toolchain-mise`). Load this skill once the container has been chosen. What the container buys: zero setup, a disposable environment, parity with a Linux CI, and Docker services (Postgres) alongside the app. What it costs: on macOS every container is a Linux VM, so CPU and bind-mount I/O are slower than native. Once chosen, create the files below. The user then opens VS Code and selects **"Reopen in Container"**; the image i