Metadata-Version: 2.4
Name: mimchine
Version: 0.27.0
Summary: well integrated mini machines with rootless podman
Author-email: redthing1 <redthing1@alt.icu>
Requires-Python: >=3.11
Requires-Dist: platformdirs<5.0.0,>=4.2.0
Requires-Dist: redlog-py>=0.1.1
Requires-Dist: rich>=13.9.4
Requires-Dist: sh<3.0.0,>=2.2.2
Requires-Dist: single-source>=0.4.0
Requires-Dist: typer<0.16.0,>=0.15.2
Description-Content-Type: text/markdown


# mimchine

well-integrated **mini-machines**; a portable linux that has all your data dirs mounted. inspired by [distrobox](https://github.com/89luca89/distrobox) and powered by podman.

## what it's about

sometimes, i want a linux terminal development environment on macos, and i want all my data magically linked in. so that i can cd to a source directory and seamlessly build it.

with the power of containers, we can do just that. we run a linux userspace of our choice (fully customizable by a dockerfile), and mount in all our directories.

mimchine makes the above super easy. just build a machine image, create a container, then run `mimchine shell` and you're in!

## setup

### linux

should be all good to go

### macos

ensure podman machine is initialized as such:

```sh
podman machine init --volume /Users --volume /Volumes
podman machine stop && ulimit -n unlimited && podman machine start
```

## usage

### sync project environment

```sh
uv sync
```

### build a mimchine image

```sh
uv run mimchine build -f ./demo/mim_fed.docker -n mim_fed
```

### create a mimchine

```sh
uv run mimchine create -n mim_fed -H ~/Downloads
```

### open a shell in a mimchine

```sh
uv run mimchine shell -c mim_fed
```

### destroy a mimchine

```sh
uv run mimchine destroy -c mim_fed -f
```
