Skip to content

cmi5 — what it actually requires, and the tools that support it

The xAPI profile that supplies what xAPI deliberately left out: how an LMS launches a course and how the two agree it is finished.

Written and maintained by the scorm-tools.com editor. 14 listed tools state support.

What cmi5 is

cmi5 answers the question xAPI leaves open. It is a profile — a set of rules layered on top of xAPI, not a separate protocol — that defines a course structure file, a launch mechanism, and a fixed vocabulary of nine verbs.

A cmi5 package is a ZIP with a cmi5.xml at its root describing a course made of Assignable Units. The LMS launches an AU with a URL carrying an endpoint, an authorisation token, a registration and an activity id, so the AU knows which LRS to write to and under whose identity. From there it sends ordinary xAPI statements, but the ones that decide the outcome come from a defined set: launched, initialized, completed, passed, failed, terminated, satisfied, waived and abandoned. Moving-on criteria in the course structure state which of those the LMS should treat as success.

The practical summary: cmi5 gives you SCORM’s launch-and-report contract with xAPI’s data model, and without SCORM’s dependence on sitting in a parent browser window. Content can run outside the LMS frame, on a device, or offline and synchronise later. What it does not give you is SCORM’s sequencing, or SCORM’s near-universal support — which is what the tool list below is for.

Versions and what changed

Release history of cmi5
Version Released What changed
AICC drafts2012–2015Started at the AICC as the successor to its own CMI work, then transferred to ADL when the committee wound down.
v1.0 "Quartermaster"June 2016First released specification: course structure, launch, the nine-verb vocabulary and moving-on criteria.
CATAPULT2020–2021ADL project delivering the cmi5 conformance test suite, a best-practice guide and reference libraries — the point at which conformance became testable rather than assertable.

Who says so

We link to the specification and to other people's registries. We do not run a conformance programme and we do not issue badges of our own: a claim here is registry-verified only when an official registry says so, and otherwise it is marked as the vendor's statement or as our own check on a date.

Specification

Registry

  • ADL CATAPULT (cmi5 test suite and player)Registry retired Nov 2025

    ADL’s cmi5 conformance test suite, player and course examples. The hosted Adopter Registry that used to publish results was retired on 18 November 2025, so cmi5 conformance is now something a vendor demonstrates rather than something a registry attests. That is the single biggest reason cmi5 claims in this directory are marked vendor-stated far more often than verified.

Tools that support cmi5

Grouped by what the tool does, and within each group ordered by how well the claim is evidenced: registry entries first, then facts we checked ourselves, then the vendor's own statement.

Authoring tools & course frameworks

Authoring tools & course frameworks that support cmi5
Tool Evidence Licence Pricing
CourseCodeCode-first course framework and CLI that packages to SCORM, cmi5 and LTI 1.3editor-checked— source, opens in a new tab Checked MITOpen source
LessonKitAuthor courses as React components, then export SCORM, xAPI or cmi5 from the same codebaseeditor-checked— source, opens in a new tab Checked Apache-2.0Open source

Testing, validation & conformance

Testing, validation & conformance that support cmi5
Tool Evidence Licence Pricing
PrismUnzips a SCORM, AICC, cmi5 or xAPI package and runs axe-core over every page in iteditor-checked— source, opens in a new tab Checked MITOpen source

Packagers, SDKs & libraries

Packagers, SDKs & libraries that support cmi5
Tool Evidence Licence Pricing
SCORM Cloud API v2 clientsRustici's generated client libraries for the SCORM Cloud REST API, in six languageseditor-checked— source, opens in a new tab Checked Apache-2.0Open source
scorm-kitA nine-command CLI that lints, diffs and audits SCORM packages before uploadeditor-checked— source, opens in a new tab Checked MITOpen source
TesseraAuthor a course as Svelte pages, then export the same source as SCORM, cmi5 or xAPIeditor-checked— source, opens in a new tab Checked MITOpen source
eLearning Module ParserJava library that detects and parses SCORM, AICC, cmi5 and xAPI packages into typed metadatavendor-stated— source, opens in a new tab Checked Apache-2.0Open source

LMS & LMS plugins

LMS & LMS plugins that support cmi5
Tool Evidence Licence Pricing
ILIASGerman open-source LMS carrying SCORM 1.2, SCORM 2004 and cmi5 objects in coreeditor-checked— source, opens in a new tab Checked GPL-3.0Open source

xAPI & cmi5

xAPI & cmi5 that support cmi5
Tool Evidence Licence Pricing
@xapi/cmi5A typed JavaScript client that handles the cmi5 handshake for you inside a courseeditor-checked— source, opens in a new tab Checked MITOpen source
CATAPULTADL's cmi5 player, content test suite and LMS test suite in one repositoryeditor-checked— source, opens in a new tab Checked Apache-2.0Open source
cmi5 Client Library (ADL)ADL's archived JavaScript wrapper and example AU for the content side of cmi5editor-checked— source, opens in a new tab Checked Apache-2.0Open source
cmi5.jsRustici's JavaScript runtime for the assignable-unit side of a cmi5 courseeditor-checked— source, opens in a new tab Checked Apache-2.0Open source
cmi5launch for MoodleADL's Moodle activity module that launches cmi5 content via the CATAPULT playereditor-checked— source, opens in a new tab Checked Apache-2.0Open source
RapidCMI5Desktop authoring tool that outputs cmi5 packages, aimed at TLA programmeseditor-checked— source, opens in a new tab Checked AGPL-3.0Open source

Choosing between them

cmi5 or SCORM 2004?

cmi5 if the content needs to run outside the LMS window, work offline, or record more than the SCORM data model can hold. SCORM 2004 if you need sequencing, or if the target LMS is one of the many that still does not accept a cmi5 package.

cmi5 or plain xAPI?

Use cmi5 whenever an LMS is launching the content. Plain xAPI is for events that have no launching LMS at all — an app, a device, a workflow — where there is nothing to agree a completion contract with.

Questions people ask about cmi5

Is cmi5 a replacement for SCORM?

It is the closest thing to a like-for-like replacement, because it covers packaging, launch and completion the way SCORM does. Whether it can replace SCORM for you depends entirely on whether your LMS accepts it.

What is an Assignable Unit?

The smallest piece of a cmi5 course an LMS can launch and track — roughly what a SCO is in SCORM. A course structure lists its AUs and the criteria for moving on from each.

Which verbs does cmi5 define?

Nine: launched, initialized, completed, passed, failed, terminated, satisfied, waived and abandoned. Content may send other xAPI statements freely, but only these decide the cmi5 outcome.

Does cmi5 need an LRS?

Yes. The LMS must provide an LRS endpoint at launch, and the AU reports to it. Some LMSs embed one; others delegate to a separate LRS.

How do I test a cmi5 package?

ADL’s CATAPULT project publishes a conformance test suite for both course packages and LMS implementations. It is the closest thing to an official answer, and it is free.

Why do so few LMSs support cmi5?

Because supporting it means implementing or integrating an LRS and a launch flow, not just accepting a ZIP. That is a larger change than adding another SCORM version, so adoption has been slower than the specification’s age suggests.

The other standards

SCORM 1.2
The oldest version of SCORM still in daily use, and still the safest export format when you do not control the target LMS.
SCORM 2004
The second generation of SCORM: a larger data model, and sequencing rules the LMS is required to enforce.
xAPI
A way to record that somebody did something, anywhere, and keep it in a store you control.
AICC
The pre-SCORM interoperability rules, still worth knowing because HACP crosses domains where SCORM cannot.
LTI
A launch protocol, not a packaging format: the LMS sends the learner to a tool that stays where it is.