Skip to content
Merged
18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,24 @@ All notable documentation and user-facing behavior changes are tracked in this f

### Added

- Added **Dual-Stream Audio Capture & Meeting Recording**:
- Captures microphone and Windows desktop/system audio loopback simultaneously using Web Audio API AudioContext mixer (`src/utils/audioMixer.js`).
- Supports 3 capture modes: Meeting Mode (Mic + System Audio), Microphone Only, and System Audio Only.
- Live audio waveform visualizer canvas and recording timer with pause/resume support (`AudioRecorderBar.jsx`).
- Keyboard shortcut `Alt + V` to toggle audio/meeting recorder in the editor toolbar.
- Added **Speech-to-Text (STT) Transcription Service & Model Settings**:
- Offline on-device transcription via Local ONNX Whisper (`whisper-tiny.en`, `whisper-base.en`, `whisper-small`).
- High-speed cloud transcription via Groq (`whisper-large-v3`) and OpenAI (`whisper-1`).
- Dedicated **Speech-to-Text** subtab in AI Settings (`AISettings.jsx`) for selecting engines, local models, capture defaults, and languages.
- Transcripts saved as structured companion `.json` files alongside audio in `media/audio/*.json` with timestamps, speaker attributions, key points, and action items.
- Added **Landing Page Quick Capture Bar**:
- Integrated header toolbar on the landing dashboard (`LandingQuickCaptureBar.jsx`) for one-click Screen Snip, Desktop Recording, and Audio/Meeting Recording.
- Saves captured media directly to workspace media storage with zero note modifications.
- Notification toast provides direct 1-click `[Open Gallery]` action.
- Added **Workspace Media Gallery Unused Media Filter & Audio Player**:
- Physical disk scanner (`media:list-disk-assets` IPC) discovers files in `media/`, `assets/`, and `images/`.
- New `⚠️ Unused / Orphans` filter tab and header stats indicator isolating unreferenced media files (`referenceCount === 0`).
- Interactive audio player preview (`AudioPlayerPreviewItem`) and orphan action buttons (`Copy Markdown Embed`).
- Added **Multiple Developer-Friendly Fonts Support** (`View → Font`).
- Choose between 5 curated IDE/developer-friendly typefaces: Inter (Default), JetBrains Mono, Fira Code, Cascadia Code, and Source Code Pro.
- Changes cascade in real time across all app labels, navigation items, buttons, dialogs, and controls.
Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ Notely is built with Electron + React and is designed for project notes, meeting
- **Regex search** with validation and pattern matching for advanced queries.
- **Code-aware search** to find patterns inside code blocks only.
- Insert common Markdown snippets from the toolbar.
- Record audio notes and full meetings with dual-stream audio capture (Microphone + Windows System Audio loopback) with automatic Speech-to-Text (STT) transcription powered by offline local ONNX Whisper or ultra-fast cloud providers (Groq whisper-large-v3, OpenAI whisper-1).
- Quick capture directly from the landing dashboard with one-click screen snip, desktop recording, and meeting audio capture that saves directly to workspace media without altering notes until you embed them.
- Explore and audit all diagrams, media, audio, and documents in the **Workspace Diagrams & Media Gallery**, featuring physical disk scanning, unreferenced orphan detection, and an **Unused Media** filter with audio playback and transcript preview.
- Edit Markdown tables inline with a focused grid editor (row/column add/remove, alignment controls, and compact action chips).
- Browse, annotate, optimize, and manage linked media.
- Open note files in VS Code or the system default app.
Expand Down
2 changes: 1 addition & 1 deletion THIRD_PARTY_NOTICES.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
THIRD-PARTY SOFTWARE NOTICES AND INFORMATION

Notely incorporates components from the projects listed below.
This file was generated automatically on 2026-09-24 by
This file was generated automatically on 2026-09-26 by
scripts/generate-notices.cjs. Do not edit by hand.

