Make an app for V2Mac's Secure Sandbox: it runs in a mini VM with its own exit server and shows on the Mac as its own app. API: docs/plugin-api.md.
- Use this template. Set
id,nameandlaunchinplugin.json; add what your app needs toContainerfile; keepstart.shor replace it. - Put the released base image in
base.txt(from the V2Mac store'sbases.json). - Build it:
Scripts/package.sh . "$(cat base.txt)" <release URL prefix> <repo URL> <commit>. Test the resultingdist/plugin.jsonand archive through a local test store in a V2Mac dev build (see local testing). - Release: push a tag. The workflow attaches the image and the filled
plugin.json. - Submit: a pull request to the V2Mac store adding
submissions/<id>.json({"repo": "https://github.com/<you>/<repo>", "tag": "<tag>"}). Its CI checks the release.
Samples: hello-pty (terminal, ssh-agent) and hello-gui (window, clipboard, Shared).
To release a sample as its own plugin, copy its Containerfile, plugin.json, icon.svg and base.txt
over the root files in a copy of this template. The release workflow packages the root plugin.
In this repo, hello-pty-v* and hello-gui-v* tags release the corresponding sample; v* tags
release the root plugin. The base files pin the base of a sandbox release (ghcr.io/lordversa/v2mac-base@sha256:…, the
sandbox's own root); never substitute an unpinned tag. Maintainers: publish the GHCR base package with
public read access and copy the sandbox release's bases.json into the store before accepting
submissions built on it.
Licence: 0BSD.