Skip to content

Manifest reference

plugin.toml is the whole of a plugin's relationship with Podlibre. Nothing is discovered by scanning code.

[plugin]

Key Required Meaning
id yes Unique, lowercase, underscores. Also the folder name.
name yes What the user sees. Translate it in your catalogue if you like.
version yes Semantic version of your plugin.
api yes The Podlibre plugin API you were written against.
description no One sentence, shown in the plugin list.
homepage no Where to find you.

[permissions]

Every key is optional; what you omit, you cannot do. See Permissions.

[permissions]
files   = ["show"]                  # show | episode | ask
network = ["api.castopod.org"]      # host list, or ["*"]
llm     = { local = ["summarise"] } # capability, model name, or recommendation

[[activities]]

A step you add to the workflow. Repeatable.

Key Required Meaning
id yes Stable. Matching one Podlibre ships replaces it.
scope yes application, show, or episode.
phase no Which group of the workflow. Defaults to the end.
icon no A glyph name.

Strings come from your catalogue: activity.<id>.title and activity.<id>.hint.

[[surfaces]]

Where you appear. Repeatable. See Surfaces.

Key Required Meaning
kind yes screen, editor_pane, side_panel, dialog, palette, field_editor
activity for screen Which of your activities opens it
view usually Path to the view description
field for field_editor Which field key you are the editor for

[[fields]]

A field you add to the model. Repeatable. See The show file.

Key Required Meaning
key yes Unique across all plugins. Prefix it with your id if in doubt.
on yes show or episode.
type yes text, html, url, number, date, choice, list
values for choice The permitted values.
shared no true lets other plugins read it. Default false.
rss no The tag to emit on export, if any.
id3 no The ID3 frame, if any.

[[commands]]

Optional. Commands are usually declared with the @plugin.command decorator; list one here only when it should appear in the command palette without a surface of its own.

Key Required Meaning
id yes Matches the decorated function.
scope no Where it makes sense; hidden elsewhere.