The grudge-dev CLI autonomously wires into the Grudge Studio ONE TRUTH fleet.
API base: https://client.grudge-studio.com. Same /api/objectstore/* contract as the desktop admin shell.
Host map: Systems & APIs · ONE TRUTH.
git clone https://github.com/Grudge-Warlords/grudge-dev-tool.git
cd grudge-dev-tool/cli
npm install
npm run build
npm install -g .
Or from a linked grudge-builder checkout:
npm run grudge-dev:setup
npm run grudge-dev:doctor
grudge-dev setup
This will:
https://client.grudge-studio.com (then http://localhost:5000 if local dev is up).F:\GitHub\GrudgeBuilder, or GRUDGE_BUILDER_ROOT).%USERPROFILE%\.grudge-dev\config.json.human.glb) and print a score.Uploads require admin credentials:
grudge-dev login --admin-password <ADMIN_PASSWORD>
# or
grudge-dev login --token <JWT>
Env overrides (CI-friendly):
| Variable | Purpose |
|---|---|
GRUDGE_API_BASE |
Force API host |
GRUDGE_AUTH_TOKEN |
Bearer JWT |
GRUDGE_ADMIN_PASSWORD |
X-Admin-Password header |
GRUDGE_BUILDER_ROOT |
Preferred repo path for setup |
grudge-dev doctor
grudge-dev doctor --json # CI gate — exits 1 if score < 85%
Expected on production client:
Score: 100%
✓ Fleet manifest
✓ Auth verify
✓ master-items.json
✓ master-recipes.json
✓ Pack weapon icon
✓ Supabase health
# Dry run — walk + hash, no network
grudge-dev upload-pack `
--root "C:\packs\Classic64" `
--pack-id classic64 `
--version 0.6 `
--license CC0 `
--author "Craig Snedeker" `
--dry-run
# Real upload
grudge-dev upload-pack --root "C:\packs\Classic64" --pack-id classic64 --version 0.6
From grudge-builder:
npm run upload-pack -- --root "C:\packs\Classic64" --pack-id classic64 --dry-run
grudge-dev fleet # canonical URLs + live /api/fleet/manifest
grudge-dev search --pack classic64 -q helmet
grudge-dev status # print ~/.grudge-dev/config.json