Thanks for your interest in contributing. This is a small, focused tool — contributions that fix bugs, improve reliability, or add support for new LLM providers are most welcome.
- Open an issue first for anything non-trivial so we can align on scope before you invest time writing code.
- Bug fixes and small improvements can go straight to a PR.
git clone https://github.com/nickybmon/Zoom-Notes.git
cd Zoom-Notes
# Install git hooks (blocks accidental commits of WAL files and secrets)
make install-hooks
# Python environment (for running tests)
python3 -m venv venv
./venv/bin/pip install pytest
# Run the test suite
make test-
make testpasses with no failures - No WAL files,
settings.json, API keys, or real meeting content committed (the pre-commit hook enforces this) - Swift changes compile in Xcode without warnings
- New behaviour is covered by a test in
tests/
zoom_notes.py — WAL discovery, transcript parsing, LLM calls, note writing
zoom_config.py — Settings and Keychain helpers
zoom_engine.py — Headless poller spawned by the Swift app
ZoomNotesApp/ — Swift/SwiftUI menu bar app
tests/ — pytest suite
See CLAUDE.md for a detailed architecture walkthrough.
- Python: standard library only (no third-party runtime dependencies). PEP 8, type hints where practical.
- Swift: system frameworks only (no SPM packages). Standard SwiftUI/AppKit patterns.
- No heavy abstractions — prefer direct, readable code over clever generalization.
Please include:
- macOS version
- Zoom version
- Which LLM provider you're using
- Relevant output from
python3 zoom_notes.py --listor Console.app logs underzoom-notes