ai-notes / README.md
Lynote's picture
docs: add text-analysis tag
11e23b7 verified
|
Raw
History Blame Contribute Delete
4.17 kB
metadata
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 Open source (MIT): 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

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:

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

License

MIT. See the repository for source and license notices.