ComponentLibraryApp
![]()
© 2026 Obsvra. This document describes SpiceGrinder and is provided to help you evaluate and use it. It is not a license to reproduce, adapt, or use this material to build a competing product or service. Full terms: the SpiceGrinder EULA.
NAME
ComponentLibraryApp — list registered generators/filters and their parameters, live from the running artifact’s registry
SYNOPSIS
java -cp spicegrinder.jar com.obsvra.spicegrinder.tools.ComponentLibraryApp [options]
On a jpackage install:
library [options]
DESCRIPTION
ComponentLibraryApp answers “what components exist, and what are their parameters” directly from the live ComponentRegistry — a real-time alternative to Component-Library-Reference.md (a hand-generated snapshot) or writing a one-off Java harness against the registry.
Unlike every other tool in this package, ComponentLibraryApp takes no model file — it’s pure registry introspection, not a per-model tool.
Only components visible under the running artifact’s edition are listed — a Free build simply has fewer entries; this tool applies no filtering of its own beyond what the registry already does. Hidden components (ComponentDescriptor.hidden) are never shown, whether by listing or by --component name.
The same discovery is also available from a running Service API process via GET /v1/components (see Service-API-Reference.md) — both share the same underlying JSON-building code (ComponentDescriptorJson), so a given component’s entry is byte-for-byte identical either way.
OPTIONS
| Option | Meaning |
|---|---|
--category generator|filter | Restrict the listing to one category. |
--component NAME | Show full detail (class, description, every parameter) for exactly one component, by short name. Cannot be combined with --category. |
--json | Emit structured JSON instead of human-readable text. See OUTPUT (JSON) below. |
-h, --help | Print usage and exit. |
--version | Print the version (e.g. 1.0.0 Alpha 1 (Build 1)) and exit. |
With no options, every visible component is listed, one line each: Name (Tier, category): description. --component NAME switches to full detail for that one component instead — a class name, description, and a parameter table in the same shape as Component-Library-Reference.md’s own tables (Parameter | Type | Required | Default | Aliases | Notes).
OUTPUT (JSON)
With --json, output is always full detail for every listed component — no reason to make JSON as terse as the default text listing, since a caller wanting one component can filter the array itself:
{
"edition": "PRO",
"totalCount": 72,
"components": [
{
"name": "Convert",
"tier": "Pro",
"category": "filter",
"className": "com.obsvra.spicegrinder.pro.filters.Convert",
"description": "Deserialize an upstream string into a typed ISerializable business object, wrapped in an ObjectDataPoint",
"parameters": [
{
"name": "class", "type": "String", "required": true, "default": "",
"aliases": [], "group": "Type", "multiple": false,
"minOccurrences": 0, "maxOccurrences": 0, "attributes": [],
"description": "Fully-qualified class name of an ISerializable business object, reflectively constructed (via a no-arg constructor) and populated from the single upstream input's serialized string."
}
]
}
]
}
edition is the running artifact’s actual license edition (FREE or PRO). totalCount is components.length. Each parameter’s group is that @Parameter’s own category (e.g. Source, Connection) — distinct from the component’s own top-level category (generator/filter). multiple/minOccurrences/maxOccurrences/attributes describe multi-occurrence XML parameters (e.g. Mix’s <input name="..." weight="..."/> children) — attributes lists the XML attribute names a multi-occurrence parameter’s own child element accepts.
--category/--component still apply in --json mode, filtering before serializing. -h/--help/--version output and bad-argument errors (exit code 2) always stay plain text, unaffected by --json.
EXIT STATUS
| Code | Meaning |
|---|---|
| 0 | Success. |
| 1 | --component named a component that doesn’t exist, or is hidden. |
| 2 | Bad arguments — both --category and --component given, unrecognized option, or an unrecognized --category value. |
EXAMPLES
List every visible component:
java -cp spicegrinder.jar com.obsvra.spicegrinder.tools.ComponentLibraryApp
List only filters:
library --category filter
Full detail on one component:
library --component Convert
Get a machine-readable listing for a script or agent to parse:
library --json
SEE ALSO
Component-Library-Reference.md, ModelValidatorApp(1), ModelAnalyzerApp(1), Grind(1), McpServerApp(1)