{"slug": "sloth-notes-a-local-ai-digest-for-the-notes-you-don-t-want-to-reread", "title": "Sloth Notes: a local AI digest for the notes you don't want to reread", "summary": "A developer built Sloth Notes, a browser-based tool that condenses pasted English notes into a short, source-linked digest plus keyword-based action suggestions, using the Apache-2.0 Xenova/all-MiniLM-L6-v2 embedding model via Transformers.js 3.8.1 and ONNX Runtime Web. In a single browser check, a synthetic study-group recap shrank from 127 to 59 words (a 54% reduction) in about 0.5 seconds with model assets cached, though the developer cautions this is one demonstration rather than a benchmark. The MIT-licensed app runs entirely on-device with no API key or build step, and every highlight links back to its original sentence for review.", "body_md": "*This is a submission for the [Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady](https://dev.to/challenges/hacktoberfest-week3-2026-10-19).*\n\n**Sloth Notes** turns a messy block of English notes into a short, source-linked digest and a list of suggested actions.\n\nThe idea is small: rereading a meeting recap to find the next thing to do is busywork. Paste the recap, choose up to three, five, or seven highlights, and let a small open model do a first pass. Every highlight quotes an original sentence. Each source button takes you back to that sentence so you can check what was left out.\n\nThe application was built from scratch on October 24, 2026, during the Week 3 window. Codex generated the application code and this write-up in response to my request. The runtime AI is MiniLM, not the coding assistant.\n\nChoose **Try sample notes**, then **Make it shorter**. The first run downloads the quantized model and runtime files. The application then computes sentence embeddings on your device.\n\nIn the browser check, the synthetic study-group recap went from **127 words to 59 words**, a **54% reduction**, in **about 0.5 seconds with model assets already cached**. It also surfaced four keyword-based action suggestions. That is one demonstration, not a benchmark across devices or evidence of real-world time saved.\n\nThe summary can still omit an important detail or select a weak sentence. Source references are there to make review quick.\n\n[Download the complete MIT-licensed source](https://sloth-notes-garv-hf26.noisystone64.chatgpt.site/source.zip) · [Read the README and credits](https://sloth-notes-garv-hf26.noisystone64.chatgpt.site/README.md)\n\nThe source includes HTML, CSS, three JavaScript modules, a README, ten regression tests, and the MIT license. There is no build step or API key.\n\nTo run it locally, extract the archive, enter the sloth-notes directory, and run:\n\n```\npython3 -m http.server 8765 --bind 127.0.0.1\n```\n\nThen open [http://127.0.0.1:8765](http://127.0.0.1:8765).\n\nThe open AI component is [Xenova/all-MiniLM-L6-v2](https://huggingface.co/Xenova/all-MiniLM-L6-v2), an Apache-2.0 embedding model, run with [Transformers.js](https://huggingface.co/docs/transformers.js) 3.8.1 and ONNX Runtime Web.\n\nThe pipeline is:\n\n`Intl.Segmenter`.\nThe core selection score is:\n\n``` js\nconst score =\n  0.55 * relevanceToDocument -\n  0.45 * similarityToAlreadySelectedSentences;\n// The full implementation adds bonuses for explicit decisions and limits,\n// and penalties for repeated numbers, vague fragments, and questions.\n```\n\nThe model supplies the meaning-based vectors that drive selection. The follow-up list is a separate, explicitly labelled **keyword heuristic**. It distinguishes concrete negative requirements from action cues, and skips common waived obligations and discussion questions. It does not infer every intention or handle every complex negation.\n\nA worker keeps the interface responsive. Cancel and timeout terminate that worker instead of leaving a request running in the background. That also prevents a late completion from overwriting a later request.\n\nAn open embedding model makes this a tool a person can run without signing up for a hosted inference service. Notes are not sent to an inference server, and the app does not save their contents.\n\nThe model and runtime are still network downloads on first use; their hosts receive ordinary asset requests. Browser caching can help repeat visits, but the app does not promise offline startup.\n\nThe model can be replaced with a compatible embedding model. The scoring code is visible and adjustable. Neither requires permission from an API vendor or a per-request budget.\n\nKeeping this extractive also makes the output easier to inspect: it selects text that exists in the notes rather than generating new facts. That does not guarantee a complete summary, so the original sentences remain one click away.\n\nThe first-run download deserves a visible status message. A model worker needs a real cancellation path. A tiny local tool also benefits from a narrow job: selecting source-linked sentences has a smaller failure surface than asking a small model to emit a perfect structured plan.\n\nThe app accepts up to 50,000 characters and 400 sentences, rejects oversized input without silently cutting it, and exports a Markdown digest. It is English-oriented, and the keyword cue list can miss implied tasks. Transcript chatter and speaker labels are filtered for ranking, while source quotations remain intact. Short notes return fewer highlights instead of simply copying every sentence.\n\nTen regression tests pass. Browser checks covered short notes, repeated speaker turns, negative instructions, literal HTML-like input, blank and oversized input, cancellation and retry, source navigation, and Markdown export. Dense transcripts still yield rough extractive highlights; the tool does not rewrite disfluent speech or guarantee complete rule coverage.\n\nTwo DEV accounts informed the implementation choices:\n\nTheir performance figures describe their projects, not Sloth Notes. No application code was copied from either post.", "url": "https://wpnews.pro/news/sloth-notes-a-local-ai-digest-for-the-notes-you-don-t-want-to-reread", "canonical_source": "https://dev.to/epiccoder/sloth-notes-a-local-ai-digest-for-the-notes-you-dont-want-to-reread-1ef5", "published_at": "2026-10-23 19:52:36+00:00", "updated_at": "2026-10-23 20:10:03.990463+00:00", "lang": "en", "topics": ["artificial-intelligence", "ai-tools", "natural-language-processing", "machine-learning"], "entities": ["Sloth Notes", "Xenova/all-MiniLM-L6-v2", "Transformers.js", "ONNX Runtime Web", "Hacktoberfest", "Codex"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/sloth-notes-a-local-ai-digest-for-the-notes-you-don-t-want-to-reread", "markdown": "https://wpnews.pro/news/sloth-notes-a-local-ai-digest-for-the-notes-you-don-t-want-to-reread.md", "text": "https://wpnews.pro/news/sloth-notes-a-local-ai-digest-for-the-notes-you-don-t-want-to-reread.txt", "jsonld": "https://wpnews.pro/news/sloth-notes-a-local-ai-digest-for-the-notes-you-don-t-want-to-reread.jsonld"}}