Skip to content

A containerized development environment manager that allows you to work with different tools and dependencies without installing them locally.

License

Notifications You must be signed in to change notification settings

jepemo/miko-shell

Repository files navigation

Miko Shell

Release CI Go Version License

Declarative, reproducible dev environments backed by Docker or Podman. One YAML file, same toolchain for every developer and CI job.


Quick Start

# 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 test

Minimal 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 ./...

Install

  • 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 build or go build -o miko-shell .
  • Prebuilt binaries: see Releases

Commands (condensed)

  • init — scaffold a config (--dockerfile for Dockerfile-based builds)
  • image — comprehensive image management (build, list, clean, info, prune)
  • run — list scripts (no args) or run run <name> [args...]
  • open — open an interactive shell inside the development environment
  • completion — generate shell autocompletion scripts
  • version — print version

For details and advanced usage, see DOCS.md.


Examples

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 dev

More examples and tips: examples/README.md, examples/USAGE.md.


License

MIT — see LICENSE.

About

A containerized development environment manager that allows you to work with different tools and dependencies without installing them locally.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •