{"id":28158155,"url":"https://github.com/embium/notebit","last_synced_at":"2025-10-26T19:02:36.976Z","repository":{"id":291871125,"uuid":"979059077","full_name":"embium/notebit","owner":"embium","description":"NoteBit is a cross-platform desktop note-taking application built with Electron, React, and TypeScript. It offers powerful note organization, AI-assisted chat features, and offline-first functionality using local PouchDB storage.","archived":false,"fork":false,"pushed_at":"2025-05-07T00:17:28.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-07T00:33:47.565Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/embium.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-05-06T23:55:03.000Z","updated_at":"2025-05-07T00:17:31.000Z","dependencies_parsed_at":"2025-05-07T00:34:24.859Z","dependency_job_id":"77c57c08-5a9d-42ae-9182-ca14b28ff77e","html_url":"https://github.com/embium/notebit","commit_stats":null,"previous_names":["embium/notebit"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embium%2Fnotebit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embium%2Fnotebit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embium%2Fnotebit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embium%2Fnotebit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/embium","download_url":"https://codeload.github.com/embium/notebit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254310471,"owners_count":22049470,"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":[],"created_at":"2025-05-15T09:16:21.042Z","updated_at":"2025-10-26T19:02:36.968Z","avatar_url":"https://github.com/embium.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"src/assets/images/logo.png\" alt=\"Notebit Logo\" width=\"200\"/\u003e\n  \u003ch1\u003eNotebit\u003c/h1\u003e\n  \u003ch3\u003eYour Intelligent Note-Taking \u0026 AI-Powered Knowledge Companion\u003c/h3\u003e\n  \u003cp\u003e\n    Cross-platform desktop application (Windows, macOS, Linux) designed to seamlessly integrate powerful AI chat\n    with your personal notes and knowledge bases. Built with Electron, React, TypeScript, and an offline-first architecture.\n  \u003c/p\u003e\n  \u003cp\u003e\n    \u003cimg alt=\"GitHub release (latest by date)\" src=\"https://img.shields.io/github/v/release/embium/Notebit\"\u003e\n    \u003cimg alt=\"GitHub License\" src=\"https://img.shields.io/github/license/embium/Notebit\"\u003e\n    \u003cimg alt=\"GitHub last commit\" src=\"https://img.shields.io/github/last-commit/embium/Notebit\"\u003e\n    \u003c!-- Add more badges as appropriate: build status, downloads, etc. --\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n## Overview\n\nNotebit redefines the note-taking experience by placing AI at its core. It's not just about storing notes; it's about actively engaging with your knowledge through intelligent chat, powerful organization tools, and personalized AI assistance. Whether you're researching complex topics, drafting content, or simply organizing your thoughts, Notebit provides a smart, secure, and always-accessible environment. With its offline-first architecture powered by local PouchDB storage, your data remains private and available anytime, anywhere.\n\n## ✨ Core Features\n\nNotebit is packed with features designed to enhance your productivity and unlock new ways of interacting with your information:\n\n#### 🧠 **Intelligent AI Chat \u0026 Assistance**\n\n- **Omnipresent AI Chat:** Engage in dynamic conversations with AI directly within a dedicated chat interface or through contextually aware assistance across the app.\n- **Flexible AI Model Support:** Connect to a vast array of AI providers:\n  - Local LLMs via **Ollama** (e.g., Llama3, Mistral, Gemma).\n  - Cloud-based services: **OpenAI (GPT models), Google (Gemini), Anthropic (Claude), Groq, Perplexity, LMStudio, xAI**, and more.\n- **Customizable Model Parameters:** Fine-tune AI behavior (temperature, max tokens, context limit, Top P) and save custom model configurations.\n- **Dynamic Model Switching:** Easily switch between AI models and providers on-the-fly within any chat.\n- **In-Chat Document Analysis:** Upload documents (PDF, TXT, etc.) directly into chats for immediate AI summarization, Q\u0026A, or analysis.\n\n#### 📝 **Advanced Note-Taking \u0026 Organization**\n\n- **Rich Text Editor:** Craft beautiful and detailed notes with a powerful [Tiptap](https://tiptap.dev/)-based editor, supporting:\n  - Headings, bold, italics, strikethrough, highlights.\n  - Bulleted \u0026 numbered lists, blockquotes, code blocks (with syntax highlighting).\n  - Link embedding.\n  - Markdown.\n  - \u0026 LaTeX.\n- **Hierarchical Folder System:** Intuitively organize your notes with a nested folder structure for granular classification.\n\n#### 📚 **Smart Hubs: Your Personalized Knowledge Bases**\n\n- **Centralized Content Aggregation:** Create \"Smart Hubs\" to group related documents from various local sources.\n- **Multi-Format Support:** Add individual files (`.pdf`, `.md`, `.csv`, `.txt`, `.docx`, `.epub`, `.json`, `.jsonl`, `.rtf`) or link entire folders.\n- **Contextual AI Chat:** Select Smart Hubs to provide deep, relevant context to your AI conversations. Control retrieval parameters like similarity and chunk count.\n- **Content Processing \u0026 Indexing:** Notebit processes and indexes content within Smart Hubs, enabling semantic search and AI understanding.\n\n#### 🚀 **Prompt Engineering \u0026 Management**\n\n- **Prompt Library:** Build, manage, and tag a personal library of reusable system and user prompts.\n- **In-Chat Prompt Injection:** Seamlessly apply prompts from your library within ongoing chats to guide AI responses.\n- **Default Prompts Configuration:** Define default system prompts for new chats, title generation, and other AI interactions.\n\n#### 🔍 **AI Memory \u0026 Semantic Search**\n\n- **Configurable Embedding Models:** Choose from various embedding models (e.g., `nomic-embed-text`, Ollama-served models) to power semantic understanding.\n- **Deep Search:** Find information based on meaning and context, not just keywords, across your notes and Smart Hubs.\n\n#### 🎨 **Comprehensive Customization \u0026 Settings**\n\n- **Appearance:** Light, Dark, \u0026 System themes; customizable accent colors, font styles, and font sizes.\n- **AI Model Management:** Enable/disable providers, configure connection settings (e.g., Ollama API host), refresh model lists, and add custom models.\n- **Data Management:** Define notes storage location and manage AI Memory (embedding model) settings.\n- **General Settings:** Control link behavior, automatic chat title generation, and more.\n\n#### 🌐 **Cross-Platform \u0026 Offline-First**\n\n- **Works Everywhere:** Use Notebit consistently on Windows, macOS, and Linux.\n- **Always Accessible:** Full offline functionality for notes and core features, thanks to local PouchDB storage. Your data is yours.\n\n## 📸 Screenshots\n\n\u003cdetails\u003e\n\u003csummary\u003eClick to expand screenshots\u003c/summary\u003e\n\n|                Chat Interface                 |          Notes \u0026 Rich Text Editor           |\n| :-------------------------------------------: | :-----------------------------------------: |\n| ![Chat Interface](screenshots/chats_main.png) | ![Notes Editor](screenshots/notes_main.png) |\n\n|        Smart Hubs / Knowledge Base        |                  Prompt Library                   |\n| :---------------------------------------: | :-----------------------------------------------: |\n| ![Smart Hubs](screenshots/smart_hubs.png) | ![Prompt Library](screenshots/prompt_library.png) |\n\n|                  Settings: General \u0026 Appearance                  |             Settings: AI Model Configuration              |\n| :--------------------------------------------------------------: | :-------------------------------------------------------: |\n| ![Settings General](screenshots/settings_general_appearance.png) | ![Settings AI Models](screenshots/settings_ai_models.png) |\n\n|                    Settings: AI Memory                    |                In-Chat Features (Prompts, Hubs, Docs)                |\n| :-------------------------------------------------------: | :------------------------------------------------------------------: |\n| ![Settings AI Memory](screenshots/settings_ai_memory.png) | ![In-Chat Smart Hub Context](screenshots/chat_smart_hub_context.png) |\n\n\u003c/details\u003e\n\n## 🛠️ Tech Stack\n\n### Core\n\n- **Electron**: Cross-platform desktop application framework\n- **React**: UI library for building the interface\n- **TypeScript**: Type-safe JavaScript\n- **Vite (via `electron-vite`)**: Fast build tooling and development server\n\n### Data Management \u0026 State\n\n- **PouchDB**: Offline-first local database for notes and application data\n- **Legend State**: Performant state management library\n- **TanStack React Router**: Type-safe routing for the web/renderer process\n- **tRPC**: End-to-end typesafe APIs for communication between main and renderer processes\n\n### User Interface\n\n- **Tailwind CSS**: Utility-first CSS framework for rapid UI development\n- **shadcn/ui**: Re-usable and accessible UI components\n\n### Artificial Intelligence\n\n- **Vercel AI SDK**: Core SDK for interacting with various AI language models and providers\n- Extensive support for multiple LLM providers and local models via Ollama.\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- Node.js (v18+ recommended)\n- npm or yarn\n\n### Installation\n\n1.  Clone the repository:\n    ```bash\n    git clone https://github.com/embium/notebit.git\n    ```\n2.  Navigate to the project directory:\n    ```bash\n    cd Notebit\n    ```\n3.  Install dependencies:\n    ```bash\n    npm install\n    # or\n    # yarn install\n    ```\n\n### Development\n\nTo start the application in development mode with hot-reloading:\n\n```bash\nnpm run dev\n```\n\n### Building for Production\n\nTo build the application for packaging:\n\n```bash\nnpm run build\n```\n\nThis will compile the TypeScript code and prepare assets.\n\n### Packaging for Distribution\n\nTo package the application for your current platform or specific platforms:\n\n```bash\nnpm run package          # Package for current platform\nnpm run package:win    # Package for Windows\nnpm run package:mac    # Package for macOS\nnpm run package:linux  # Package for Linux\n```\n\nPackaged applications will be found in the `release/${version}` directory.\n\n## 🏗️ Project Structure\n\nA brief overview of the main directories:\n\n- `src/main`: Electron main process code (Node.js environment). Handles window management, system interactions, and tRPC backend.\n- `src/preload.ts`: Secure bridge script between the main and renderer processes, exposing necessary APIs via `contextBridge`.\n- `src/shared`: Code, types, and utilities shared between the main and renderer processes (e.g., tRPC router definitions).\n- `src/web`: Renderer process code (React application running in the browser-like environment).\n  - `app/`: Core application setup, providers, global state.\n  - `components/`: Reusable UI components (often built with shadcn/ui and Tailwind CSS).\n  - `features/`: Self-contained modules for major application features (e.g., Notes, Chats, Settings, SmartHubs).\n  - `routes/`: Routing configuration using TanStack React Router.\n  - `shared/`: Web-specific shared utilities, hooks, and contexts.\n- `src/assets/`: Static assets like icons and images.\n\n## 🤝 Contributing\n\n_(Optional: Add contribution guidelines if you plan to accept them)_\nContributions are welcome! Please feel free to submit a pull request or open an issue.\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## 📜 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## ✍️ Author\n\nMichael Mooney - [GitHub](https://github.com/embium)\n\n---\n\n## Share your passion: If you find Notebit useful, consider starring the repository! ⭐\n\n\u003ca href=\"https://buy.stripe.com/4gMbJ1gvXf81gB24DYaVa01\"\u003e\u003cimg src=\"donation.png\" alt=\"Donation button\" width=\"20%\" height=\"20%\"\u003e\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fembium%2Fnotebit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fembium%2Fnotebit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fembium%2Fnotebit/lists"}