{"id":22787633,"url":"https://github.com/lfnovo/open-notebook","last_synced_at":"2026-02-18T02:10:04.539Z","repository":{"id":259122671,"uuid":"876286167","full_name":"lfnovo/open-notebook","owner":"lfnovo","description":"An Open Source implementation of Notebook LM with more flexibility and features","archived":false,"fork":false,"pushed_at":"2025-04-24T13:15:09.000Z","size":4766,"stargazers_count":1395,"open_issues_count":11,"forks_count":116,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-04-24T13:42:00.160Z","etag":null,"topics":["assistant","learning","note-taking","notebook","notes-app","self-learning"],"latest_commit_sha":null,"homepage":"https://www.open-notebook.ai","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lfnovo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-10-21T17:58:46.000Z","updated_at":"2025-04-24T13:15:13.000Z","dependencies_parsed_at":"2025-02-27T12:21:57.677Z","dependency_job_id":"af4752f4-5777-45c8-a57b-0649092e919e","html_url":"https://github.com/lfnovo/open-notebook","commit_stats":null,"previous_names":["lfnovo/open_notebook","lfnovo/open-notebook"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lfnovo%2Fopen-notebook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lfnovo%2Fopen-notebook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lfnovo%2Fopen-notebook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lfnovo%2Fopen-notebook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lfnovo","download_url":"https://codeload.github.com/lfnovo/open-notebook/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254235696,"owners_count":22036963,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["assistant","learning","note-taking","notebook","notes-app","self-learning"],"created_at":"2024-12-12T00:59:39.253Z","updated_at":"2026-02-18T02:10:04.476Z","avatar_url":"https://github.com/lfnovo.png","language":"Python","funding_links":[],"categories":["Projects","TypeScript","置顶","A01_文本生成_文本对话","\u003cimg src=\"./assets/satellite.svg\" width=\"16\" height=\"16\" style=\"vertical-align: middle;\"\u003e Satellites","Repos","learning","🧠 AI \u0026 LLM","📚 Learning \u0026 Resources","1. Local Agents","Tools","学习资源","13. Developer Tools \u0026 Integrations"],"sub_categories":["1、AI应用生态","大语言对话模型及数据","Research \u0026 Knowledge Agents","Research","学习项目"],"readme":"\u003ca id=\"readme-top\"\u003e\u003c/a\u003e\n\n\u003c!-- [![Contributors][contributors-shield]][contributors-url] --\u003e\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![MIT License][license-shield]][license-url]\n\u003c!-- [![LinkedIn][linkedin-shield]][linkedin-url] --\u003e\n\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/lfnovo/open-notebook\"\u003e\n    \u003cimg src=\"docs/assets/hero.svg\" alt=\"Logo\"\u003e\n  \u003c/a\u003e\n\n  \u003ch3 align=\"center\"\u003eOpen Notebook\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    An open source, privacy-focused alternative to Google's Notebook LM!\n    \u003cbr /\u003e\n    \u003ca href=\"https://www.open-notebook.ai\"\u003e\u003cstrong\u003eCheckout our website »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://www.open-notebook.ai/get-started.html\"\u003eGet Started (Setup)\u003c/a\u003e\n    ·\n    \u003ca href=\"https://www.open-notebook.ai/features.html\"\u003eFeatures\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\n## 📢 Open Notebook is under very active development\n\n\u003e Open Notebook is under active development! We're moving fast and making improvements every week. Your feedback is incredibly valuable to me during this exciting phase and it gives me motivation to keep improving and building this amazing tool. Please feel free to star the project if you find it useful, and don't hesitate to reach out with any questions or suggestions. I'm excited to see how you'll use it and what ideas you'll bring to the project! Let's build something amazing together! 🚀\n\u003e\n\u003e ⚠️ **API Changes**: As we optimize and enhance the project, some APIs and interfaces might change. We'll do our best to document these changes and minimize disruption.\n\u003e\n\u003e 🙏 **We Need Your Feedback**: Please try out Open Notebook and let us know what you think! Submit issues, feature requests, or just share your experience through:\n\u003e - GitHub Issues\n\u003e - Discussions\n\u003e - Pull Requests\n\u003e\n\u003e Together, we can make it even better! \n\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#built-with\"\u003eBuilt With\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#setting-up\"\u003eSetting Up\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#roadmap\"\u003eRoadmap\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#acknowledgments\"\u003eAcknowledgments\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n## About The Project\n\n![New Notebook](docs/assets/asset_list.png)\n\n\nAn open source, privacy-focused alternative to Google's Notebook LM. Why give Google more of our data when we can take control of our own research workflows?\n\nIn a world dominated by Artificial Intelligence, having the ability to think 🧠 and acquire new knowledge 💡, is a skill that should not be a privilege for a few, nor restricted to a single provider.\n\nOpen Notebook empowers you to manage your research, generate AI-assisted notes, and interact with your content—on your terms.\n\nLearn more about our project at [https://www.open-notebook.ai](https://www.open-notebook.ai)\n\n\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n### Built With\n\n[![Python][Python]][Python-url] [![SurrealDB][SurrealDB]][SurrealDB-url] [![LangChain][LangChain]][LangChain-url] [![Streamlit][Streamlit]][Streamlit-url]\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n## ⚙️ Setting Up\n\nGo to the [Setup Guide](docs/SETUP.md) to learn how to set up the tool in details.\n\nYou don't need to clone this repo if you just want to use the app without building from source! \nTake a look at the [Open Notebook Boilerplate](https://github.com/lfnovo/open-notebook-boilerplate) repo with a sample of how to set it up for maximum feature usability. \n\n### Running from source\n\nStart by cloning this repo and cd into it.\n\n```bash\ngit clone https://github.com/lfnovo/open-notebook\ncd open-notebook\n```\n\nRename `.env.example` into `.env` and set up your API keys.\nAlso, repeat the process for `docker.env` if you plan to run this using docker.\n\n```bash\ncp .env.example .env\ncp .env.example docker.env\n```\n\nEdit .env for your API keys.\n\nTo run the source code locally and experiment with the code, you just need to run:\n\n```bash\nuv sync\ndocker compose --profile db_only up\nuv run streamlit run app_home.py\n```\n\nIf you don't want to mess around with the code and just want to run it as a docker image:\n\n```bash\ndocker compose --profile multi up\n```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Usage\n\nGo to the [Usage](docs/USAGE.md) page to learn how to use all features.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Features\n\n- **Multi-Notebook Support**: Organize your research across multiple notebooks effortlessly.\n- **Multi-model support**: Open AI, Anthropic, Gemini, Vertex AI, Open Router, Ollama.\n- **Podcast Generator**: Automatically convert your notes into a podcast format.\n- **Broad Content Integration**: Works with links, PDFs, EPUB, Office, TXT, Markdown files, YouTube videos, Audio files, Video files and pasted text.\n- **AI-Powered Notes**: Write notes yourself or let the AI assist you in generating insights.\n- **Integrated Search Engines**: Built-in full-text and vector search for faster information retrieval.\n- **Fine-Grained Context Management**: Choose exactly what to share with the AI to maintain control.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 🚀 New Features\n\n### v0.1 - Release Candidate\n\n- Better citations and improved search capabilities\n- The \"Ask\" feature is much smarter now and let's you check its thinking\n- Enabled support for X.AI and Groq models\n- Select default transformations to apply to all content\n- Save insights as custom notes\n- Items are added to context by default\n\n### v0.0.10 - Gemini podcast model\n\n- Added the Gemini model for generating much more fluid and engaging podcasts\n\n### v0.0.9 - Ask your Documents and Citations  ❓\n\n- Ask questions about your documents and get answers with citations\n\n### v0.0.7 - Model Management  🗂️\n\n- Manage your AI models and providers in a single interface\n- Define default models for several tasks such as chat, transformation, embedding, etc\n- Enabled support for Embedding models from Gemini, Vertex and Ollama\n\n### v0.0.6 - ePub and Office files support 📄\n\nYou can now process ePub and Office files (Word, Excel, PowerPoint), extracting text and insights from them. Perfect for books, reports, presentations, and more.\n\n### v0.0.5 - Audio and Video support 📽️\n\nYou can now process audio and video files, extracting transcripts and insights from them. Perfect for podcasts, interviews, lectures, and more.\n\n### v0.0.4 - Podcasts  🎙️\n\nYou can now build amazing custom podcasts based on your own data. Customize your speakers, episode structure, cadence, voices, etc. \n\nCheck out a sample using my own voice created on Eleven Labs and a interview format. \n\n[![Check out our podcast sample](https://img.youtube.com/vi/D-760MlGwaI/0.jpg)](https://www.youtube.com/watch?v=D-760MlGwaI)\n\nYou can generate your podcast in dozens of languages.\n\nHead to the [Podcasts](docs/PODCASTS.md) page for more info\n\n### v0.0.3 - Transformations ✨\n\nWe just release a much more powerful way to create more value from your sources.\nTransformations enable you do extract an unlimited amount of insights from your content.\nIt's 100% customizable and you can extend it to your own needs, like Paper Analysis, Article Writing, etc.\n\nHead to the [Transformations](docs/TRANSFORMATIONS.md) page for more info\n\n### v0.0.2 - Several new providers are supported now:\n\n- OpenAI\n- Anthropic\n- Open Router\n- LiteLLM\n- Vertex AI\n- Ollama\n\n### 📝 Notebook Page\n\nThree intuitive columns to streamline your work:\n1. **Sources**: Manage all research materials.\n2. **Notes**: Create or AI-generate notes.\n3. **Chat**: Chat with the AI, leveraging your content.\n\n### ⚙️ Context Configuration\n\nTake control of your data. Decide what gets sent to the AI with three context options:\n- No context\n- Summary only\n- Full content\n\nPlus, you can add your project description to help the AI provide more accurate and helpful responses.\n\n### 🔍 Integrated Search for Your Items\n\nLocate anything across your research with ease using full-text and vector-based search.\n\n### 💬 Powerful open prompts\n\nJinja based prompts that are easy to customize to your own preferences.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- ROADMAP --\u003e\n## Roadmap\n\n- [ ] **Live Front-End Updates**: Real-time UI updates for a smoother experience.\n- [ ] **Async Processing**: Faster UI through asynchronous content processing.\n- [ ] **Cross-Notebook Sources and Notes**: Reuse research notes across projects.\n- [ ] **Bookmark Integration**: Integrate with your favorite bookmarking app.\n- ✅ **Multi-model support**: Open AI, Anthropic, Vertex AI, Open Router, Ollama, etc.\n- ✅ **Insight Generation**: New tools for creating insights - [transformations](docs/TRANSFORMATIONS.md)\n- ✅ **Podcast Generator**: Automatically convert your notes into a podcast format. \n- ✅ **Multiple Chat Sessions**: Juggle different discussions within the same notebook.\n- ✅ **Enhanced Citations**: Improved layout and finer control for citations.\n- ✅ **Better Embeddings \u0026 Summarization**: Smarter ways to distill information.\n\nSee the [open issues](https://github.com/lfnovo/open-notebook/issues) for a full list of proposed features (and known issues).\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- CONTRIBUTING --\u003e\n## Contributing\n\nWe would love your contributions! Specifically, we're looking for help with:\n- **Front-End Development**: Improve the UI/UX by moving beyond Streamlit.\n- **Testing \u0026 Bug Fixes**: Help make Open Notebook more robust.\n- **Feature Development**: Let’s make the coolest note-taking tool together!\n\nSee more at [CONTRIBUTING](CONTRIBUTING.md)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\u003c!-- LICENSE --\u003e\n## License\n\nOpen Notebook is MIT licensed. See the [LICENSE](LICENSE) file for details.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- CONTACT --\u003e\n## Contact\n\nLuis Novo - [@lfnovo](https://twitter.com/lfnovo)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- ACKNOWLEDGMENTS --\u003e\n## Acknowledgments\n\nThis project uses some amazing third-party libraries\n\n* [Podcastfy](https://github.com/souzatharsis/podcastfy) - Licensed under the Apache License 2.0\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n[contributors-shield]: https://img.shields.io/github/contributors/lfnovo/open-notebook.svg?style=for-the-badge\n[contributors-url]: https://github.com/lfnovo/open-notebook/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/lfnovo/open-notebook.svg?style=for-the-badge\n[forks-url]: https://github.com/lfnovo/open-notebook/network/members\n[stars-shield]: https://img.shields.io/github/stars/lfnovo/open-notebook.svg?style=for-the-badge\n[stars-url]: https://github.com/lfnovo/open-notebook/stargazers\n[issues-shield]: https://img.shields.io/github/issues/lfnovo/open-notebook.svg?style=for-the-badge\n[issues-url]: https://github.com/lfnovo/open-notebook/issues\n[license-shield]: https://img.shields.io/github/license/lfnovo/open-notebook.svg?style=for-the-badge\n[license-url]: https://github.com/lfnovo/open-notebook/blob/master/LICENSE.txt\n[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge\u0026logo=linkedin\u0026colorB=555\n[linkedin-url]: https://linkedin.com/in/lfnovo\n[product-screenshot]: images/screenshot.png\n[Streamlit]: https://img.shields.io/badge/Streamlit-FF4B4B?style=for-the-badge\u0026logo=streamlit\u0026logoColor=white\n[Streamlit-url]: https://streamlit.io/\n[Python]: https://img.shields.io/badge/Python-3776AB?style=for-the-badge\u0026logo=python\u0026logoColor=white\n[Python-url]: https://www.python.org/\n[LangChain]: https://img.shields.io/badge/LangChain-3A3A3A?style=for-the-badge\u0026logo=chainlink\u0026logoColor=white\n[LangChain-url]: https://www.langchain.com/\n[SurrealDB]: https://img.shields.io/badge/SurrealDB-FF5E00?style=for-the-badge\u0026logo=databricks\u0026logoColor=white\n[SurrealDB-url]: https://surrealdb.com/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flfnovo%2Fopen-notebook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flfnovo%2Fopen-notebook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flfnovo%2Fopen-notebook/lists"}