跳到正文
GitHub·· 5 天前AI 评分36

NotaBene:面向学生的 Mac 本地笔记应用,支持录音转写与 AI 问答

kilianvivien/NotaBene

AI 导读

NotaBene 1.3.9 发布,这是一款面向学生的 Mac 本地笔记应用,笔记库以文件夹形式存放在本机,无需账号、订阅或联网即可使用。它支持课堂录音并按段落锚定回放、音频转写、PDF/Word 等文档转为可编辑笔记,以及从笔记生成闪卡、思维导图和播客。

正文

NotaBene app icon

Your notes. Your Mac. Your intelligence.

A note-taking app for the Mac, made for students. Take notes in class, keep them organized by course, and turn them into revision material, with everything stored on your own Mac.

Platform: macOS 13+ Built with Tauri 2 Latest release: 1.3.9 License: Apache 2.0

NotaBene in French: courses and tags in the sidebar, a law course note open in the editor, and the Ask panel answering a question from the note

What NotaBene is for

NotaBene follows a class from the lecture to the exam:

  1. In the lecture, write fast — and record the lecture if you like. Each paragraph remembers the moment it was typed, so you can replay what the lecturer said about it or turn the recording into a linked transcript.
  2. After class, file it. Courses, sections, tags, [[wiki links]] and attachments. A PDF or Word handout can become an editable note.
  3. Before the deadline, see what is due. Tasks with reminders and repeats, in and out of Apple Calendar, Moodle or Canvas.
  4. Before the exam, revise from what you wrote. Instant search, flashcards (in the app or Anki), revision sheets, mind maps, podcasts, and questions answered from your notes.

The AI tools are optional. Everything else works without an account, a subscription or a connection.

Who it is for. Students first; graduate students and researchers too — bring a library from Obsidian, Markdown or Notion, write long documents with footnotes, and annotate PDFs.

What it is not. A Mac app only, with no iPhone, iPad or web version, no cloud sync and no collaboration. Your library is a folder on your Mac.

Download

NotaBene 1.3.9 for Apple silicon — macOS 13 Ventura or newer. On-device transcription needs macOS 26 or newer; on older versions, transcription is available through Mistral with your own API key. Apple Intelligence as a provider needs macOS 27.

Important

The DMG is ad-hoc signed and not notarized, so Gatekeeper may block it. Go to System Settings → Privacy & Security and choose Open Anyway. There are no automatic updates yet.

A first launch offers a short tour and asks how to begin: import your notes, explore a sample course, or start empty. Help → NotaBene help (⇧⌘/) covers the rest.

Features

Write Organize Study Own
Rich text with Markdown shortcuts Courses, sections, and smart folders AI summaries and Q&A with sources Everything stored on your Mac
Lecture recording anchored to blocks Namespaced tags you can combine Audio transcription and flashcards API keys in the Keychain
LaTeX maths, tables, callouts, code [[wiki links]] and backlinks Mind maps and diagrams Autosave and version history
Re-editable Excalidraw drawings Tasks, subtasks, and reminders Read aloud and note-to-podcast Backups and portable exports
Abbreviations and word completion Calendar import and export (.ics) Define a term in context Images stripped of location data
PDF, Word, and slides as notes (+OCR) Bulk select, move, tag, and merge Study tools over a whole selection No account, no telemetry
Attachments and saved web pages Import Obsidian, Markdown, and Notion An agent for multi-step jobs Nothing leaves without asking

Editor. Slash menu, toolbar, find and replace, footnotes and endnotes, a document map, and word-count targets. Abbreviations expand as you type (tvi → "théorème des valeurs intermédiaires"), and word completion learns each course's vocabulary — Tab to accept, never inserted on its own. Right-click a word or selection for clipboard, formatting, links and vocabulary commands, or use Correct selection and Rewrite selection to review an AI proposal for just that passage. Shift-right-click opens the native macOS menu.

Lecture recording. ⌥⌘R records into the open note. Every paragraph or heading started during the recording gets a marker that plays from two seconds before it. Audio stays on your Mac as an attachment; Settings → Recording picks the microphone and level. A five-second microphone warm-up precedes recording, so the countdown is not saved in the audio.

Transcription. Transcribe a lecture recording or another audio attachment from its player (⇧⌥⌘R). Add the transcript to the note or create a linked note; each paragraph can play the corresponding audio, and uncertain words are highlighted for review. On macOS 26+, Apple's speech recognition runs on this Mac after you install its language assets in Settings → Recording. Mistral is an optional hosted choice that sends audio to its API using your key.

Documents and imports. File → Convert a document to note (⌘⇧O) turns PDF, Word, PowerPoint, Excel, OpenDocument, EPUB and more into editable notes, on-device, with Vision OCR for scans. File → Import notes from another app (⇧⌥⌘O) brings in an Obsidian vault, a Markdown folder or a Notion export, with a preview first, links intact, and re-imports that update instead of duplicating.

Search. Titles, bodies, tags and courses, accent-insensitive, with filters such as course:Analysis has:drawing after:2026-01-01. ⌘K finds commands beside notes.

Visualize. Turn a note into a focused mind map or a diagram that explains steps, decisions, dependencies or feedback loops. The preview shows the learning question and takeaway, with the reasoning behind the structure and what was left out. Generated mind maps stay shallow and selective; longer explanations appear below the tree. Both outputs remain editable and export with the note.

