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 |
image |
no | Absolute https:// URL to a card thumbnail |
screenshots |
no | List of absolute https:// URLs shown in a carousel |
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 |
Entries may include a card thumbnail and screenshots. Both are optional and backwards compatible — older SciQLop versions ignore them.
image— a single absolutehttps://URL used as the card thumbnail.screenshots— a list of absolutehttps://URLs shown in a carousel.
URLs must be absolute (https://…). Relative paths fail to load in the in-app
store, and the build rejects them.
Commit images under assets/<slug>/ and reference them by their GitHub Pages URL,
so they are versioned alongside the registry:
assets/
<slug>/
card.png # card thumbnail
01.png 02.png # screenshots, in display order
<slug> is your entry's YAML filename stem (e.g. sciqlop-radio.yaml →
sciqlop-radio). Reference them as:
image: https://sciqlop.github.io/sciqlop-appstore/assets/<slug>/card.png
screenshots:
- https://sciqlop.github.io/sciqlop-appstore/assets/<slug>/01.png
- https://sciqlop.github.io/sciqlop-appstore/assets/<slug>/02.pngThe build verifies that any assets/… Pages URL has a matching committed file. You
may also point image/screenshots at any external absolute URL.
- Formats: PNG or WebP preferred; JPEG acceptable. No SVG for screenshots.
- Card thumbnail: landscape ~16:10, target ~800×500 (rendered cropped to a full-width 100 px cover on the card).
- Screenshots: landscape ~16:9, 1280×720–1920×1080.
- File size: keep each under ~300 KB.
- Count: up to ~5 screenshots.
- Content: real SciQLop UI showing the plugin in use, not logos or banners.
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.