moonbit-community/proton_cli creates, develops, builds, and packages Protondesktop applications. See the repository README for applicationworkflows and configuration.
proton_cli new offers a single-module minimal template and a full-stackisomorphic template. Select one interactively or pass--template minimal|isomorphic; isomorphic is the non-interactive default.
On Windows, build and package compile the first .ico in package.iconsinto the application executable using the Windows SDK resource compiler. Thisworks with the default Wasm CLI; no native CLI installation is required.package --icon overrides the configured icon. The Windows SDK must beinstalled, as required for the application's native MoonBit build.
When debugging is enabled, Chromium selects an available CDP port by default andprints its browser WebSocket endpoint to stderr:
DevTools listening on ws://127.0.0.1:<port>/devtools/browser/<id>
proton_cli dev preserves this output. External tools should capture stderrfrom process startup and wait for this line instead of reserving and releasinga port before launch. The endpoint is announced asynchronously; a process thatexits before announcing it has not supplied a debugging endpoint.PROTON_REMOTE_DEBUGGING_PORT=0 explicitly selects this behavior. A fixed portcan still be requested with PROTON_REMOTE_DEBUGGING_PORT=9333. Remote debuggingis disabled when the application debug setting is off. This announcement doesnot require enabling PROTON_CEF_LOG.
dev, build, package, and doctor share the typed AppConfig decoder.Project paths are resolved by the CLI, without replacing the relative valuesin the configuration. dev passes a per-launch configuration snapshot with CLIoverrides to the application; the source project file is not modified.package likewise embeds the effective configuration, including CLI overridesfor the backend package, formats, and platform settings.