Write a plugin. Share what you build.

Plugins are standard Python wheels. Build with uv build and the wheel can be installed locally by anyone who points at it.

1

Build the wheel

terminal
cd plugins/sources/myapi
uv build
2

Install it locally

terminal
shenasctl source add myapi --local ./dist/shenas_source_myapi-*.whl

For your own plugins you're iterating on, this is the fastest loop. The CLI installs the wheel and the plugin appears in the UI on the next sync.

3

Contribute upstream (the supported share path today)

Open a PR against shenas-org/shenas adding your plugin under plugins/sources/<name>/. Once merged, CI builds the wheel, signs it (Ed25519) and publishes it to the shenas-managed plugin index. Users then install with shenasctl source add <name>; the CLI verifies the signature before installing.

A public third-party plugin index that doesn't require the upstream-PR step is on the roadmap; see roadmap.

Plugin certification (planned)

Not yet shipping. The intent: plugins that meet a quality bar — tests, documentation, no credential leaks, clean table schemas — will be eligible for certified status, shown as a badge in the UI, listed in an official directory. Today every plugin in the main repo is shipped without a tiered certification distinction. The mechanism is being designed; the bar is being written down.

Tests Unit tests covering the extract path and schema declarations. The CI pipeline runs them on every PR.
Documentation A README covering installation, configuration keys, and what tables the plugin writes.
No credential leaks Config values (API keys, tokens) must flow through self.get_config_value() — never hardcoded or logged.
Clean schemas Tables extend recognized dataset schemas or declare their own with SI-unit column names. No raw-JSON blob columns in canonical tables.

See the roadmap for current status on plugin certification and the third-party plugin index.