Install
Loom ships as a single Unity package tarball with the two npm packages
bundled inside. There’s no public npm registry hop and no separate native
binary download — everything you need is in the .tgz you drop into
Packages/.
Prerequisites
- Unity 6 (
6000.x). Earlier versions are not tested. - Node 20+ on the host that runs the Editor. Required for the
Loom → Sync UI Dependenciesmenu, which runsnpm installfor your UI app. - A UI app folder at
<ProjectRoot>/UI/with apackage.json. If you don’t have one yet, see Your first screen.
Steps
-
Drop the tarball. Copy
com.loomgui-X.Y.Z.tgzinto your project’sPackages/directory. -
Reference it. Add the package to
Packages/manifest.json:{"dependencies": {"com.loomgui": "file:com.loomgui-X.Y.Z.tgz"// ... your other dependencies}}Unity copies the package into
Library/PackageCache/on the next Editor open. -
Sync the UI npm packages. In the Editor, run
Loom → Sync UI Dependencies. The menu:- Copies the bundled
loomgui-bridge-*.tgzandloomgui-vite-plugin-*.tgzfrom the Unity package’sUI~/folder into<ProjectRoot>/UI/.loom/. - Updates (or adds) the matching
file:./.loom/...entries in<ProjectRoot>/UI/package.json. - Runs
npm installin<ProjectRoot>/UI/. Output streams to the Unity Console; the menu returns immediately so the Editor doesn’t freeze.
- Copies the bundled
-
Restart Unity. Native plugins are pinned in Editor memory; a clean restart is required for the dylib/dll/so to load.
That’s it. The Editor orchestrator auto-spawns the Vite dev server on Play and points the in-game WebView at the served page. For subsequent plays, nothing additional is required.
Verifying the install
Open Window → General → Loom Doctor. The doctor reports:
- Native plugin loaded
- ABI version match
- WS port bound
- UI dir present
- npm dependencies installed
If any of these report red, see Doctor reference.
Upgrading
When a newer com.loomgui-X.Y+1.Z.tgz lands, replace the tarball in
Packages/, re-run Loom → Sync UI Dependencies (it detects the version
bump and sweeps the old tarballs), and restart Unity. Same one button,
every upgrade.