brama categories¶
The operator's own grouping of the catalogue: read it, declare one, retire one. A category is data in the route registry, so adding uncensored — or any other name this deployment wants to filter on — is a registry write and never a gateway release.
Invocation¶
brama categories ls [--json]
brama categories set <NAME> [--provider <ID>]... [--route <PROVIDER/MODEL>]... [--term <TEXT>]... [--json]
brama categories rm <NAME> [--json]
| Input | Required/default | Meaning |
|---|---|---|
<NAME> | required | Lowercase letters, digits and hyphens. |
--provider <ID> | repeatable | Every model of that provider is in the category. |
--route <PROVIDER/MODEL> | repeatable | That exact route is in the category. |
--term <TEXT> | repeatable | A model whose route id or published name contains this text is in the category. |
--json | optional; off | ls prints the declarations as a document; set and rm print {"action": "declared" | "retired", "category", "registry"} instead of the sentence. |
set replaces the named category whole, so the three lists are always exactly what the operator last stated.
Output and state¶
$ brama categories set uncensored --term uncensored --term abliterated --provider abliteration-ai
declared model category uncensored
$ brama categories ls
uncensored (24 models)
providers: abliteration-ai
routes: -
terms: uncensored, abliterated
$ brama categories rm uncensored
retired model category uncensored
The count beside the name is how many catalogue models the rule currently holds, computed from the same snapshot brama models lists; a rule that matches nothing reads zero rather than looking like a working facet. The write lands in the route registry named by BRAMA_INFERENCE_ROUTES_FILE, else ~/.config/brama/inference-routes.json, through the same staged, validated, owner-only rename every route edit takes.
Refusals¶
| Sentence | Meaning |
|---|---|
no inference route registry is configured; set BRAMA_INFERENCE_ROUTES_FILE | There is no document to write into. |
model category 'Uncensored' must be lowercase letters, digits and hyphens | The name cannot be held by the registry or named in a query. |
model category 'empty' declares no providers, routes or terms | A category with no rule would match nothing and mean nothing. |
model category 'x' names 'not-a-route', which is not a provider/model route | A route member has to be a route. |
no model category 'x' is declared | rm was asked to retire a name nobody declared; the document is unchanged. |
Every refusal exits 1, prints on standard error, and leaves the registry exactly as it was.
See category, brama models, or the CLI tree.