Authoring a card
Writing your own card takes a manifest and a Python file. There is no build step and no plugin API beyond what is on this page.
Start from the template
The application ships with a template at
Resources/cards/user/_template/. Copy it into your user cards
directory, rename it, and it appears in the palette on reload.
Declare everything that matters
The single rule: anything that changes the result goes in
params. A threshold hard-coded in your Python is invisible to
whoever opens your pipeline in a year, including you.
Field by field, the schema is in the SDK reference.
Fail usefully
Raise a normal Python exception. The message reaches the interface and the run log, so write it for someone who can act on it: which parameter, which channel, what was expected. "Invalid input" helps nobody.
Check it against something
Before publishing, compare your output against a reference computed another way on a real recording. Not against an earlier version of your own card, which only proves it has not changed. The validation method describes how the built-in cards are checked.
Publishing
Zip the folder so card.json is at the root, then submit it on the
publishing page. Submissions are reviewed
before appearing publicly.