{"full_name":"lfnovo/open-notebook","owner":"lfnovo","name":"open-notebook","url":"https://github.com/lfnovo/open-notebook","description":"An Open Source implementation of Notebook LM with more flexibility and features","homepage":"https://www.open-notebook.ai","topics":[],"language":"TypeScript","license":"MIT","avatar":"https://avatars.githubusercontent.com/u/579178?u=6c2949fe733f6e3ac1b436861a07555d031b866a&v=4","created_at":"2024-10-21T17:58:46Z","pushed_at":"2026-11-08T21:47:02Z","metrics":{"stars":41812,"forks":4806,"watchers":179,"issues":656,"prs":797,"releases":44,"issues_open":null,"issues_closed":null,"prs_open":null,"prs_closed":null,"prs_merged":null,"discussions":107},"growth":{"day":{"stars":26,"forks":4,"base_day":"2026-11-09"},"week":{"stars":441,"forks":44,"base_day":"2026-11-03"}},"history":{"dates":["2026-10-28","2026-10-29","2026-10-30","2026-10-31","2026-11-01","2026-11-02","2026-11-03","2026-11-04","2026-11-09","2026-11-10"],"stars":[40581,40602,40637,40674,40905,40994,41371,41496,41786,41812],"forks":[4663,4668,4673,4675,4700,4710,4762,4770,4802,4806],"watchers":[174,174,174,175,175,176,178,177,179,179],"issues_open":[null,null,null,null,null,null,null,null,null,null],"prs_open":[null,null,null,null,null,null,null,null,null,null]},"boards":{},"same_owner":[],"issues":[{"number":257,"title":"[Feature]: Implement duplicate source detection and warning system","comments":14,"created_at":"2025-11-09T18:00:22Z"},{"number":712,"title":"[Umbrella] Multi-user System Support","comments":11,"created_at":"2026-04-01T13:23:12Z"},{"number":203,"title":"[Vision] Content Modes & Artifacts (study & visual outputs)","comments":10,"created_at":"2025-10-22T19:21:02Z"},{"number":480,"title":"[Feature]: Help with Reddit Posts","comments":8,"created_at":"2026-01-27T08:22:01Z"},{"number":473,"title":"[Feature]: Implement actual RAG capability in the Notebook chat","comments":7,"created_at":"2026-01-25T17:51:50Z"},{"number":381,"title":"[Design] Worker & retry architecture rework (Celery / queue migration)","comments":7,"created_at":"2026-01-05T14:43:21Z"},{"number":559,"title":"[Feature]: add Google oauth provider connection","comments":6,"created_at":"2026-02-10T17:52:37Z"},{"number":1469,"title":"No way to save an insight as a note in the UI","comments":5,"created_at":"2026-10-05T10:13:21Z"}],"discussions":[{"number":1550,"title":"Translated READMEs (starting with Turkish)?","comments":1,"category":"Ideas","created_at":"2026-11-07T12:10:00Z"},{"number":1548,"title":"[Idea]: Multiples user / accounts support","comments":0,"category":"Ideas","created_at":"2026-11-06T00:25:39Z"},{"number":1536,"title":"Proposal: add Runcrate as an AI provider","comments":0,"category":"Ideas","created_at":"2026-10-31T17:52:05Z"},{"number":1535,"title":"[Idea]: Has anyone tried with Embedding Gemma 2?","comments":0,"category":"Ideas","created_at":"2026-10-31T13:20:00Z"},{"number":1497,"title":"Ask should be able to use an external MCP connector","comments":1,"category":"Ideas","created_at":"2026-10-12T17:50:42Z"},{"number":1493,"title":"Contribution proposal: optional API Route configuration or provider integration","comments":0,"category":"Ideas","created_at":"2026-10-11T12:01:45Z"},{"number":1485,"title":"[Contribution proposal]: Source-grounded interactive self-checks and visual chat responses","comments":0,"category":"Ideas","created_at":"2026-10-07T22:39:16Z"},{"number":1380,"title":"Add pdf-inspector as a pre-OCR classification step in the PDF ingestion pipeline","comments":1,"category":"Ideas","created_at":"2026-09-27T07:54:00Z"}],"latest_release":{"name":"v1.15.1 — security release","tag":"v1.15.1","published_at":"2026-11-04T14:19:57Z","body":"**Security release — we recommend all users upgrade.** v1.15.1 closes gaps in how sources are processed and requires content-core 2.2.1, which hardens URL fetching. It also ships the documentation rewrite and a handful of small fixes. Validated with the backend and frontend suites and a hands-on pass over the published 1.15.1 image.\n\n## 🔒 Security\n\n- Source processing now enforces the uploads-directory and URL checks in the background worker itself, so they apply on every path that processes a source, not only when a source is created.\n- Requires `content-core` 2.2.1 or later, which refuses link-local and cloud-metadata addresses on every redirect hop when fetching URLs.\n- `POST /api/commands/jobs`, the generic \"submit any background command\" endpoint, is removed. Nothing in Open Notebook used it; every operation has its own endpoint. Job status (`GET /api/commands/jobs/{job_id}`) is unchanged.\n\nSecurity advisories with the details will be published on this repository.\n\n## 📚 Documentation\n\nEvery page under `docs/` was checked against v1.15.0 and rewritten where it described an older or imagined product (#1458, #1459, #1460, #1461): one canonical install path built on the shipped `docker-compose.yml`, a first-run flow that ends in a working chat, a complete environment-variable reference, troubleshooting keyed on the exact error messages the app shows, and development docs rewritten from the code.\n\n## 🐛 Notable fixes\n\n- Timeouts no longer read as connection failures: a model that doesn't answer within `ESPERANTO_LLM_TIMEOUT` now says the provider took too long and how to raise the limit\n- Error hints point to screens that exist (Manage → Models, Podcasts → Profiles) (#1457)\n- Italian is selectable in the language menu, with dates formatted in Italian (#1457)\n- `make start-all` starts SurrealDB again; the legacy `SURREAL_ADDRESS` / `SURREAL_PORT` fallback builds a valid database URL (#1457)\n- Docs no longer recommend settings that do nothing (`API_CLIENT_TIMEOUT`, editing `.env` plus `docker compose restart`) (#1456)\n\n## ⚠️ Behavior changes for self-hosters\n\n- Anything that called `POST /api/commands/jobs` directly will now get `405 Method Not Allowed`. Use the specific endpoints (for example `POST /api/sources`) instead.\n- A source whose file is outside the uploads directory, or whose URL targets a link-local or cloud-metadata address, now fails with a permanent error instead of being processed. Private and loopback addresses (Ollama, LM Studio, other local services) are still allowed.\n\n**Full changelog:** https://github.com/lfnovo/open-notebook/compare/v1.15.0...v1.15.1\n"},"readme":true,"readme_zh":false,"news":[{"title":"Show HN: KnowNote-A local desktop workspace for questioning your own sources","url":"https://knownote.pages.dev/","hn":"https://news.ycombinator.com/item?id=49880045","source":"Hacker News","lang":"en","date":"2026-09-28","points":4,"comments":0},{"title":"Show HN: Notebooker.ai – NotebookLM alternative, your own models, keys, storage","url":"https://notebooker.ai/","hn":"https://news.ycombinator.com/item?id=49026511","source":"Hacker News","lang":"en","date":"2026-07-23","points":3,"comments":0},{"title":"Open Notebook: open-source Notebook LM with more flexibility and features","url":"https://github.com/lfnovo/open-notebook","hn":"https://news.ycombinator.com/item?id=46186621","source":"Hacker News","lang":"en","date":"2025-12-07","points":3,"comments":0},{"title":"An Open Source Implementation of Notebook LM","url":"https://github.com/lfnovo/open-notebook","hn":"https://news.ycombinator.com/item?id=48581592","source":"Hacker News","lang":"en","date":"2026-06-18","points":1,"comments":0},{"title":"Open Notebook Windows 原生部署指南：无 Docker/WSL 环境下四服务架构、关键修复与运维实践","url":"https://blog.csdn.net/gitblog_00419/article/details/153911636","source":"blog.csdn","lang":"zh","date":"2026-09-05"},{"title":"Open Notebook：開源 Notebook LM 讓你自建靈活 AI 筆記工具","url":"https://www.techritual.com/2026/09/05/529437/","source":"techritual","lang":"zh","date":"2026-09-04"},{"title":"【週刊】NotebookLM の OSS 代替 open","url":"https://note.com/cc_works_cl/n/nf3743fb5eed3","source":"note","lang":"zh","date":"2026-06-24"},{"title":"NotebookLMの限界を突破する代替ツール「Open Notebook」が自由すぎた","url":"https://www.lifehacker.jp/article/2606-notebooklm-finally-has-an-open-source-rival-and-im-hooked/","source":"lifehacker","lang":"zh","date":"2026-06-23"},{"title":"I switched from NotebookLM to this open-source tool, and it does what Google won't","url":"https://www.xda-developers.com/switched-from-notebooklm-to-open-source-tool-open-notebook/","source":"XDA Developers","lang":"en","date":"2026-06-01"},{"title":"Open Notebook을 로컬 환경에 설치해 보기","url":"https://note.com/aioli/n/ncca4f70889fe?hl=ko","source":"note","lang":"en","date":"2025-11-18"},{"title":"Open Notebookをローカル環境にいれてみる","url":"https://note.com/aioli/n/ncca4f70889fe","source":"note","lang":"zh","date":"2025-11-18"},{"title":"10分钟上手open-notebook：从安装到创建第一个智能笔记本","url":"https://blog.csdn.net/gitblog_01015/article/details/152204912","source":"blog.csdn","lang":"zh","date":"2025-09-28"},{"title":"Google Colab: How to save notebooks to Github","url":"https://www.androidpolice.com/save-google-colab-notebooks-github/","source":"Android Police","lang":"en","date":"2023-03-13"},{"title":"The Ultimate Guide to Contributing to Open Source Projects","url":"https://news.google.com/rss/articles/CBMijAFBVV95cUxQSXBLQ09ERHpweHBsR0EtWnNVZkd5UWxZRzhKQXE3M0xHY09IZWlNSlhCaVV0Ui1jcDNZRDA0VTRKQ1Bnd3J4bUtzdGRELWxWZjU1QVRXY0R4SEdTNHhJZGlONDVrM3dfUVdHOWFzZ2VxNXR6Zl9Fem95YkhFMDNCemxFWHpxQzFsdWRiZg?oc=5","source":"KDnuggets","lang":"en","date":"2026-08-11"},{"title":"I replaced NotebookLM with a self-hosted alternative for a week, and it's good enough to make me hesitate","url":"https://news.google.com/rss/articles/CBMiekFVX3lxTFBFQVN5RHMtYzdFVzFrQzVkdTFFM3RXb1RaWkF2amNoNnJJYnk2OVhEcWN6WHZ2RTdqdVRsLVdWYmdNdFpFTUdFVDRxOEhVXzQ0Ml91UVZXX3UtVFRNbmpnSnZyQ0RLWW1hbzQ5VURDRmNwdHlGVzhCcmd3?oc=5","source":"XDA","lang":"en","date":"2026-06-27"},{"title":"I switched from NotebookLM to an open-source alternative — the podcasts alone made it worth it","url":"https://news.google.com/rss/articles/CBMijAFBVV95cUxPaEc4SmR4ZTR3OG1Ea0dVOHhHUFc1Qk11cVBKemQwUmdVdGtHcUw2Z05kTjdzZ3RNU0dMQXBiZjFTZkN6OHowaGZLWGdHVWo2QzlBdXZuTUt4NFpxZU9tMjRhVU9ZTTlENmxSdW10MkJoSklreHBxd2RDeUZOa1U2SzQ3enBqTXRfRWxPSg?oc=5","source":"MakeUseOf","lang":"en","date":"2026-06-02"},{"title":"9 Best Open-Source Apps from GitHub You Can Actually Use Every Day","url":"https://news.google.com/rss/articles/CBMickFVX3lxTE9LRmZ1MGIxOXlsZmRWbE50a2RSUUV0S0xVVXBGb1JQalJSUDlTakZDSnJldVhwLTl2NGNmUHk2V3BhZjJWU3hHYS15dF81SG8tQzVjbEF3bDhZZzB2elNUcGpqbHVNeGdXaGtkeGxvWmtIUQ?oc=5","source":"TechPP","lang":"en","date":"2025-12-10"}],"stale":false,"snapshot_at":"2026-11-10T09:35:25Z","history_start":"2026-09-06"}