The official store for SciQLop — browse and install community plugins, workspaces, templates, and examples directly from the app.
Open SciQLop, go to the Plugin Store tab, find what you need, and click Install. That's it — no terminal required.
The easiest way to add your plugin, workspace, template, or example to the store is through a GitHub issue:
Fill in the form, and a maintainer will review it. Once approved, a PR is created and merged automatically — your entry appears in the store within minutes.
| Type | Directory | Description |
|---|---|---|
plugin |
plugins/ |
Installable Python packages that extend SciQLop |
workspace |
workspaces/ |
Pre-configured workspaces for specific missions or workflows |
template |
templates/ |
Reusable plot panel templates |
example |
examples/ |
Tutorials and example notebooks |
If you prefer pull requests over issue forms, create a YAML file in the appropriate directory. The file name should be a slug of the entry name (e.g. my-plugin.yaml).
name: My Plugin
type: plugin
description: What it does
author: Your Name
license: MIT
github: owner/repo # optional — displays GitHub star count
tags: [analysis, mms]
versions:
- version: "0.1.0"
sciqlop: ">=0.10"
pip: my-sciqlop-plugin==0.1.0The pip field accepts a PyPI package specifier (my-plugin==0.1.0) or a direct URL to a wheel.
name: MMS Reconnection Events
type: example
description: Catalog of magnetic reconnection events observed by MMS
author: Community
tags: [mms, reconnection, catalog]
url: https://github.com/.../mms-reconnection-example.zipCommon fields (all types):
| Field | Required | Description |
|---|---|---|
name |
yes | Display name |
type |
yes | plugin, workspace, template, or example |
description |
yes | One-line description |
author |
yes | Author name or team |
tags |
no | List of tags for filtering |
github |
no | owner/repo — star count is fetched at build time |
Plugin-specific fields:
| Field | Required | Description |
|---|---|---|
license |
yes | SPDX license identifier |
versions |
yes | List of version entries (see below) |
Version entries (plugins only):
| Field | Required | Description |
|---|---|---|
version |
yes | Plugin version (semver) |
sciqlop |
yes | Compatible SciQLop version range (PEP 440) |
pip |
yes | pip specifier, PyPI package, or direct wheel URL |
Non-plugin fields:
| Field | Required | Description |
|---|---|---|
url |
yes | Download URL |
SciQLop supports multiple store URLs. Any repository following this structure works as an independent store:
-
Fork or copy this repo as a starting point.
-
Add YAML entries in
plugins/,workspaces/,templates/, and/orexamples/. -
Build the index — the build script merges all YAMLs into
site/index.jsonand an HTML browsing page:pip install pyyaml jinja2 markupsafe python build_index.py
If you set a
GITHUB_TOKENenvironment variable, the build fetches GitHub star counts for entries with agithubfield. -
Deploy
site/to GitHub Pages (or any static host). The included CI workflow (.github/workflows/publish.yml) does this automatically on push tomain. -
Point SciQLop at your store by adding your
index.jsonURL to the store URL list in SciQLop's settings.
| File | Purpose |
|---|---|
site/index.json |
Machine-readable index consumed by SciQLop |
site/index.html |
Human-browsable catalog page |
# Build locally
pip install pyyaml jinja2 markupsafe
python build_index.py
# Serve locally
cd site && python -m http.server 8765The examples/ directory contains a CI template (bundle-ci.yml) for plugin bundle repos that build and release wheels automatically on tag push.