Total third-party packages: 189
Expand Down
9 changes: 7 additions & 2 deletions docs/ai/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,12 @@ Notely features a modular, local-first AI platform designed around private data
- Runs entirely offline using a local ONNX runtime for `BGE-small-en-v1.5` 384-dimensional dense vectors, with optional fallback to cloud embedding APIs.
- Background worker process handles queue processing and debounced note indexing to prevent UI thread latency.

### 4. In-App Tools Catalog & MCP Diagnostics
### 4. Speech-to-Text (STT) Transcription Pipeline
- Transcribe voice memos and meeting discussions into Markdown and companion JSON transcript files.
- Runs offline via on-device WebAssembly/ONNX Whisper models (`whisper-tiny.en`, `whisper-base.en`, `whisper-small`), with optional sub-second cloud transcription via Groq or OpenAI Whisper.
- Synchronized transcript view with key points and action items embedded into notes and the Media Gallery.

### 5. In-App Tools Catalog & MCP Diagnostics
- **MCP Tools Page** (`Ctrl/Cmd + Shift + M`): Interactive catalog to view tool definitions, test inputs, and verify outputs.
- **AI Health / Diagnostics**: Real-time telemetry dashboard monitoring MCP connection status, client sessions, request volume, and error diagnostics.
- **AI Settings** (`Ctrl/Cmd + Shift + ,`): Configure API providers, embedding options, and Knowledge Graph extraction confidence thresholds.
- **AI Settings** (`Ctrl/Cmd + Shift + ,`): Configure API providers, embedding options, STT engines, and Knowledge Graph extraction confidence thresholds.
11 changes: 10 additions & 1 deletion docs/ai/setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,16 @@ Relationship extraction and entity graph generation:

---

## 4. SQLite Database Locality
## 4. Speech-to-Text (STT) Engine Setup

Configure meeting and audio transcription inside **AI → AI Settings → Speech-to-Text**:
- **Local ONNX Whisper (Offline)**: Download `whisper-tiny.en` (~40MB), `whisper-base.en` (~140MB), or `whisper-small` (~460MB) for private, zero-latency on-device transcription via WebAssembly/ONNX Runtime.
- **Cloud Whisper (Groq / OpenAI)**: Sub-second cloud transcription using your saved Groq or OpenAI API key.
- **Audio Capture Preference**: Set default recording mode to `Meeting: Mic + System Audio`, `Microphone Only`, or `System Audio Only`.

---

## 5. SQLite Database Locality

All AI databases are workspace-scoped and stored inside the hidden `{workspace}/.notes-app/` folder to keep your data local and portable:
1. `ai-embeddings.db`: Stores chunk text, line mappings, content hashes, and indexing queues.
Expand Down
4 changes: 2 additions & 2 deletions docs/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,8 +135,8 @@ The following diagram shows the full request path from the React UI through each
flowchart TD
subgraph Renderer["Renderer Process (React / Vite)"]
direction LR
ACP["AIChatPanel"] & AIS["AISettings"] & EBP["EmbeddingsPage"] & KGV["KnowledgeGraph"]
UAI["useAIAssistant hook"]
AIS["AISettings"] & MCP["MCPToolsPage"] & MED["WorkspaceDiagramsMediaPage"] & KGV["KnowledgeGraph"]
ARB["AudioRecorderBar"] & LQC["LandingQuickCaptureBar"]
end

subgraph Preload["Preload Bridge (preload.cjs)"]
Expand Down
11 changes: 5 additions & 6 deletions docs/data-sync-security.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,12 @@ Tips:

If you do not share notes between devices, you can ignore this section.

## 4. AI Features for Daily Use
## 4. AI & MCP Integration for Daily Use

1. Open **AI -> AI Settings**.
2. Add the sign-in details for the AI service you want to use.
3. Use AI chat, smarter search, and related-note features as needed.

