workspace
Register sibling projects in a schema-versioned catalog file, outside any one
manifest, so a shared provider account's complete claim set no longer depends
on remembering every --claims path. Offline throughout.
pixelkiln workspace add ../other-game/pixelkiln.manifest.json
pixelkiln workspace add ../another-game/pixelkiln.manifest.json --name another
pixelkiln workspace list
pixelkiln workspace status --json
pixelkiln workspace claims
pixelkiln workspace remove another
Subcommands:
| Subcommand | Effect |
|---|---|
add <manifest> | Registers a project. Id defaults to the manifest's name; --name overrides it. Lock defaults to pixelkiln.lock.json beside the manifest; --lock overrides it. --provider overrides the manifest's provider id; --account sets a free-form account label. Refuses a duplicate id or a lockfile already registered under another id. Warns, but does not refuse, when the lock does not exist yet. |
remove <id-or-manifest> | Drops a registration by project id or by manifest path. Touches no art, no lock, no provider account. |
list | Lists registered projects and catalog diagnostics. Refuses if the catalog file does not exist. |
status | Aggregate provider, spend-by-unit, plan state, and claim count, offline. Provider cost units are never summed across each other. Refuses if the catalog file does not exist. |
claims | Validates the catalog and emits the exact union of provider-qualified objectId/reviewObjectId/jobId claims across every registered lock. Refuses to omit a project when any registered lock is missing or unreadable, or when the catalog has a duplicate id or lock path. |
--workspace <path> selects the catalog file; it defaults to
pixelkiln.workspace.json in the current directory. Stored paths are relative
to the catalog file's own directory, so a catalog survives a clone or move.
list/status support --json and --check (nonzero exit on any error-level
diagnostic); both treat a nonexistent catalog file as a hard error rather than
an empty, vacuously-safe one. This is the same hazard class as an incomplete
claim set. In --json output, the workspace key always names the catalog file;
status also reports dir, the catalog's own directory that
registered paths resolve against.
Passing --workspace <path> to salvage derives its claim set and its
sibling-manifest style signal from every project the catalog registers.
--claims still works and joins both the lockfile claim set and sibling
manifest list. A missing or unreadable registered lock is a hard error there
too. PixelKiln never skips one because the catalog exists to guarantee a
complete account-wide claim set. See
Recovery and account safety.