Skip to content

loganrooks/lectern

Repository files navigation

lectern

CI License: MIT Python 3.12+

Turn talks into thought. Lectern ingests recorded talks and produces local, inspectable knowledge bundles for humans and agents.

Lectern is pre-release software. The current public preview surface is a CLI-first local workflow: ingest local media, record provenance in a bundle, and inspect the local source, queue, and library state. There is no package-registry release yet.

Quickstart

Prerequisites:

  • Python 3.12 or newer
  • uv
  • ffmpeg

Check that Lectern can be installed from the public repository:

uv tool run --from git+https://github.com/loganrooks/lectern.git lectern --version

Run the local fixture workflow from a checkout:

set -e
LECTERN_TMP="$(mktemp -d)"
git clone https://github.com/loganrooks/lectern.git "$LECTERN_TMP/lectern"
cd "$LECTERN_TMP/lectern"
make sync
uv run lectern doctor
uv run lectern ingest tests/fixtures/synthetic_talk.wav --output "$LECTERN_TMP/bundles" --state "$LECTERN_TMP/state.sqlite"
uv run lectern library list --state "$LECTERN_TMP/state.sqlite"

The fixture uses synthetic audio and a committed transcript sidecar so the workflow is redistributable and does not download an ASR model.

Design Shape

  • Pipeline of pure stages: acquire, normalize, transcribe, diarize, visual, enrich, situate, synthesize.
  • Durable bundle artifacts on disk, with explicit manifests and stage records.
  • Local-first media processing with per-stage opt-in for remote APIs.
  • Synthetic fixtures only; no copyrighted media fixtures in the repository.

Development

Prerequisites:

  • Python 3.12 or newer
  • uv
  • ffmpeg for media work beyond the scaffold
make sync
make verify

make verify is the local and CI verification entrypoint. It runs linting, format checks, type checks, tests, and the public repository safety check.

Current Preview Support

The current lectern ingest path supports the synthetic fixture workflow:

uv run lectern ingest tests/fixtures/synthetic_talk.wav

That fixture uses a committed .transcript.txt sidecar so CI can check bundle behavior and transcript passthrough without downloading ASR models or sending media to remote services.

Lectern can also use an optional local JSON transcriber command for media without a sidecar:

uv run lectern ingest local-talk.wav --transcriber-command "my-local-asr --json {input}"

The command is executed locally with the normalized audio path and must emit JSON segments or text. Lectern records transcript method metadata and timestamp anchors, but it does not bundle an ASR model, does not call remote transcription providers, and does not claim transcript faithfulness. A user-supplied command runs with the user's privileges; Lectern cannot prove that command never opens a network connection.

Lectern also has an early local automation spine for folder sources. It records source and queue state in local SQLite, scans local folders without network access, requires explicit queue approval before ingesting a discovered item, and indexes completed bundles:

uv run lectern sources add-folder talks ~/Talks
uv run lectern sources scan talks
uv run lectern queue list
uv run lectern queue approve <queue-item-id>
uv run lectern queue ingest <queue-item-id>
uv run lectern library list

Use --json on source, queue, and library commands for machine-readable output. The state database is local run state under .lectern/ by default and should not be committed.

Current Limits

  • YouTube and other external source discovery are not implemented yet.
  • Lectern does not download media from external services.
  • MCP/API access, richer search, visual evidence, OCR, reference resolution, and citation-gated synthesis are later roadmap items.
  • The local command transcriber path is an integration point, not a bundled ASR engine or transcript-quality guarantee.
  • Local bundles can contain sensitive media-derived artifacts. Keep them out of commits and issue reports.
  • Bundle manifest compatibility is tied to the manifest schema_version. The current manifest schema version is 0.1.0; pre-release compatibility policy is described in SUPPORT.md.

Read CONTRIBUTING.md before opening a pull request. Security and privacy reporting guidance is in SECURITY.md.

Documentation

License

MIT. Lectern processes media you have the right to access, on your own machine, and provides no redistribution features.

About

Turn recorded talks into local, analyzable knowledge bundles.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors