motif64

Push a capsule

Anyone can browse and download without an account. Pushing needs one: log in on motif64.sh with GitHub or Google, and pick a handle in settings if you logged in with Google.

Log in the CLI

m64 login

It shows a code and opens /login/device: check the code matches, approve, and the CLI gets a token. Tokens are listed, and revocable, in settings.

Push

m64 lint ./my-capsule
m64 push ./my-capsule --category chat --tag qwen --tag basalt

A listing needs at least one category. Tags are lowercase a-z, 0-9, . and -, at most 15; the CLI suggests tags already in use, with counts, so they don't fragment.

The push is checked on the server before it is public:

  • size limits;
  • leaked secrets, such as API keys, with the file and line;
  • network use the manifest does not declare in network.needs;
  • every replaces id and the declared parent exist on motif64.sh.

A refused push says why. A capsule that is already on motif64.sh, by you or anyone, answers "already on motif64 by @handle" and creates nothing: an id belongs to its first listing.

These checks are an early filter; the m64 sandbox on the machine that runs a capsule is what contains it.

List a capsule hosted on GitHub

m64 push --source github.com/<owner>/<repo>/<path>@<40-hex commit sha> --category agent

The source must be pinned to a commit: a branch or tag name is refused, because it can move. motif64.sh fetches the folder once, computes the id, runs the same checks, and keeps its own copy, so the page, the files and m64 m64_<id> keep working if the repo changes. The page says "originally hosted at" with a link.

After publishing

The listing's owner (and the admin) can edit its categories, tags, model and engine on the capsule's page or with the API. Edits are logged on the page; the files and the id never change.