If the service you chose cannot do something, Notely shows a warning in AI Settings.
1. Open **AI -> AI Settings** (`Ctrl/Cmd + Shift + ,`).
2. Configure your preferred Speech-to-Text engine (Local ONNX Whisper or Cloud Groq/OpenAI) and API keys.
3. Connect external AI assistants (Google Antigravity, Claude Desktop, Cursor) directly to Notely via the built-in MCP server on port `3700`.
4. Use hybrid semantic search and knowledge graph discovery locally and securely.

## 5. When to Use Workspace Graph

Expand Down
17 changes: 10 additions & 7 deletions docs/feature-availability.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,17 @@ The matrix below details which features run entirely offline, which require loca
{ feature: 'Help Center', available: true, setup: 'No', internet: false },
{ feature: 'Tasks Dashboard', available: true, setup: 'No', internet: false },
{ feature: 'Version History (Git)', available: true, setup: 'No', internet: false },
{ feature: 'Media Library', available: true, setup: 'No', internet: false },
{ feature: 'Media Library & Disk Scanner', available: true, setup: 'No', internet: false },
{ feature: 'Embedded Terminal', available: true, setup: 'No', internet: false },
{ feature: 'Screen Capture (Windows)', available: true, setup: 'No', internet: false },
{ feature: 'Screen Capture & Snipping', available: true, setup: 'No', internet: false },
{ feature: 'Screen Video Recording & Overlay', available: true, setup: 'No', internet: false },
{ feature: 'Dual-Stream Audio & Meeting Recording', available: true, setup: 'No', internet: false },
{ feature: 'Local Speech-to-Text (ONNX Whisper)', available: true, setup: 'Download Model (~40-460MB)', internet: false },
{ feature: 'Cloud Speech-to-Text (Groq / OpenAI)', available: false, setup: 'Configure API Key in AI Settings', internet: true },
{ feature: 'Model Context Protocol (MCP) Server', available: true, setup: 'No (Runs on port 3700)', internet: false },
{ feature: 'Mermaid Diagrams', available: true, setup: 'No', internet: false },
{ feature: 'Excalidraw Diagrams', available: true, setup: 'No', internet: false },
{ feature: 'Workspace Graph', available: true, setup: 'No', internet: false },
{ feature: 'Sync with other devices', available: false, setup: 'Pair Trusted Devices', internet: 'Local network' },
{ feature: 'AI Chat & Rewriting', available: false, setup: 'Setup AI Provider', internet: true },
{ feature: 'Meaning-based Search', available: false, setup: 'Setup AI Provider', internet: true },
{ feature: 'Graph Clustering', available: false, setup: 'Setup AI Provider', internet: true }
{ feature: 'Workspace Graph & Neural Extraction', available: true, setup: 'No (Local GLiNER2 ONNX)', internet: false },
{ feature: 'Semantic Hybrid Search (BGE)', available: true, setup: 'No (Local BGE ONNX)', internet: false },
{ feature: 'Sync with other devices (P2P)', available: false, setup: 'Pair Trusted Devices', internet: 'Local network' }
]" />
68 changes: 39 additions & 29 deletions docs/feature-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,12 @@ During transfer:

Open via **Workspace -> Diagrams & Media Gallery** (`Ctrl/Cmd + Alt + M`) or Command Palette:
- Catalogs all used diagrams (inline Mermaid, Draw.io, Excalidraw), images, videos, audio, and PDF documents in the workspace.
- **Physical Disk Scanner & Orphan Detection**: Scans workspace folders (`media/`, `assets/`, `images/`) to identify files present on disk that have zero note references.
- **Unused Media Filter**: Quickly isolate unreferenced assets with the `⚠️ Unused / Orphans` filter tab.
- **Audio & Media Preview**: Embedded audio players, video thumbnails, and transcript drawer with key points and action items.
- Reuses Knowledge Graph layout aesthetics with collapsible category filters, search, and stat indicators.
- Inspect details for any item with high-res/diagram live previews, file paths, and exact note references with line numbers and snippets.
- Direct "Open Note" navigation into the editor.
- Direct "Open Note" navigation and "Copy Markdown Link" actions.

## 2. Editor and Writing Experience

Expand Down Expand Up @@ -328,6 +331,26 @@ Notely supports area-based screen capture and full screen/window video recording
- **Auto-Save & Linking**: Saves `.webm` files under `media/recordings/` and inserts `![Screen Recording](media/recordings/*.webm)` into the note.
- **Note Preview & Modal Player**: Renders video links as interactive thumbnail cards with `▶ Play Video` badges and frame decoding. Clicking opens a full-screen playback modal with Download and Copy Path options.

### Audio & Meeting Recording with Speech-to-Text

Record voice notes or entire conference calls (Zoom, Google Meet, Teams, YouTube) directly into Notely with synchronized audio and transcription.

- **Dual-Stream Audio Capture**:
- **Meeting Mode**: Simultaneously captures your local microphone and Windows desktop/system audio loopback, combining them into a single stereo track with Web Audio API mixer.
- **Microphone Only**: Dedicated voice memo recording.
- **System Audio Only**: Captures speakers/audio loopback without mic.
- **Speech-to-Text (STT) Transcription**:
- **Local ONNX Whisper (Offline)**: Runs locally in-app via WebAssembly/ONNX runtime (`whisper-tiny.en`, `whisper-base.en`, `whisper-small`). No internet connection or cloud API keys required.
- **Cloud Whisper**: High-speed cloud transcription using Groq (`whisper-large-v3`) or OpenAI (`whisper-1`) with API keys configured in AI Settings.
- **Transcript Storage**:
- Audio files are stored under `media/audio/*.webm`.
- Transcripts are saved alongside audio in `media/audio/*.json` containing segmented timestamps, speaker attributions, key points, and action items.
- **Workflow Differences**:
- **Media Gallery Integration & Transcripts Filter**:
- The **Diagrams, Media & PDFs** gallery (`Workspace -> Diagrams, Media & PDFs`) includes a dedicated **Transcripts** filter category alongside Diagrams, Images, Videos, Audio, PDFs, and Documents.
- Selecting a transcript in the gallery opens a rich inspector showing the AI executive summary, timestamped speaker segments, and a one-click button to copy the full transcript text.
- **On-Demand Transcript Generation**: Any existing audio or video recording in the Media Gallery has a **Generate AI Transcript** button (`✨`). Clicking it decodes the media track, resamples it to 16kHz mono Float32, runs Whisper (Local ONNX or Cloud Groq/OpenAI based on your AI Settings), and saves a companion transcript JSON file in `media/audio/`.

### Media preview tools

Use zoom and media-aware preview controls to inspect assets.
Expand Down Expand Up @@ -373,40 +396,27 @@ This helps recover from aggressive crops or accidental edits.
- Excalidraw previews have their own right-click actions.
- If the diagram started from an image, you can switch back to the original image later.

## 9. AI Assistance

### AI settings

Set up AI services and sign-in details in **AI -> AI Settings**.

You can set up:

- a writing assistant service for chat and rewriting
- a separate service for smarter search and graph features

### AI chat and commands

Use AI for writing support, note understanding, and quick content actions.

### Semantic features

When AI search data is turned on, Notely can find related notes by meaning, not just exact words.

### What each AI service can do

Not every AI service supports every feature.
## 9. AI & Machine Intelligence

Notely shows capability warnings in settings when a selected provider cannot run a feature.
### Privacy-First Architecture

You can also choose which AI model to use in AI settings.
Notely features a local-first, privacy-conscious AI architecture. Rather than relying on cloud-dependent chat sidebars, AI functionality is centered around:
1. **Model Context Protocol (MCP) Server**: Local standard interface on port `3700` (`http://127.0.0.1:3700/mcp` and `/sse`) for external AI assistants (Google Antigravity, Claude Desktop, Cursor).
2. **Local Speech-to-Text (STT)**: On-device Whisper transcription via WebAssembly/ONNX, plus optional cloud transcription.
3. **Local Vector Embeddings & Hybrid Search**: SQLite FTS5 combined with local `BGE-small-en-v1.5` dense embeddings.
4. **Offline Knowledge Graph**: Neural zero-shot entity and relation extraction powered by local `gliner2-multi-v1-onnx`.

### AI operation feedback
### AI Settings & Configuration

Longer AI actions show progress and completion messages so you know something is happening.
Configure AI services and endpoints in **AI -> AI Settings** (`Ctrl/Cmd + Shift + ,`):
- **LLM Provider Setup**: Configure Google Gemini, Groq, or OpenAI / OpenAI-compatible endpoints with custom Base URLs for cloud STT and external workflows.
- **Speech-to-Text (STT) Settings**: Choose between Local ONNX Whisper (`whisper-tiny.en`, `whisper-base.en`, `whisper-small`) and Cloud Whisper (Groq `whisper-large-v3`, OpenAI `whisper-1`).
- **Feature Toggles**: Toggle pattern learning, embedding generation, relationship discovery, and adjust the neural entity extraction confidence threshold slider.

### How recent the AI search data is
### MCP Diagnostics & Interactive Testing

Notely shows whether its AI search data is fresh or getting old.
- **MCP Tools Catalog** (`Ctrl/Cmd + Shift + M`): Inspect all 7 enterprise tools (`search`, `read_note`, `edit_note`, `manage_tasks`, `manage_diagrams`, `workspace_overview`, `git_control`), run live tool test calls, and inspect JSON payloads.
- **MCP Telemetry & Diagnostics**: View live connection status, active client sessions, request rates, execution latency, and error logs.

## 10. Peer-to-Peer Sync

Expand Down
2 changes: 2 additions & 0 deletions docs/keyboard-shortcuts.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ Use shortcuts to navigate and edit notes quickly across Notely.
| Toggle Outline Panel | `Ctrl/Cmd + Alt + L` | Editor |
| Open Reference Note | `Ctrl/Cmd + Shift + K` | Editor |
| Insert Reference Link | `Ctrl/Cmd + Shift + L` | Editor |
| Capture Screen Snip | `Ctrl/Cmd + Shift + S` | Editor |
| Toggle Audio / Meeting Recorder | `Alt + V` | Editor |

## Search & Find Panel

Expand Down
13 changes: 13 additions & 0 deletions docs/settings-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,19 @@ Open **AI -> AI Settings**.

Use lower temperature for predictable output. Use higher temperature for brainstorming or variation.

### Speech-to-Text (STT) setup

Open the **Speech-to-Text** tab in AI Settings:

- **Transcription Engine**:
- `Local ONNX Whisper (Offline, In-Browser / WebAssembly)`: default offline engine; runs private on-device transcription.
- `Groq Cloud Whisper`: utilizes Groq's high-throughput `whisper-large-v3` for sub-second transcriptions using your configured Groq API key.
- `OpenAI Cloud Whisper`: utilizes OpenAI's `whisper-1` model using your configured OpenAI API key.
- **Local Whisper Model**: Select from `whisper-tiny.en` (~40MB, fastest), `whisper-base.en` (~140MB, balanced), or `whisper-small` (~460MB, multilingual).
- **Default Audio Capture Mode**: Choose default mode when launching recorder (`Meeting: Mic + System Audio`, `Microphone Only`, `System Audio Only`).
- **Primary Spoken Language**: Specify expected audio language (or `Auto-Detect`).
- **Auto-transcribe toggle**: Automatically triggers Speech-to-Text generation as soon as an audio or meeting recording is stopped.

### Data and privacy controls

- Shows where AI-related app data is stored on your device
Expand Down
Loading
Loading