Skip to main content
Most ralphy resources follow the same five-verb shape: create, list, show <id>, update <id>, delete <id>. Once you know how brand works you know how persona, ref, template, batch, asset, workspace, profile, and config work. This page documents the contract; the auto-gen reference covers per-resource flags.

The shape

Every CRUD verb returns JSON by default and pretty-prints on TTY. delete removes both the on-disk file and the registry entry.

Worked example: brand

The same pattern applies to every resource below. Use ralphy <resource> --help for the create-time flag set; the auto-gen reference has the full surface.

Resource map

For ref and template, the resource layer is the cheap CRUD shape; the heavy lifting (URL pulls, vision analyses, template loading) lives in dedicated verbs — ralphy ref pull/frames/analyze/blueprint, ralphy template use/suggest.

Filters on list

Every list returns the full set by default and accepts targeted filters. Common ones:
Pipe to jq for arbitrary post-filtering:

Create vs. update

create requires a --name and rejects on collision (E_ALREADY_EXISTS). update requires the id and is additive — fields you don’t pass stay unchanged. There’s no “patch” / “replace” distinction; the verb merges into the existing JSON.

Delete is registry-aware

delete <id> removes the on-disk JSON and the registry entry together. Per AGENTS.md invariant #13, this is the only blessed deletion path. Don’t rm files directly — you’ll desync the registry and the next list will lie.

What’s not in CRUD

  • generate — model calls. Not a resource verb; see Generation verbs.
  • render — the HyperFrames pipeline. See Rendering verbs.
  • doctor / setup / status — env-level utilities. See Setup and doctor.
  • assets (plural) — pulls from the companion repo, not local CRUD. See Assets.