Dagger: A shell for the container age

Purpose and Positioning of Dagger Shell

  • Framed as a complement to the system shell, not a login shell replacement.
  • Intended for workflows “too complex for regular shell scripts but not full software,” breaking them into composable modules.
  • Targets cross-platform builds, complex integration tests, data/AI pipelines, and dev tooling inside containers.
  • Same underlying engine as existing Dagger “pipeline-as-code”; this is just a new client/shell interface.

Comparison with Docker, Nix, Jenkins, etc.

  • Not trying to rip out Docker; more about replacing ad‑hoc glue (Dockerfiles + shell + Makefiles + CI YAML).
  • Uses BuildKit under the hood and can build from plain Dockerfiles; can act as a nicer docker build with better debugging.
  • Some compare it to nix-shell / Nix / Bazel: Dagger is described as declarative via a dynamic API + SDKs, not a static DSL.
  • Others see it as an awkward middle ground versus fully declarative Nix, or simply prefer existing tools (Bakefiles, Make, Python scripts, Jenkins).

Shell Design, Syntax, and Piping Semantics

  • Syntax is bash-like but semantically closer to PowerShell / OO method chaining / builder pattern.
  • Confusion and criticism that | here is not Unix pipes but type-based method chaining; some feel this is misleading.
  • Some users dislike more bash-compatibility and wish for a safer, modern language; others like the familiarity.

Use Cases & Perceived Benefits

  • Replace “Dockerfile + shell sandwich” workflows; compose multi-stage builds, reuse images, and avoid tag juggling.
  • Local‑first CI: same pipelines run locally and in CI, improving portability across machines and platforms.
  • Strong debugging story: interactive shell on failure or at arbitrary points; ability to inspect containers mid-pipeline.
  • Composable modules (e.g., Alpine module, adapters around tools like apko) to build more deterministic images.

Concerns, Critiques, and UX Issues

  • Some find Dagger a “time sink” with leaky BuildKit/kernel details and regret the investment compared to Nix/Bazel.
  • Confusion over Dagger’s scope: CI engine? Docker replacement? dev shell? AI agent framework?
  • Marketing copy (“cross-platform composition engine,” “devops OS”) seen as too vague or grandiose.
  • Worry about core LLM types in the API as off-mission for a build/composition tool; others argue it’s just another primitive.
  • Skepticism that yet another complex layer on top of Unix/container primitives truly improves on mature, simple shell workflows.