local-first semantic search across markdown notes with hybrid keyword-vector matching
Reor implements semantic search by embedding note content using Transformers.js (client-side ONNX models) and storing vectors in LanceDB, a local vector database with native bindings. The system supports both pure vector similarity search and hybrid mode combining semantic matching with keyword indexing, enabling full-text discovery without cloud API calls. Search operates entirely on-device with no data transmission, using LanceDB's columnar storage for fast approximate nearest neighbor queries across note collections.
Unique: Uses Transformers.js for client-side embedding generation instead of API calls, combined with LanceDB's native bindings for platform-optimized vector storage, enabling zero-network-latency semantic search with full data privacy. Hybrid mode implementation merges vector similarity with keyword matching at query time rather than pre-computing combined scores.
vs alternatives: Faster than Pinecone/Weaviate for local use cases (no network round-trip) and more privacy-preserving than cloud vector DBs; slower than specialized FAISS implementations but with better multi-platform support and easier integration with Electron apps.
automatic bidirectional note linking via vector similarity clustering
Reor automatically discovers and surfaces related notes by computing vector similarity between note embeddings and clustering semantically similar content. The system runs in the background, generating embeddings for all notes and maintaining a similarity graph that populates a sidebar panel showing related notes while editing. This creates a knowledge graph without requiring manual wiki-style link syntax, using the same embedding infrastructure as semantic search to identify conceptual relationships.
Unique: Implements automatic linking through continuous vector similarity computation rather than explicit backlink syntax or manual curation, creating emergent knowledge graphs that evolve as note content changes. Bidirectional linking is computed on-demand when notes are opened, avoiding expensive pre-computation of full similarity matrices.
vs alternatives: More discoverable than Obsidian's manual backlink system and more privacy-preserving than cloud-based note-linking services; less precise than human-curated links but requires zero manual effort to maintain.
conversation history management with context preservation
Reor maintains conversation history in the chat interface, storing user messages and LLM responses with timestamps. The system preserves conversation context by including previous messages when generating new responses, enabling multi-turn dialogue. Conversation history is stored in-memory during the session; users can optionally save conversations to disk for later reference. The system manages context window constraints by truncating older messages if the full history exceeds the LLM's context limit.
Unique: Manages conversation history with context window awareness, automatically truncating older messages to fit within LLM limits. Conversations can be saved to disk as JSON or markdown for persistence and sharing.
vs alternatives: Simpler than ChatGPT's conversation management; no built-in search or organization but sufficient for single-session use cases.
multi-platform desktop application packaging via electron with auto-updates
Reor is built as an Electron application that runs on macOS (x64/ARM), Windows (x64), and Linux (x64), providing a native desktop experience across platforms. The build system packages the application for each platform with platform-specific optimizations (e.g., ARM support for Apple Silicon). Auto-update functionality checks for new releases and prompts users to upgrade, with differential updates to minimize download size.
Unique: Packages Reor as a native Electron app with platform-specific optimizations (ARM support for Apple Silicon) and auto-update functionality. LanceDB native bindings are compiled for each platform, enabling optimized vector database performance.
vs alternatives: More performant than web-based alternatives; larger download size and memory footprint than native apps but simpler to develop and maintain than separate native implementations.
optional cloud llm provider integration (openai, anthropic) with fallback support
While Reor is designed for local-first operation, it supports optional integration with cloud LLM providers (OpenAI, Anthropic) for users who prefer higher-quality models or need specific capabilities. Users can configure API keys in settings and switch between local and cloud models at runtime. The system maintains a unified chat interface regardless of LLM provider, with fallback logic to use local models if cloud API calls fail.
Unique: Provides optional cloud LLM integration while maintaining local-first as default, with unified chat interface and fallback logic. Users can switch providers at runtime without changing application code.
vs alternatives: More flexible than local-only systems; enables access to higher-quality models while preserving privacy-first design. Simpler than building separate cloud and local implementations.
rag-powered q&a chat with local llm and note context retrieval
Reor implements a Retrieval-Augmented Generation (RAG) chat system where user questions trigger semantic search across notes to retrieve relevant chunks, which are then passed as context to a local LLM (via Ollama or Transformers.js) for answer generation. The system manages a conversation history, formats retrieved note chunks as context, and streams LLM responses back to the UI. All processing occurs locally; no conversation data or note content is sent to external APIs unless explicitly configured to use cloud models (OpenAI/Anthropic).
Unique: Implements RAG by combining local semantic search (Transformers.js + LanceDB) with local LLM execution (Ollama), creating a fully offline Q&A system with no external API dependencies. Context retrieval is integrated into the chat flow via IPC communication between Electron main process (LLM execution) and renderer (UI), with streaming responses for real-time feedback.
vs alternatives: More private than ChatGPT plugins or cloud-based RAG services; slower response times than API-based alternatives but eliminates data transmission and API costs.
markdown note editing with syntax highlighting and backlink visualization
Reor provides an Obsidian-like markdown editor built into the Electron renderer process, supporting syntax highlighting, real-time preview, and backlink/wikilink syntax (`[[note-name]]`). The editor integrates with the note filesystem layer to enable creating, editing, and linking notes within the PKM system. Backlinks are rendered as clickable references that navigate to linked notes, and the editor supports standard markdown formatting with code block syntax highlighting.
Unique: Integrates markdown editing directly into Electron app with real-time backlink visualization and wikilink navigation, avoiding the need for external editors. Backlinks are computed from the vector similarity graph, so related notes surface automatically even without explicit `[[links]]`.
vs alternatives: More integrated than using VS Code or external editors; less feature-rich than Obsidian but tightly coupled with local AI capabilities for automatic linking and RAG.
local llm execution via ollama integration with model switching
Reor integrates with Ollama, a local LLM runtime, to execute language models entirely on the user's machine. The system allows users to configure which Ollama model to use for chat and text generation, with support for switching models without restarting the app. The main process communicates with Ollama via HTTP API calls, streaming responses back to the renderer for real-time display. Users can also configure cloud-based LLM providers (OpenAI, Anthropic) as fallbacks or alternatives.
Unique: Abstracts LLM execution behind a unified interface that supports both local Ollama models and cloud APIs (OpenAI/Anthropic), allowing users to switch providers without changing application code. Model configuration is persisted in settings and can be changed at runtime without app restart.
vs alternatives: More flexible than hardcoding a single LLM provider; slower than cloud APIs but eliminates API costs and data transmission. Ollama integration is simpler than managing LLM weights directly but requires external process management.
+5 more capabilities