AI, on your terms. Anthropic, OpenAI, Mistral, Gemini, OpenRouter, Ollama, LM Studio, Apple Intelligence on-device, or any OpenAI-compatible endpoint — or none. Every edit a model proposes is shown before it reaches a note, and anything it returns is validated. Voices can be macOS system voices, on-device neural voices (Kokoro, Voxtral), or opt-in hosted ones. Gemini text-to-speech uses the main Gemini API key, and hosted Voxtral uses the main Mistral API key; configure each key once in Settings → AI Providers.

Agent and MCP. A local, token-protected Model Context Protocol server lets an assistant search, read, write, organize and archive notes through the same checks and history as your own typing, and never delete permanently. The in-app Agent uses the same 31 tools: it plans first, can run the study features, asks when a job is ambiguous, holds large bulk changes for your approval, and undoes as one step.

Exports. Markdown, HTML, PDF, DOCX and Anki, for a note, a course or a selection. Manuscript export adds a title page, contents and numbering. Secrets never appear in an export or backup.

Privacy

No accounts, cloud sync, telemetry, analytics or ads. NotaBene reaches the network only when you ask it to: an AI request to the provider you chose (local models and Apple Intelligence stay on your Mac), hosted transcription or voice, a one-time voice download, saving a web page, or checking for a new version. AI requests go only to built-in providers, your own machine, or an address you approved.

Status

NotaBene 1.3.9 is a maintenance release: security fixes and updated foundations, with no feature changes — see the release notes. The app is not yet signed with a Developer ID or notarized, and has no automatic updates.

See also the security policy and third-party notices.

Build from source

Requires macOS 13+, Node.js 20+, pnpm, a stable Rust toolchain, Xcode Command Line Tools, and CMake and Ninja (for the on-device speech runtime).

xcode-select --install
brew install cmake ninja
corepack enable
pnpm install
Command What it does
pnpm dev Web UI on localhost:5173 with an in-memory store (no saving)
pnpm tauri:dev The full desktop app with SQLite
pnpm tauri:build .app and .dmg under src-tauri/target/release/bundle/

The first Tauri run builds the pinned CrispASR/GGML runtime (scripts/prepare-crispasr-macos.sh); later runs reuse it.

Development

Before a pull request, run pnpm typecheck && pnpm lint && pnpm test, plus cargo check in src-tauri/ when Rust changed. pnpm e2e runs the Playwright suite and pnpm format applies Prettier.

flowchart LR
    UI["React UI<br/>Editor · AI · MCP bridge"] --> CMD["Shared command layer<br/>validation · history · autosave"]
    CMD --> ADAPTERS["Platform adapters"]
    ADAPTERS --> MEMORY["In-memory store<br/>browser development"]
    ADAPTERS --> TAURI["Tauri IPC"]
    TAURI --> DB["SQLite + FTS5"]
    TAURI --> OS["Keychain · files · audio · TTS"]
    MCP["Authenticated local MCP client"] --> GATEWAY["Rust MCP gateway"]
    GATEWAY --> CMD

Loading

Four boundaries keep the app predictable:

  1. src/lib/commands/ is the only mutation path.
  2. src/lib/adapters/ isolates browser and Tauri implementations.
  3. src/lib/schema/ validates everything crossing a trust boundary.
  4. MCP writes return through the webview and the command layer, so an agent's edit gets the same validation and history as a keystroke.

React 19, TypeScript, Vite, Tailwind CSS, Zustand, Zod, TipTap and Excalidraw in front; Tauri 2 and Rust with rusqlite, FTS5, rmcp and axum behind. Read CLAUDE.md before changing code.

Contributing

Issues, focused pull requests and product feedback are welcome. Open an issue before a large change, keep user-facing text in both English and French, add tests for changed behaviour, and never include real notes, keys or personal data in reports or fixtures.

Acknowledgements

NotaBene stands on a lot of other people's work. Copyright stays with each project's contributors; this list is attribution, not a substitute for the licences, which ship in full inside the installed packages.

Project Licence What it does here
Tauri Apache-2.0 OR MIT Native macOS shell and plugins
rusqlite / SQLite MIT / public domain The local library and FTS5 search
rmcp / axum Apache-2.0 / MIT The authenticated local MCP server
Tokio / reqwest / rustls MIT / Apache-2.0 OR MIT / Apache-2.0 OR ISC OR MIT Async runtime and AI provider transport
React MIT Interface runtime
TipTap / ProseMirror MIT The authoring surface
Excalidraw MIT Re-editable drawings
KaTeX MIT LaTeX maths rendering
Tailwind CSS MIT Styling toolchain
Lucide ISC Interface icons
Zustand / Immer MIT Application state
Zod MIT Runtime schema validation
i18next MIT English and French localization
AnyDoc MIT Local document import
PDF.js Apache-2.0 In-app PDF preview
docx-preview Apache-2.0 In-app DOCX preview
docx / pdfmake MIT Word and PDF export
fflate MIT Backups and portable archives
CrispASR / GGML MIT On-device neural speech runtime
wasm-media-encoders MIT Local MP3 podcast encoding
Lora SIL OFL 1.1 The bundled typeface

Speech models are not bundled. If you install one, it is downloaded from a pinned Hugging Face revision under its own terms: Kokoro 82M (Apache-2.0; voice packs and dictionaries MIT) and Voxtral 4B (CC BY-NC 4.0, non-commercial only). THIRD_PARTY_NOTICES.md holds the complete notices.

License

NotaBene is available under the Apache License 2.0.

来源:GitHub · github.com