Operations runbook · Verified 25 Jul 2026
Target: forgebot-mini · macOS arm64

Unity licensing · local development

Connect forgebot-mini to the floating Industry pool

The existing ForgeFX client configuration is enough. Install the canonical services-config.json, restart Unity completely, acquire a floating lease, then prove the license with an actual Editor command.

2 concurrentUnity Industry floating seats assigned to Cedar-LicenseServer
ReachableCanonical configuration endpoint passed DNS, TCP, and HTTP checks
Not installedNo local services-config.json is present yet
Beta 3Unity CLI 1.0.0-beta.3 is installed with Editor 6000.1.1f1

Setup process

This is the Mac translation of Carl Lowther’s canonical ForgeFX setup post, checked against Unity’s current client-configuration documentation and the commands exposed by the installed Unity CLI.

Download the ForgeFX configuration

Open Carl’s Slack setup post and download the attached services-config.json. Use the attachment, not a hand-built URL or a copied server address.

Open canonical setup post and attachment

Quit Unity completely

Close every Unity Editor window and fully quit Unity Hub. Hub and the Licensing Client must restart before a changed services configuration is recognized.

osascript -e 'quit app "Unity Hub"' 2>/dev/null || true
pkill -x Unity 2>/dev/null || true

Validate without exposing the endpoint

Assuming Slack saved the attachment in Downloads:

CONFIG="$HOME/Downloads/services-config.json"
node -e 'JSON.parse(require("node:fs").readFileSync(process.argv[1],"utf8")); console.log("valid JSON")' "$CONFIG"
Do not paste or commit the file. It contains the private licensing endpoint and toolset configuration. The public report intentionally omits those values.

Back up and install the file

The official macOS client path is system-wide and requires administrator approval.

DEST='/Library/Application Support/Unity/config'
sudo install -d -m 0755 "$DEST"
if [ -f "$DEST/services-config.json" ]; then
  sudo cp "$DEST/services-config.json" "$DEST/services-config.json.backup-$(date +%Y%m%d-%H%M%S)"
fi
sudo install -m 0644 "$CONFIG" "$DEST/services-config.json"

Restart Hub and acquire a floating lease

Open Unity Hub again, then use the beta CLI. The installed CLI does not expose a license server add command; client configuration is file-based.

open -a "Unity Hub"
~/.unity/bin/unity license server status --format json
~/.unity/bin/unity license activate --floating --format json --non-interactive
~/.unity/bin/unity license status --format json

Prove real Editor use

Account sign-in and server reachability are not proof. Open a real project with Editor 6000.1.1f1, then run the new Pipeline workflow.

~/.unity/bin/unity open /absolute/path/to/project
cd /absolute/path/to/project
~/.unity/bin/unity auth login
~/.unity/bin/unity pipeline install
~/.unity/bin/unity pipeline list
~/.unity/bin/unity command

Success means the Editor opens under Unity Industry, Pipeline: Installed appears, and unity command lists commands from the running Editor.

Release the seat when finished

Close every Unity Editor instance. The floating lease is held while an Editor is open and returns to the pool when the last Editor closes. Keep Unity closed when not actively testing.

Acceptance gate

Call the setup working only when all five checks are green. Two floating seats are shared with the production team, so “no seat available” can be temporary rather than a configuration failure.

Configuration detectedlicense server status reports configured.
Server reachableThe configured endpoint responds from forgebot-mini.
Floating acquisition succeedslicense activate --floating exits successfully.
Industry license activelicense status reports an active Unity Industry entitlement.
Editor command succeedsA real Editor opens and unity command connects to the Pipeline package.
Not sufficient by itselfUnity account login, a reachable endpoint, or an installed CLI alone does not prove licensed Editor use.

Known failure modes

The high-value recovery moves are deterministic. Do not buy or reassign a license until the client configuration and live pool have been checked.

SymptomMeaningAction
configured: falseThe system file is absent, invalid, or Unity has not restarted.Verify the exact macOS path and fully restart Hub and Editor.
Configured but unreachablePrivate network, DNS, firewall, certificate, or server-service problem.Use the approved network path; do not expose the licensing port publicly.
No seat availableBoth concurrent seats may be in use.Close idle Editors and retry. Check with the team before disrupting active work.
Personal/named license appearsThe wrong licensing mode may still be active.Follow the canonical Slack thread; configuration changes require moving/renaming the file and fully restarting Hub.
Pipeline command cannot connectThe project is not open, the package is missing, or recompilation is incomplete.Open the project in Unity 6+, install com.unity.pipeline, wait for compilation, then rerun unity pipeline list.

Internal evidence

These Slack posts carry the operational history and answer the questions most likely to come up during installation.

Canonical setup · 5 Aug 2024

Carl Lowther: client configuration and checkout behavior

Contains the authoritative attachment, Windows steps, restart requirement, and explanation that opening/closing the Editor checks out/releases a seat.

Open Slack post
Support follow-up · 6 Aug 2024

Moving or renaming the file is the control

Carl’s Unity Support follow-up: changing modes requires moving or renaming services-config.json and fully restarting Unity Hub.

Open Slack reply
Policy and capacity · 21 Mar 2025

Devin Weidinger: two shared seats, automatic checkout

Confirms two shared licenses, Editor-open checkout behavior, compliance expectations, and that temporary lockout can occur when both seats are occupied.

Open Slack thread
Current diagnosis · 8 Jul 2026

ForgeBot: forgebot-mini was not configured

Documents the pre-setup machine state: no floating server configuration and no active Unity Editor license.

Open Slack post
Current inventory · 24 Jul 2026

ForgeFX Unity license status report

Reconciles the ten named Industry seats, two Industry floating seats, Cedar assignment, terms, and local machine state.

Open inventory preview
Portal

Floating license server management

Unity organization page showing Cedar-LicenseServer and its assigned floating products. Administrator access may be required.

Open Unity portal

Official Unity docs

Current primary documentation. The client configuration page governs the Mac file location and restart behavior; the Pipeline page governs the new CLI-to-Editor workflow.

Licensing server

Configure the Unity Licensing Client

Server-generated file, supported keys, platform paths, restart requirement, and client testing.

Open Unity docs
Licensing model

Unity licensing overview

Defines floating licensing as concurrent use: lease on Editor start, release when the last Editor closes.

Open Unity manual
New CLI

Meet the Unity CLI

Unity’s 20 July 2026 launch article covering the standalone CLI, structured output, Pipeline package, and agent workflows.

Open Unity article
Editor automation

Unity Pipeline package

Official setup for installing the package and connecting unity command to a running Unity 6 Editor.

Open Unity docs
Troubleshooting

Client logs and exit codes

macOS log locations for Editor, Licensing Client, entitlement audits, and Hub.

Open Unity docs
Legacy Editor CLI

Run Unity from a command line

Official batchmode and project-launch syntax for proving licensed Editor execution.

Open Unity manual

Evidence ledger

Live checks performed from forgebot-mini during this review. Endpoint values and credentials were intentionally withheld.

CheckResultInterpretation
Canonical Slack attachmentValid JSONExpected floating-license keys are present; attachment hash recorded privately for change detection.
Configured endpointDNS + TCP + HTTP 200The endpoint embedded in the canonical configuration is reachable from this Mac now.
Local client fileAbsentThe blocker is installation/restart, not confirmed server unavailability.
unity license server statusconfigured: falseExpected before installing services-config.json.
CLI supportFloating activation exposedInstalled beta supports license activate --floating, status, and list. It does not expose a server-add command.