--- title: AI Notes emoji: 📝 colorFrom: indigo colorTo: green sdk: static pinned: true license: mit short_description: "Source-grounded AI notes with citations (open source)." tags: - ai-notes - note-taker - text-analysis - source-grounded - citations - rag - local-first - bilingual - open-source - python - cli --- # 📝 AI Notes **Source-grounded, bilingual, local-first AI note taker.** Turn documents, web pages, recordings, videos and YouTube links into structured notes where every bullet cites the exact source chunk it came from — so you can verify, edit and reuse notes instead of trusting a black box. **Find us on Product Hunt:** [Lynote on Product Hunt](https://www.producthunt.com/products/lynote-ai?launch=lynote-3) **Open source (MIT):** [github.com/lynote-ai/lynote-notes](https://github.com/lynote-ai/lynote-notes) ## The problem AI note tools usually give you a summary you cannot check. If a note says "BM25 is used for retrieval", you should be able to click through to the sentence that said it. Lynote Notes makes traceability the default contract: notes are generated from your sources, and every claim links back to a chunk — including a timestamp for audio and video. ## Quickstart ```bash git clone https://github.com/lynote-ai/lynote-notes.git cd lynote-notes pip install -e . lynote-notes add lecture.md lynote-notes add https://example.com/post lynote-notes note --title "Weekly reading" lynote-notes ask "What did we decide about pricing?" lynote-notes export --note note_xxx --format anki --out cards.tsv ``` Optional extras add more source types: ```bash pip install -e ".[pdf]" # PDF (pypdf) pip install -e ".[docx]" # Word documents pip install -e ".[media]" # audio/video transcription (faster-whisper) pip install -e ".[youtube]" # YouTube captions (yt-dlp) ``` ## Methodology Five small stages, one traceable pipeline: 1. **Ingest** — text/Markdown, web pages, PDF, DOCX, YouTube captions, audio and video (optional backends behind extras, imported lazily). 2. **Chunk** — paragraph-aware splitting with overlap; media keeps start/end timestamps. 3. **Note** — a provider drafts sections from chunks (offline extractive by default, or any OpenAI-compatible LLM with automatic fallback). Providers only return chunk ids; the core resolves them into citations and drops ids that do not exist, so hallucinated citations cannot leak into a note. 4. **Ask** — dependency-free BM25-lite retrieval (CJK unigrams + bigrams, numeric tokens) finds the evidence; answers cite the chunks they came from. 5. **Export** — Markdown for reading, Anki TSV for memorising. ## Status and quality - 58 offline tests, 92% line coverage, CI on Python 3.9 / 3.11 / 3.12 - Zero third-party dependencies in the core install - Bilingual: English and Chinese out of the box ## Limitations - The default provider is extractive — it selects and organises sentences from your sources rather than rewriting them. Use an LLM provider for more fluent notes. - Retrieval is lexical (BM25): paraphrased questions can miss relevant passages; embeddings are on the roadmap. - Transcription quality depends on the ASR model and audio quality. - No live meeting capture by design: export the recording and upload it. - Notes can still miss context or nuance — always check important facts, numbers and quotes against the cited source. ## More free Lynote tools - [📝 Free AI Note Taker](https://huggingface.co/spaces/Lynote/free-ai-notes) — hosted product page (lynote.ai/ai-notes) - [✍️ Free AI Humanizer](https://huggingface.co/spaces/Lynote/free-ai-humanizer) — rewrite AI text into natural human prose - [🔍 Free AI Detector](https://huggingface.co/spaces/Lynote/free-ai-detector) — sentence-level AI text detection - [🖼️ Free AI Image Detector](https://huggingface.co/spaces/Lynote/free-ai-image-detector) — check if an image was AI-generated - [🧠 humanize-text-model](https://huggingface.co/Lynote/humanize-text-model) — MIT-licensed bilingual T5 model ## License MIT. See the [repository](https://github.com/lynote-ai/lynote-notes) for source and license notices.