Skip to main content

Explains lecture slides using Claude. For when you have the slides but not the lecture.

Project description

chalk

When self-studying university courses (e.g. CMU 15-411, MIT 6.1810), you often get lecture slides but no lecture videos. The slides alone are rarely self-contained: professors design them as visual aids for a spoken lecture, not as standalone reading material. So you scroll through a PDF, hit a slide you don't understand, and have no way to hear the explanation that was supposed to go with it.

chalk fills that gap. Point it at a lecture PDF, tell it which slides you're stuck on, and it generates a professor-style explanation. It reads all prior slides for context (not just the ones you asked about), so it understands the narrative arc of the lecture before explaining your target slides.

Two ways to use it

Claude Code (recommended)

If you use Claude Code, the /slides skill lets Claude read the slide images directly, no API key needed:

/slides lecture.pdf 15
/slides lecture.pdf 10-15
/slides lecture.pdf 3,7,12 What is the connection between these three slides?

This extracts pages 1 through the last requested page as PNGs, loads them into Claude's context, and explains the target slides with full awareness of everything that came before.

To make /slides available:

chalk --install-skill

Or, if working from a local clone:

mkdir -p ~/.claude/skills/slides
cp skills/slides/SKILL.md ~/.claude/skills/slides/SKILL.md

Standalone CLI

For terminal use without Claude Code. Requires an Anthropic API key:

export ANTHROPIC_API_KEY="sk-ant-..."

chalk lecture.pdf 15
chalk lecture.pdf 3-7
chalk lecture.pdf 1,3,5
chalk lecture.pdf 1-3,5,7-9

The CLI sends all slides from page 1 through your last requested page to Claude's vision API and streams the explanation to stdout.

Options:

--model MODEL       Claude model to use (default: claude-sonnet-4-6)
--prompt PROMPT     Custom prompt (default: "Explain these slides.")
--max-tokens N      Maximum tokens in the response (default: 8192)

Examples:

chalk lecture.pdf 12 --prompt "Summarize the key equations on this slide."
chalk lecture.pdf 1-10 --max-tokens 16384

Installation

Requires Python 3.12+.

# From PyPI
pip install chalk-pypi
# or
uv tool install chalk-pypi

# From source
uv tool install git+https://github.com/fadli0029/chalk.git

Development

git clone https://github.com/fadli0029/chalk.git
cd chalk
uv sync

# Run quality checks
uv run ruff check src/ tests/
uv run ruff format --check src/ tests/
uv run mypy
uv run pytest

License

MIT. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chalk_pypi-0.2.1.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chalk_pypi-0.2.1-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file chalk_pypi-0.2.1.tar.gz.

File metadata

  • Download URL: chalk_pypi-0.2.1.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","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}

File hashes

Hashes for chalk_pypi-0.2.1.tar.gz
Algorithm Hash digest
SHA256 48cbd0e8910aad8bbb5c1c530688e26c641af3b14a2e33dec2275cc0d96d8eec
MD5 e717eb0863505c4d3e6f8c36b1681705
BLAKE2b-256 e9979bde5504ca35b38a8855cc974e3782ce362fbe8b0c92a15cfc62d3e81ef9

See more details on using hashes here.

File details

Details for the file chalk_pypi-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: chalk_pypi-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 13.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","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}

File hashes

Hashes for chalk_pypi-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2ac07add57722ed6f32c0668699c5c21d7735df3c0cf3e5e8865d86fe8aa32e1
MD5 69e0243df13e420c8a8a74408739d6c5
BLAKE2b-256 943089d9113e8f64056281694e858d108340f2b028722af50f269aa453024604

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page