Skip to content
/ notebit Public

Notebit is a desktop application for Windows, macOS, and Linux that seamlessly blends AI chat with your personal knowledge base.

Notifications You must be signed in to change notification settings

embium/notebit

Repository files navigation

Notebit Logo

Notebit

Your Intelligent Note-Taking & AI-Powered Knowledge Companion

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.

GitHub release (latest by date) GitHub License GitHub last commit

Overview

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.

✨ Core Features

Notebit is packed with features designed to enhance your productivity and unlock new ways of interacting with your information:

🧠 Intelligent AI Chat & Assistance

  • 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.

πŸ“ Advanced Note-Taking & Organization

  • 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.

πŸ“š Smart Hubs: Your Personalized Knowledge Bases

  • 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 Engineering & Management

  • 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.

πŸ” AI Memory & Semantic Search

  • 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.

🎨 Comprehensive Customization & Settings

  • 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.

🌐 Cross-Platform & Offline-First

  • 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.

πŸ“Έ Screenshots

Click to expand screenshots
Chat Interface Notes & Rich Text Editor
Chat Interface Notes Editor
Smart Hubs / Knowledge Base Prompt Library
Smart Hubs Prompt Library
Settings: General & Appearance Settings: AI Model Configuration
Settings General Settings AI Models
Settings: AI Memory In-Chat Features (Prompts, Hubs, Docs)
Settings AI Memory In-Chat Smart Hub Context

πŸ› οΈ Tech Stack

Core

  • 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

Data Management & State

  • 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

User Interface

  • Tailwind CSS: Utility-first CSS framework for rapid UI development
  • shadcn/ui: Re-usable and accessible UI components

Artificial Intelligence

  • 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.

πŸš€ Getting Started

Prerequisites

  • Node.js (v18+ recommended)
  • npm or yarn

Installation

  1. Clone the repository:
    git clone https://github.com/embium/notebit.git
  2. Navigate to the project directory:
    cd Notebit
  3. Install dependencies:
    npm install
    # or
    # yarn install

Development

To start the application in development mode with hot-reloading:

npm run dev

Building for Production

To build the application for packaging:

npm run build

This will compile the TypeScript code and prepare assets.

Packaging for Distribution

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.

πŸ—οΈ Project Structure

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 via contextBridge.
  • 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.

🀝 Contributing

(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.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

✍️ Author

Michael Mooney - GitHub


Share your passion: If you find Notebit useful, consider starring the repository! ⭐


About

Notebit is a desktop application for Windows, macOS, and Linux that seamlessly blends AI chat with your personal knowledge base.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages