A browser-local editor for creating macOS DMG background assets and a versioned
Finder layout manifest. It exports design inputs for a separate macOS packager;
it does not create, sign, or notarize a .dmg.
Pre-release maturity:
v0.1.0is the first versioned public release. No non-maintainer workflow has been recorded yet, so this is not a stable claim.
Download v0.1.0 and verification assets
macOS application maintainers repeatedly need to align a Finder window,
background artwork, an application icon, and the Applications alias. The
visual work is easier in a browser, while final image creation still requires
macOS tools and release credentials. dmg_background keeps those concerns
separate.
The editor downloads one ZIP with exactly five members:
.background/background.png
.background/background@2x.png
preview.png
dmg_layout.json
README.txt
The two files under .background/ contain artwork, text, and the direction
arrow, but never simulated Finder icons. preview.png includes simulated icons
for review. dmg_layout.json records logical Finder content coordinates for a
separate packager.
See Contract for compatibility rules and Product scope for explicit non-goals.
- Human-usable: the browser editor can create and download the asset ZIP.
- Machine-readable: the ZIP contains a versioned JSON layout document.
- Not Agent-callable: there is no MCP server, transport, hosted API, authentication layer, or Agent registration.
- Not a DMG packager: there is no
hdiutil, Finder automation, signing, or notarization integration.
A machine-readable file contract does not by itself make a product Agent-callable.
- Rust 1.85 or newer
wasm32-unknown-unknowntargetwasm-pack0.15.0- Node.js 24 or newer for the Chromium suite
Run native and WASM checks from the repository root:
cargo fmt --all -- --check
cargo test --workspace --locked
cargo clippy --workspace --all-targets --locked -- -D warnings
cargo check -p dmg_background_web --target wasm32-unknown-unknown --lockedBuild and serve the editor locally:
wasm-pack build --target web crates/dmg_background_web \
--out-dir static/pkg --out-name dmg_background_web -- --locked
python3 -m http.server 4173 --directory crates/dmg_background_web/staticOpen http://127.0.0.1:4173/.
Run the real WASM browser suite:
cd crates/dmg_background_web
npm ci
npx --no-install playwright install chromium
npm run test:wasm-smoke:localGenerated pkg/, node_modules/, Rust target/, and browser artifacts are
ignored and must not be committed.
Selected PNG or JPEG files and generated ZIP bytes stay in browser memory until the user downloads them. The application has no upload path, analytics, cookies, remote API, persistence, or external font dependency. Installing dependencies can contact the configured Cargo and npm registries.
See Security for input and resource boundaries.
Read Contributing before opening a pull request. Public commit subjects and bodies use English Conventional Commits.
MIT. See LICENSE.