---
title: "Scorm Again"
description: "scorm-again is the JavaScript runtime you reach for when something other than a full LMS has to host SCORM content: a custom learning platform, an internal training portal, a preview tool, a test harness. It supplies the API and API_1484_11 objects a course expects to find on the window, keeps the CMI data model, validates what the content writes to it, and commits to whatever endpoint you configure."
canonical_url: "https://scorm-tools.com/tools/scorm-again"
last_updated: "2026-10-31T10:22:03.094Z"
---

scorm-again is the JavaScript runtime you reach for when something other than a full LMS has to host SCORM content: a custom learning platform, an internal training portal, a preview tool, a test harness. It supplies the `API` and `API_1484_11` objects a course expects to find on the window, keeps the CMI data model, validates what the content writes to it, and commits to whatever endpoint you configure.

It is unusually thorough for a library of its size. The SCORM 2004 side includes an actual sequencing and rollup implementation rather than the usual stub, and v3 added a cross-frame bridge so content can run in a sandboxed or cross-origin iframe while the real API stays in the parent. That last feature is the reason other projects — Catalyst's Moodle remote-SCORM plugin among them — build on it rather than writing their own.

What it is not: an LMS, a packager, or a validator. It will not tell you whether a zip is well-formed; the same author's Java parser covers that. Nor does it speak xAPI or cmi5, and AICC was deliberately dropped in v3.0.0.

Maintenance is healthy — v3.3.0 shipped in August 2026, the test suite runs in CI, and the migration guide for the v2 to v3 break is honest about what changed. For a single-maintainer library this is about as safe a dependency as the category offers.
