Coding-Academy Lecture Manager - A course content processing system
Project description
CLM - Coding-Academy Lecture Manager
Version: 1.2.1 | License: MIT | Python: 3.11, 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
- Watch Mode: Auto-rebuild on file changes
- Incremental Builds: Content-based caching
- LLM Summaries: Generate course summaries with
clm summarizeusing 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 12 tools for course navigation, validation, normalization, and bilingual editing - Slide Authoring Tools: Topic resolution (
clm resolve-topic), fuzzy search (clm search-slides), spec/slide validation (clm validate-spec,clm validate-slides), normalization (clm normalize-slides), bilingual language view (clm language-view), sync suggestions (clm suggest-sync), voiceover extraction (clm extract-voiceover), and structured JSON outlines (clm outline --format json) - Voiceover Sync: Synchronize video recordings with slides to auto-generate speaker notes (
clm voiceover sync), with multi-file input for part-based recordings and intelligent merge mode that preserves existing content while integrating transcript additions and filtering recording noise - 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--amendand--force-with-leasefor iterative workflows - Flexible Remote URLs: Configurable git remote URL templates for SSH, custom hosts, etc.
Documentation
For Users:
- User Guide - Complete usage guide
- Quick Start - Build your first course
- Spec File Reference - Course XML format
- Configuration - Configuration options
- Changelog - Version history
For Developers:
- Contributing Guide - How to contribute
- Developer Guide - Development documentation
- Architecture - System design
- CLAUDE.md - AI assistant reference
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.
Links
- Repository: https://github.com/hoelzl/clm/
- Issues: https://github.com/hoelzl/clm/issues
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file coding_academy_lecture_manager-1.2.1.tar.gz.
File metadata
- Download URL: coding_academy_lecture_manager-1.2.1.tar.gz
- Upload date:
- Size: 974.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
74f36b9f29f3844333b7ae4878522998b373ccd63dcaaaae750e0f396a0b0a04
|
|
| MD5 |
34dd0a5d3d8bb44afd4ab9140c1a06f0
|
|
| BLAKE2b-256 |
bf03dedf52367bf20590c64a2a72fa4f9d9cfb14609680eaa9ebff903c8ec97f
|
File details
Details for the file coding_academy_lecture_manager-1.2.1-py3-none-any.whl.
File metadata
- Download URL: coding_academy_lecture_manager-1.2.1-py3-none-any.whl
- Upload date:
- Size: 622.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad10e19324dc94524edcce6794cc2a09a970d58c0747c11c78ad929fe3ffbf17
|
|
| MD5 |
ba4e678715e3ce8d596df56b848e4244
|
|
| BLAKE2b-256 |
f6dc434dacce7d9d4d461fecbb2816560342691d87b9df0df00bc66b764fc716
|