motif64

Quickstart

Find a capsule that fits your machine, then run it:

m64 find image                 # search motif64.sh for image capsules
m64 m64_3f9a0c41be72           # download, verify the id, serve and open it

m64 <id> downloads the capsule from motif64.sh, recomputes its id from the files and refuses a mismatch, builds it, and serves it with an HTTP front: a page for humans, an entry point for agents and a status page.

Running capsules

m64 serve <ref>                # start in the background; prints the url
m64 status                     # all running capsules
m64 net <id>                   # every connection a capsule's latest run made
m64 stop <id>                  # stop one
m64 stop --all                 # stop everything
m64 upgrades                   # capsules that claim to replace the ones you have

A ref is m64_ plus at least 12 hex characters of the id, a GitHub reference pinned to a commit (github.com/<owner>/<repo>/<path>@<sha>), or a local folder.

Network

A capsule gets no network unless you grant it, per run:

m64 serve <ref> --allow-external-network   # the public internet
m64 serve <ref> --allow-internal-network   # your LAN and tailnet

A capsule that needs some hosts to work lists them in its manifest, with the reason, and its page on motif64.sh shows them under "network". Serving it without the grant is refused before anything starts.

GPU capsules

Serving a GPU capsule first stops the other GPU capsules m64 runs, unless you pass --cotenant. Before it starts, m64 measures the memory that is really free and refuses to start a capsule that would not fit.

What the sandbox does and does not cover

Every capsule runs in a container on an internal network, behind an egress gate that lets out only what you granted. GPU capsules see every GPU on the machine, and HTTPS traffic is checked by host and port, not by content. The checks motif64.sh runs on upload are an early filter; the sandbox on your machine is what contains a capsule.