Declarative, reproducible dev environments backed by Docker or Podman. One YAML file, same toolchain for every developer and CI job.
# 1) Create a config
miko-shell init # or: miko-shell init --dockerfile
# 2) (Optional) Build the image
miko-shell image build
# 3) Discover available scripts
miko-shell run
# 4) Run a script
miko-shell run testMinimal miko-shell.yaml:
name: my-project
container:
provider: docker
image: alpine:latest
setup:
- apk add --no-cache curl git
shell:
startup:
- echo "Welcome to the development shell"
scripts:
- name: test
commands:
- go test ./...- Quick install:
curl -sSL https://raw.githubusercontent.com/jepemo/miko-shell/main/install.sh | bash- Uninstall:
curl -sSL https://raw.githubusercontent.com/jepemo/miko-shell/main/install.sh | bash -s -- --uninstall- Bootstrap from local checkout:
./bootstrap.sh - From source:
make buildorgo build -o miko-shell . - Prebuilt binaries: see Releases
init— scaffold a config (--dockerfilefor Dockerfile-based builds)image— comprehensive image management (build, list, clean, info, prune)run— list scripts (no args) or runrun <name> [args...]open— open an interactive shell inside the development environmentcompletion— generate shell autocompletion scriptsversion— print version
For details and advanced usage, see DOCS.md.
Start from ready-made configs in examples/:
# Go
miko-shell image build -c examples/dev-config-go.example.yaml # (Optional)
miko-shell run -c examples/dev-config-go.example.yaml test
# Next.js
miko-shell image build -c examples/dev-config-nextjs.example.yaml # (Optional)
miko-shell run -c examples/dev-config-nextjs.example.yaml devMore examples and tips: examples/README.md, examples/USAGE.md.
MIT — see LICENSE.