neuromatch-course-kit
The nma-kit command line for Neuromatch courses written in
MyST Markdown. It is one half of the
Neuromatch course kit; the other
half is the MyST plugin on npm,
@neuromatch/course-kit.
Both ship under the same version.
Courses usually don't install this by hand: the reusable GitHub workflows in the kit repository do. To use it locally:
uv venv && uv pip install -r requirements.txt "neuromatch-course-kit==0.1.*"
uv run nma-kit check
uv run myst start
Requires Python 3.10 or newer. Run every command from the course root (the
folder with myst.yml).
Commands
| Command | What it does |
|---|---|
nma-kit check |
Validate the content rules and the nma: block of myst.yml |
nma-kit notebooks [--dry-run] |
Generate student and instructor notebooks and the solution files into notebooks/ |
nma-kit sync-assets |
Write the site branding (stylesheet, logos, favicon, Rubik font) to _nma/, which the course's myst.yml points at |
nma-kit render-scrolly |
Run each scrolly page's instructor notebook and save outputs to _build/scrolly/ |
nma-kit prepare-site [--dry-run] [--kit-version V] |
Add badges and fallback cells to the pages, pin the kit URL in myst.yml and run sync-assets. CI only: it edits files in place, never commit the result |
nma-kit publish-notebooks [--remote R] [--message M] |
Push notebooks/ to the notebooks branch (created if missing) |
Exit codes: 0 ok, 1 content problems or a failed publish, 2 usage or
configuration errors.
Settings
Read from myst.yml: project.github gives the repository, and the optional
top-level nma: block holds the rest.
nma:
paths:
tutorials: tutorials # where the .md pages live
notebooks:
branch: notebooks-branch # where generated notebooks are published
feedback: # required if any page uses {nma-feedback}
url: https://...
project: ...
user_key: ...
brand: # site colours, "#RRGGBB" each (see below)
primary: "#008CBF"
style:
extra: _static/extra.css # your own CSS, appended after the kit's
Site branding
sync-assets writes _nma/site.css, logo.svg, logo-dark.svg and
favicon.png. List them in myst.yml:
site:
options:
style: _nma/site.css
logo: _nma/logo.svg
logo_dark: _nma/logo-dark.svg
favicon: _nma/favicon.png
The stylesheet is the kit's (Neuromatch palette, Rubik embedded, so the
kit's own CSS makes no font requests, styles for the kit's widgets), then your
nma.brand colours, then your nma.style.extra CSS. Brand keys: primary,
primary_hover, primary_light, secondary, accent. Setting only primary
derives the hover and light variants. _nma/ ignores itself, so don't commit
it; run sync-assets again after upgrading the kit.
Values in nma: must be plain strings in one level of sections.
Versions
The kit is on 0.x. A breaking change bumps the minor version, so
==0.1.* only receives compatible fixes. The CLI and the npm plugin always
share a version number, and prepare-site pins the plugin URL to the CLI's
own version.
Source, docs and release process: https://github.com/neuromatch/course-kit.
BSD-3-Clause.
Metadata
Release files for neuromatch-course-kit 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| neuromatch_course_kit-0.1.3.tar.gz | 305.8 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| neuromatch_course_kit-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 440.2 kB
Release files / neuromatch_course_kit-0.1.3.tar.gz
| Download URL | neuromatch_course_kit-0.1.3.tar.gz |
|---|---|
| Size | 305.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e35d5b149a22fd1121987bc225e5963831d98dfd1351170c06b779b099a63efc
|
|
BLAKE2b-256 checksum How to use checksums |
22fc1290ba3ed4a18456861e9554d5fbeb507464e0438ac3f9096cad8ec9f13c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / neuromatch_course_kit-0.1.3-py3-none-any.whl
| Download URL | neuromatch_course_kit-0.1.3-py3-none-any.whl |
|---|---|
| Size | 134.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a84f2e601b439d7b63ba37139c82184faaf130343b1fb1dd5534c989f8dcd417
|
|
BLAKE2b-256 checksum How to use checksums |
20895cd34b8792be20aa3a796b0226a9cb45769fb203ab42b0cbb73188a300e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logSecurity for neuromatch-course-kit 0.1.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for neuromatch_course_kit-0.1.3.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.