cd /news/ai-tools/show-hn-notebook-ai-local-first-meet… · home › topics › ai-tools › article
[ARTICLE · art-167279] src=github.com ↗ pub= topic=ai-tools verified=true sentiment=↑ positive

Show HN: Notebook AI – local-first meeting notes for Mac

A developer released Notebook AI, an MIT-licensed, local-first AI meeting-notes app for Mac, as a monorepo on GitHub. The app pairs an Electron/React/Vite desktop recorder with a local FastAPI/LangChain sidecar that stores markdown notes on disk and streams summarize, rewrite and extract_action_items transforms to provider APIs such as OpenAI and OpenRouter using locally stored BYOK keys. Notes, transcription and AI work run without an account; only Google Drive mirroring and the web credential vault require sign-in through a separate FastAPI cloud API backed by Supabase.

read4 min views2 publishedNov 10, 2026
Show HN: Notebook AI – local-first meeting notes for Mac
Image: Michielbdejong (auto-discovered)

Desktop-first AI note taker with a local-first Electron UX, a Next.js web app, and FastAPI/LangChain backends.

Licensed under the MIT License. Third-party programs are listed in NOTICE.

You can open the desktop app and keep notes on this machine without an account. Sign in only when you want Google Drive mirror or the web account vault.

Notebook AI is a monorepo:

  • apps/desktop : Electron + React + Vite desktop recorder/editor
  • apps/web : Next.js landing, signup/signin, onboarding, and web settings
  • services/local-sidecar : local FastAPI note/transcript API
  • services/cloud-api : hosted FastAPI auth/provider/settings API
  • packages/contracts : shared TypeScript API contracts
  • packages/theme : shared design tokens (light/dark)
  • packages/ui : shared React primitives
flowchart TB
  subgraph machine["Your machine"]
    Desktop["Desktop app<br/>Electron · React · Vite"]
    Web["Web app<br/>Next.js"]
    Sidecar["Local sidecar<br/>FastAPI · LangChain"]
    Notes[("Markdown notes<br/>on disk")]
    Desktop -->|"localhost"| Sidecar
    Sidecar --> Notes
    Desktop -->|"open sign-in in browser"| Web
  end
  subgraph network["Network"]
    Cloud["Cloud API<br/>FastAPI"]
    Supabase["Supabase"]
    Providers["Provider APIs<br/>OpenAI · OpenRouter · …"]
    Cloud --> Supabase
  end
  Web -->|"signin · onboarding · BYOK"| Cloud
  Desktop -->|"desktop auth exchange · Drive OAuth flows"| Cloud
  Sidecar -->|"streamed transform · transcription"| Providers

A sidecar here is a small local HTTP service you run next to the desktop app (not a second cloud). It exists so normal work stays local-first and low-latency:

  • Notes: Create, list, and save markdown through the sidecar so content stays on your filesystem and the UI does not depend on a remote service for every edit.
  • AI and transcription: Streaming transforms and audio round-trips go to the sidecar onlocalhost , which talks to provider APIs using keys from the sidecar.env or keys saved locally by the desktop app on that device.

The cloud API is a separate companion: Supabase auth validation, session refresh/logout, web/mobile provider vault storage, storage preferences, desktop auth handoff, and Drive integration metadata. It does not store your note markdown or sit in the path for debounced note persistence. Desktop notes, local provider keys, transcription, and AI work without signing in. Google Drive mirror and the web vault require an account.

Credential scope is intentionally split:

  • Desktop BYOK is stored locally on the device through services/local-sidecar and is not synced to the account vault.

  • Web and future mobile clients store BYOK only in the cloud API's encrypted account vault.

  • Hosted AI routes can use vault credentials server-side, but raw provider secrets do not go back to browser or mobile clients.

  • Fast local-first note editing with debounced persistence

  • Streaming AI action panel (summarize ,rewrite ,extract_action_items )

  • Unified web + desktop visual system with shared tokens/components

  • Dark and light themes with persisted preference

Follow Getting started to install dependencies, run the desktop app without an account, and optionally start the cloud API.

The public Mac download will live on the domain you attach. Set NEXT_PUBLIC_DESKTOP_DOWNLOAD_URL to that URL when the domain is ready. Until then, Download for Mac opens the GitHub latest release.

Copy the placeholder file and leave secrets empty:

Do not commit .env files. Audio transcoding uses ffmpeg on your PATH when it is installed. Releases do not bundle ffmpeg.

  • VERSION is the repo-wide source of truth.

  • Run npm run version:sync after bumpingVERSION .

  • Generate release notes with npm run release:notes -- --version <x.y.z> .

  • Build the macOS sidecar package with npm run release:sidecar:mac .

  • Build the macOS desktop DMG with npm run release:desktop:mac .

  • See docs/releases/PROCESS.md for branch naming and release cadence.

  • Local sidecar:

    • POST /notes
    • GET /notes
    • PUT /notes/{id}
    • PATCH /notes/{id}/move
    • DELETE /notes/{id}
    • GET /folders
    • POST /folders
    • PATCH /folders/{id}
    • DELETE /folders/{id}
    • GET /storage/local-root
    • PUT /storage/local-root
    • GET /storage/preference
    • PUT /storage/preference
    • GET /sync/status
    • POST /sync/run
    • POST /ai/transform/stream (SSE)
    • GET /providers/status
    • POST /providers/byok
    • GET /providers/models
    • DELETE /providers/{provider}
  • Cloud API:

    • POST /auth/session/refresh
    • POST /auth/logout
    • GET /settings/storage
    • PUT /settings/storage
    • POST /providers/openai/oauth/start
    • GET /providers/openai/oauth/callback
    • POST /integrations/google-drive/oauth/start
    • GET /integrations/google-drive/oauth/callback
    • GET /integrations/google-drive/status
    • POST /integrations/google-drive/access-token
    • POST /providers/byok (web/mobile encrypted account vault)
    • GET /providers/status
    • GET /providers/credential (server-side use only)
    • DELETE /providers/{provider}
── more in #ai-tools 4 stories · sorted by recency
── more on @notebook ai 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-notebook-ai-…] indexed:0 read:4min 2026-11-10 · —