Skip to main content

CLM - Coding-Academy Lecture Manager

CI codecov

Version: 1.35.2 | License: MIT | Python: 3.12, 3.13, 3.14

CLM is a course content processing system that converts educational materials (Jupyter notebooks, PlantUML diagrams, Draw.io diagrams) into multiple output formats.

Quick Start

Installation

# Install from PyPI
pip install coding-academy-lecture-manager

# Or with all optional dependencies (workers, TUI, web dashboard)
pip install "coding-academy-lecture-manager[all]"

For development, clone the repository and install in editable mode:

git clone https://github.com/hoelzl/clm.git
cd clm
pip install -e ".[all]"

Basic Usage

# Convert a course
clm build /path/to/course.xml

# Watch for changes and auto-rebuild
clm build /path/to/course.xml --watch

# Show help
clm --help

Features

  • Multiple Output Formats: HTML slides, Jupyter notebooks, extracted code
  • Multi-Language Notebooks: Python, C++, C#, Java, TypeScript, Markdown
  • Diagram Support: PlantUML and Draw.io conversion
  • Multiple Output Targets: Separate student/solution/instructor outputs
  • Shared-Source Includes: Declare <include source="…" as="…"/> on a <topic> or <section> to splice a canonical Python package (or any file/directory) into multiple topics at build time. clm course sync-includes materializes the same sources on disk so local notebook execution (VS Code, JupyterLab) finds them, with a .clm-include ledger for safe cleanup.
  • Output-Write Deduplication: When the same file is written to the same output path by multiple producers, CLM deduplicates the write and surfaces a output_dedup_count / output_conflicts summary so you can spot accidental cross-topic collisions.
  • Watch Mode: Auto-rebuild on file changes
  • Incremental Builds: Content-based caching
  • LLM Summaries: Generate course summaries with clm export summary using any OpenAI-compatible LLM API
  • Recording Management: Manage video recording workflows with pluggable backends — local ONNX pipeline, iZotope RX 11 external tool, or Auphonic cloud processing — plus assembly, job tracking, and per-course status (clm recordings)
  • MCP Server: Model Context Protocol server for AI-assisted slide authoring (clm mcp) with 16 tools for course navigation, validation, normalization, and bilingual editing
  • Slide Authoring Tools: Split-deck authoring sync (clm slides sync — the funnel that keeps both halves of a .de/.en pair consistent), topic resolution (clm course resolve-topic), fuzzy search (clm slides search), spec/slide validation (clm validate), normalization (clm slides normalize), bilingual language view (clm slides language-view), voiceover extraction (clm voiceover extract), LLM-driven voiceover coverage check (clm slides coverage), bilingual ↔ per-language file conversion (clm slides split / clm slides unify), and structured JSON outlines (clm export outline --format json). Lower-level plumbing (clm slides assign-ids, clm slides suggest-sync) stays available by name for scripts and agents.
  • Video Narration Harvest: Recover spoken narration from recorded videos into slide decks (clm harvest) — an agent-first report → task → accept loop over the deterministic transcribe/detect/match/align pipeline, with multi-part recordings, caching, and a legacy embedded-LLM one-shot (clm harvest autopilot)
  • LLM Polish: Clean up speaker notes with LLM-powered text polishing (clm polish)
  • Git Integration: Manage output repos with clm git init/sync/status, including --amend and --force-with-lease for iterative workflows
  • Flexible Remote URLs: Configurable git remote URL templates for SSH, custom hosts, etc.

Documentation

For Users:

For Developers:

Development Setup

# Install pre-commit hooks (recommended)
uv run pre-commit install

# This enables automatic linting (ruff) and type checking (mypy) on every commit

Testing

# Run unit tests
pytest

# Run all tests (unit, integration, e2e)
pytest -m ""

# Run with coverage
pytest --cov=src/clm

License

MIT License - see LICENSE for details.

Metadata

Release files for coding-academy-lecture-manager 1.35.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for coding-academy-lecture-manager 1.35.2
File Size Uploaded Provenance
coding_academy_lecture_manager-1.35.2.tar.gz 3.8 MB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for coding-academy-lecture-manager 1.35.2
File Interpreter ABI Platform
coding_academy_lecture_manager-1.35.2-py3-none-any.whl Python 3 none any Details

Total release size: 6.3 MB

Release files / coding_academy_lecture_manager-1.35.2.tar.gz

Download URL coding_academy_lecture_manager-1.35.2.tar.gz
Size 3.8 MB
Tags Source
SHA-256 checksum
How to use checksums
8019e85c0358e727da5cf12b45684abef27e55bc93eaac892a2c3cae79a923ba
BLAKE2b-256 checksum
How to use checksums
f62b6095a04a9b50b02591dc119df3d4e09390499e20da1fd324f35ba408ddaf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / coding_academy_lecture_manager-1.35.2-py3-none-any.whl

Download URL coding_academy_lecture_manager-1.35.2-py3-none-any.whl
Size 2.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
769d528ec9437da949c27633fd9f6516cae6528ff4f2b336dc91c3dc5d23d677
BLAKE2b-256 checksum
How to use checksums
189b62234e6f5782b806712fa075863112fc3d2c01f5677475af1e0793e80b4e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for coding-academy-lecture-manager 1.35.2

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A 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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.35.2 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page