QQuantum Learning Machines
Learnlog

Learning records that say what they actually saw.

Learnlog is a proposed open format for recording AI help in learning. It keeps six stages of help apart, says what the log did and didn't capture, and never turns “not recorded” into “none.”

A real Claude Code session with the Learnlog MCP: a tutoring export, then misconceptions, then what to teach next. Answers unedited; idle pauses trimmed. 3:09.

Six stages of help, kept apart

A request isn't proof help was given. A display isn't proof it was read. Learnlog records each stage on its own, and only when the log really saw it.

Requested
Offered
Generated
Transmitted
Displayed
Accepted

A stage the log didn't capture is “not recorded,” never “none” or zero.

What's here

Everything is open. Read it, run it, check it.

The format

Internet-Draft

draft-srivastava-learnlog-03 at the IETF, with xAPI and Caliper bindings. It's a proposal, not an approved standard.

Read the draft →
Your existing logs

Transformer

Turns exports you already have into Learnlog. Try a sample in your browser; nothing leaves the tab.

Try the transformer →
Trust

Verification

Learnlog files can carry a hash chain. The verifier replays it and tells you if anything changed after the record was made.

See the code →
Your AI assistant

Learnlog MCP

Eight tools for Claude and other MCP apps. Five run on your computer, so your data stays there. Three read public sources: credential checks and QLM's open datasets.

Set it up →
Open data

Misconception dataset

QLM's research-based misconceptions, each with a teacher move, plus LabPath's learning graph. CC BY 4.0.

Get it on Zenodo →

Set up the MCP in three steps

Free and open source (Apache-2.0). Needs Node.js 22.12 or later.

1

Add it to your assistant

In Claude Code:

claude mcp add learnlog -- npx -y @qlm/learnlog-mcp

In Claude Desktop, open Settings → Developer → Edit Config and add:

"mcpServers": {
  "learnlog": { "command": "npx", "args": ["-y", "@qlm/learnlog-mcp"] }
}

If Claude Desktop can't start it on a Mac, it can't find Node: apps opened from the Dock don't get your Terminal's PATH. Set "command" to the output of which npx and add "env": {"PATH": "/opt/homebrew/bin:/usr/bin:/bin"} (use that same folder). Full example.

Any MCP app works the same way.

2

Point it at your export

No export yet? Start with the bundled public sample.

3

Ask

“What does this export record about help, and what should I check next?”