Skip to main content

CLM - Coding-Academy Lecture Manager

CI codecov

Version: 1.34.0 | 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.34.0

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.34.0
File Size Uploaded Provenance
coding_academy_lecture_manager-1.34.0.tar.gz 3.7 MB Without provenance Details

Built distribution (wheel)

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

Total release size: 6.2 MB

Release files / coding_academy_lecture_manager-1.34.0.tar.gz

Download URL coding_academy_lecture_manager-1.34.0.tar.gz
Size 3.7 MB
Tags Source
SHA-256 checksum
How to use checksums
9969952dd3fcf79bcb0400483423e856cf1ae64081e1d7348bf5e015b9757ae3
BLAKE2b-256 checksum
How to use checksums
e0b5f10ddbbe7f6bfc9feb73dde863eb27fb64a0bfdbee3e7cd7031243d989d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","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.34.0-py3-none-any.whl

Download URL coding_academy_lecture_manager-1.34.0-py3-none-any.whl
Size 2.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
41a22aedcddb00328a476a55018e91c82c7877db786517b3a5d5c830410d473c
BLAKE2b-256 checksum
How to use checksums
b30805708374c9d46633b32debdb7104fb5695029dad9b55ec6a1c6198ac26ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","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.34.0

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