
Cross-platform desktop application (Windows, macOS, Linux) designed to seamlessly integrate powerful AI chat with your personal notes and knowledge bases. Built with Electron, React, TypeScript, and an offline-first architecture.
Notebit 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.
Notebit is packed with features designed to enhance your productivity and unlock new ways of interacting with your information:
- Omnipresent AI Chat: Engage in dynamic conversations with AI directly within a dedicated chat interface or through contextually aware assistance across the app.
- Flexible AI Model Support: Connect to a vast array of AI providers:
- Local LLMs via Ollama (e.g., Llama3, Mistral, Gemma).
- Cloud-based services: OpenAI (GPT models), Google (Gemini), Anthropic (Claude), Groq, Perplexity, LMStudio, xAI, and more.
- Customizable Model Parameters: Fine-tune AI behavior (temperature, max tokens, context limit, Top P) and save custom model configurations.
- Dynamic Model Switching: Easily switch between AI models and providers on-the-fly within any chat.
- In-Chat Document Analysis: Upload documents (PDF, TXT, etc.) directly into chats for immediate AI summarization, Q&A, or analysis.
- Rich Text Editor: Craft beautiful and detailed notes with a powerful Tiptap-based editor, supporting:
- Headings, bold, italics, strikethrough, highlights.
- Bulleted & numbered lists, blockquotes, code blocks (with syntax highlighting).
- Link embedding.
- Markdown.
- & LaTeX.
- Hierarchical Folder System: Intuitively organize your notes with a nested folder structure for granular classification.
- Centralized Content Aggregation: Create "Smart Hubs" to group related documents from various local sources.
- Multi-Format Support: Add individual files (
.pdf
,.md
,.csv
,.txt
,.docx
,.epub
,.json
,.jsonl
,.rtf
) or link entire folders. - Contextual AI Chat: Select Smart Hubs to provide deep, relevant context to your AI conversations. Control retrieval parameters like similarity and chunk count.
- Content Processing & Indexing: Notebit processes and indexes content within Smart Hubs, enabling semantic search and AI understanding.
- Prompt Library: Build, manage, and tag a personal library of reusable system and user prompts.
- In-Chat Prompt Injection: Seamlessly apply prompts from your library within ongoing chats to guide AI responses.
- Default Prompts Configuration: Define default system prompts for new chats, title generation, and other AI interactions.
- Configurable Embedding Models: Choose from various embedding models (e.g.,
nomic-embed-text
, Ollama-served models) to power semantic understanding. - Deep Search: Find information based on meaning and context, not just keywords, across your notes and Smart Hubs.
- Appearance: Light, Dark, & System themes; customizable accent colors, font styles, and font sizes.
- AI Model Management: Enable/disable providers, configure connection settings (e.g., Ollama API host), refresh model lists, and add custom models.
- Data Management: Define notes storage location and manage AI Memory (embedding model) settings.
- General Settings: Control link behavior, automatic chat title generation, and more.
- Works Everywhere: Use Notebit consistently on Windows, macOS, and Linux.
- Always Accessible: Full offline functionality for notes and core features, thanks to local PouchDB storage. Your data is yours.
Click to expand screenshots
Chat Interface | Notes & Rich Text Editor |
---|---|
![]() |
![]() |
Smart Hubs / Knowledge Base | Prompt Library |
---|---|
![]() |
![]() |
Settings: General & Appearance | Settings: AI Model Configuration |
---|---|
![]() |
![]() |
Settings: AI Memory | In-Chat Features (Prompts, Hubs, Docs) |
---|---|
![]() |
![]() |
- Electron: Cross-platform desktop application framework
- React: UI library for building the interface
- TypeScript: Type-safe JavaScript
- Vite (via
electron-vite
): Fast build tooling and development server
- PouchDB: Offline-first local database for notes and application data
- Legend State: Performant state management library
- TanStack React Router: Type-safe routing for the web/renderer process
- tRPC: End-to-end typesafe APIs for communication between main and renderer processes
- Tailwind CSS: Utility-first CSS framework for rapid UI development
- shadcn/ui: Re-usable and accessible UI components
- Vercel AI SDK: Core SDK for interacting with various AI language models and providers
- Extensive support for multiple LLM providers and local models via Ollama.
- Node.js (v18+ recommended)
- npm or yarn
- Clone the repository:
git clone https://github.com/embium/notebit.git
- Navigate to the project directory:
cd Notebit
- Install dependencies:
npm install # or # yarn install
To start the application in development mode with hot-reloading:
npm run dev
To build the application for packaging:
npm run build
This will compile the TypeScript code and prepare assets.
To package the application for your current platform or specific platforms:
npm run package # Package for current platform
npm run package:win # Package for Windows
npm run package:mac # Package for macOS
npm run package:linux # Package for Linux
Packaged applications will be found in the release/${version}
directory.
A brief overview of the main directories:
src/main
: Electron main process code (Node.js environment). Handles window management, system interactions, and tRPC backend.src/preload.ts
: Secure bridge script between the main and renderer processes, exposing necessary APIs viacontextBridge
.src/shared
: Code, types, and utilities shared between the main and renderer processes (e.g., tRPC router definitions).src/web
: Renderer process code (React application running in the browser-like environment).app/
: Core application setup, providers, global state.components/
: Reusable UI components (often built with shadcn/ui and Tailwind CSS).features/
: Self-contained modules for major application features (e.g., Notes, Chats, Settings, SmartHubs).routes/
: Routing configuration using TanStack React Router.shared/
: Web-specific shared utilities, hooks, and contexts.
src/assets/
: Static assets like icons and images.
(Optional: Add contribution guidelines if you plan to accept them) Contributions are welcome! Please feel free to submit a pull request or open an issue.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Michael Mooney - GitHub