OfflineNotebook
A Local, Air-Gapped AI Knowledge Base for macOS
Between managing video scripts, evaluating project tenders, and keeping track of endless technical documentation, I found myself with a massive digital library and a major privacy dilemma. Cloud-based AI tools are fantastic, but handing over gigabytes of personal, professional, and sensitive documents to a third-party server simply isn't an option.
I wanted a second brain that lived strictly on my machine. More importantly, I wanted to build it myself. OfflineNotebook is my first proper, problem-based, actual application development – built from the ground up to solve a real workflow bottleneck. It is designed specifically for people who demand absolute ownership and privacy over their data. No data harvesting, no subscriptions, and zero network calls outside of your own localhost.
The Architecture: Heavy Lifting, Lightweight UI
Under the hood, OfflineNotebook uses a decoupled architecture to keep things snappy. The frontend is a lightweight React/Electron application that communicates seamlessly with a FastAPI Python backend.
Instead of routing your queries to the cloud, the app bundles its own Ollama AI engine and utilizes LanceDB for ultra-fast vector retrieval. Everything communicates across dynamically bound local ports, ensuring it never clashes with other development servers or tools running in the background.
Drag, Drop, and Synthesize
Building a local knowledge base shouldn't require uploading files one by one. OfflineNotebook features recursive folder ingestion. You can drag and drop entire nested directories of PDFs, Word docs, Excel sheets, and even .eml and .msg email files straight into the sidebar. The backend traverses the tree, filters out the junk, and indexes your knowledge instantly.
Once your documents are in, you can chat with them naturally, or use the Studio Synthesis feature. With one click, the local engine independently chews through your active sources to generate comprehensive study guides, chronological timelines, or executive briefing documents.
A Persistent, Adaptive Memory
An AI isn't truly personal unless it remembers how you like to work. I built a dual-memory system that separates short-term chat context from permanent instructions.
By typing /remember Always reply using bullet points or /remember Call me Shafiq, the app writes that rule to a persistent, local JSON file and injects it into every future session. If you ever want to review or change how the app behaves, typing /recall prints out a numbered list of everything it knows about your preferences, and /forget [number] instantly erases it.
Tactile Design Meets Analog Inspiration
Most AI tools look like sterile, glowing terminal windows. As an analog photography enthusiast, I wanted OfflineNotebook to feel tactile and grounded.
The interface is driven by a custom 4-theme system, heavily inspired by the warm, earthy aesthetics of Kodak Portra 400 film. It features a subtle paper texture overlay using a multiply blend mode and high-contrast status colors. It doesn't feel like you are typing into a sterile machine; it feels like you are writing in a premium notebook.
(There is even a hidden developer diagnostic tool baked into the UI – try holding down the final "d" in the "Local Storage & Embeddings" footer for 3 seconds to instantly pop open the rotating log files in Finder).
Get OfflineNotebook
Because this was built as a focused, personal workflow solution rather than a collaborative open-source project, there is no public GitHub repository. However, if you have an Apple Silicon machine and want to leverage AI on your archives while retaining 100% ownership of your data, you can contact me to download the compiled .app bundle directly.
Everything you need—the LLM engine, the model weights, and the backend binaries—is fully packaged inside.