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.
Prerequisites:
- Python 3.12 or newer
uvffmpeg
Check that Lectern can be installed from the public repository:
uv tool run --from git+https://github.com/loganrooks/lectern.git lectern --versionRun 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.
- 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.
Prerequisites:
- Python 3.12 or newer
uvffmpegfor media work beyond the scaffold
make sync
make verifymake verify is the local and CI verification entrypoint. It runs linting,
format checks, type checks, tests, and the public repository safety check.
The current lectern ingest path supports the synthetic fixture workflow:
uv run lectern ingest tests/fixtures/synthetic_talk.wavThat 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 listUse --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.
- 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 is0.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.
- Design
- Grey Areas
- Privacy
- Roadmap
- Support and compatibility
- Changelog
- Architecture decisions
- Automated contributor guidance
MIT. Lectern processes media you have the right to access, on your own machine, and provides no redistribution features.