Product Requirements Document Naidis PRD - Raycast for Obsidian, Unified PKM Workstation
Version : 2.0
Date : 2026-01-17
Status : Planning Phase
The Obsidian plugin ecosystem is fragmented :
Separate plugins are needed for Web Clipper, YouTube Transcript, AI Chat, RSS Reader, etc.
Different UI/UX, different settings, and different shortcuts for each plugin.
Users must combine 5-10 plugins to configure a complete workflow.
Issues arise with updates, version management, and compatibility of each plugin.
Key Pain Point :
"To organize a YouTube video in Obsidian, I need 3 plugins: Media Extended + YTranscript + AI, and I have to configure each one separately."
A product that provides a Raycast-style unified Command Palette :
Cmd+Shift+P → Perform all PKM tasks in a single interface.
Built-in key features: Web Clip, YouTube Transcript, AI Chat, RSS, etc.
Integration with external services (Wallabag, Hoarder/Karakeep, Readwise).
100% Local-first + optional cloud synchronization.
┌─────────────────────────────────────────────────────────────┐
│ unified-launcher-core (Rust) [MIT OSS] │
│ ───────────────────────────────────────────────────────── │
│ • PDF parsing/OCR/table extraction │
│ • YouTube transcript extraction │
│ • RSS feed parsing │
│ • Local LLM inference (llama.cpp) │
│ • Semantic search/embedding (tantivy) │
│ • Wallabag/Hoarder API client │
│ • JSON-RPC API exposure │
└─────────────────────────────────────────────────────────────┘
│
│ IPC (JSON-RPC over stdio)
▼
┌─────────────────────────────────────────────────────────────┐
│ unified-launcher-obsidian (TypeScript) [Paid $29] │
│ ───────────────────────────────────────────────────────── │
│ • Raycast-style Command Palette UI │
│ • Polished UI for each module │
│ • Obsidian Vault integration │
│ • Settings screen │
│ • Auto-updates │
│ • Premium support │
└─────────────────────────────────────────────────────────────┘
Traditional Open Core Our Reverse Open Core UI/Basic features = Free OSS Backend/Engine = Free OSS Advanced backend = Paid Frontend/UX = Paid Problem: Pro features have free alternatives Advantage: Engine is verifiable, UI is behind paywall
Key Insights :
Backend alone is useless → UI is the actual value.
Open source engine → Technical trust, security verification possible.
Paid UI → Reward for polished UX, support, and updates.
Competitor Problem Our Differentiation Readwise Reader $9.99/mo subscription, cloud dependency One-time $29, local-first, OSS engine Smart Connections Switched to paid, frequent UI changes, slow Stable UI, high-performance Rust backend Individual Plugin Combo Fragmented, complex settings Unified UI, Zero Config Omnivore Service terminated OSS Engine = Usable forever
Feature Readwise Reader Omnivore (Ended) Wallabag Hoarder/Karakeep Shiori Linkding Price $9.99/mo Free (Ended) Free self-hosted Free self-hosted Free Free Web Clipping ✅ ✅ ✅ ✅ ✅ ✅ PDF Storage ✅ ✅ ✅ ✅ ❌ ❌ Highlighting ✅ ✅ ✅ ✅ ❌ ❌ AI Summary ✅ ✅ ❌ ✅ ❌ ❌ AI Tagging ✅ ✅ ❌ ✅ ❌ ❌ OCR ❌ ❌ ❌ ✅ ❌ ❌ Mobile App ✅ ✅ ✅ ✅ ❌ ❌ Obsidian Sync ✅ (Official) ✅ (Official) ✅ (Community) ❌ ❌ ❌ Self-hosting ❌ ❌ ✅ ✅ ✅ ✅ RSS Reader ✅ ❌ ❌ ❌ ❌ ❌ YouTube Support ✅ ✅ ❌ ✅ ❌ ❌
Plugin Downloads GitHub Stars Key Features Problems Obsidian Web Clipper (Official)300K+ N/A Browser extension, highlight, AI interpretation iOS compatibility issues, subfolder save bug Readwise Official 203,384 313 Kindle/Pocket sync, Jinja2 template External subscription required, one-way sync Omnivore 128,507 872 Highlight import, AI features Service terminated (2024)
Plugin Downloads GitHub Stars Key Features Problems Media Extended 274,406 808 Inline timestamp, screenshot, playback control YouTube Error 153, unplayable for 1-2 months YTranscript 34,429 162 Transcript extraction, side panel, clickable timestamps 21 open issues, formatting problems Timestamp Notes 23,083 222 Parallel video+note view, timestamp button No updates for 3 years (v1.0.8) YTSummarizer 750 17 OpenAI-based AI summary, multi-lang subtitles New, lack of testing
Plugin Downloads GitHub Stars Key Features Problems Copilot 969,981 5,919 Chat, Vault QA, multi-model, web search Severe lag, UI freezing, 163 issues Smart Connections 790,288 4,457 Semantic embedding, related notes, 100+ API support Switched to paid , frequent UI changes, 448 issues, very slowKhoj 50,470 3,218 Self-hosted, semantic search, custom agents Separate server required, complex setup Smart Second Brain 53,803 964 RAG pipeline, local/cloud model Lack of UI polish
Plugin Downloads GitHub Stars Key Features Problems RSS Reader N/A 432 RSS feed reading within Obsidian Archived in Aug 2025 RSS Copyist N/A N/A Automatic article import, per-feed settings Low awareness Simple RSS N/A 31 Basic RSS features Feature deficiency
Plugin Downloads GitHub Stars Key Features Problems PDF++ 432,462 1,892 Vim keybindings, backlinks, annotation export 113 issues, high learning curve Omnisearch 1,200,211 1,770 PDF+OCR indexing, image search Unstable PDF extraction, 85 issues PDF Highlights 103,603 209 Highlight/underline/annotation extraction Extraction failure on specific PDFs
Key unresolved problems discovered through research:
Unified AI Workspace
Combine Copilot (Chat) + Smart Connections (Link) + Khoj (Search) into one
Visual RAG (Display source notes as clickable links)
Context window relevance scoring
AI-powered Video Note Assistant
One-click transcript + chapter detection + AI summary
Integrated workflow for screenshot + timestamp + summary
Local processing (no API limits)
Unified RSS/Newsletter Manager
Unified RSS + Substack + Email newsletters
Import after AI summarization
Smart filtering and deduplication
Enhanced PDF Processing
Table → Markdown conversion
Batch annotation processing
EPUB import (preserving annotations)
Plugin Permission Manager - Network blocking, data access logs
Image Processing Suite - Resizing, OCR, automatic alt text
Canvas Enhancement - Free drawing, presentation mode
Perform all tasks with one Cmd+Shift+P, just like Raycast :
┌────────────────────────────────────────────────────────────┐
│ 🔍 Type a command... │
├────────────────────────────────────────────────────────────┤
│ 📎 Clip URL Save current URL to vault │
│ 🎥 YouTube Import video with transcript │
│ 💬 AI Chat Chat with your notes │
│ 📰 RSS Check new articles │
│ 📄 PDF Process PDF document │
│ 🔗 Wallabag Sync from Wallabag │
│ ⚙️ Settings Configure Unified Launcher │
└────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Clients (Paid App) │
├─────────────────────────────────────────────────────────────┤
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Obsidian │ │ Obsidian │ │ Web App │ │
│ │ Desktop │ │ Mobile │ │ (Future) │ │
│ │ [$29] │ │ [$29] │ │ │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │ │
│ └─────────────────┼─────────────────┘ │
│ │ │
│ HTTP REST API │
│ │ │
└───────────────────────────┼─────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ naidis-core [MIT OPEN SOURCE] │
│ HTTP Server (axum) - Port 21420 │
├─────────────────────────────────────────────────────────────┤
│ ┌─────────────────────────────────────────────────────────┐│
│ │ REST API Endpoints ││
│ │ • POST /api/youtube/extract ││
│ │ • POST /api/webclip/extract ││
│ │ • POST /api/rss/fetch ││
│ │ • POST /api/pdf/extract ││
│ │ • POST /api/ai/{chat,summarize,rag} ││
│ │ • POST /api/{wallabag,hoarder,readwise}/sync ││
│ │ • GET /health ││
│ └─────────────────────────────────────────────────────────┘│
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Content Processing ││
│ │ • YouTube transcript extraction (yt-dlp) ││
│ │ • PDF parsing + OCR (pdf-extract, tesseract) ││
│ │ • Web content extraction (readability) ││
│ │ • RSS/Atom feed parsing ││
│ └─────────────────────────────────────────────────────────┘│
│ ┌─────────────────────────────────────────────────────────┐│
│ │ AI/ML Processing ││
│ │ • Local LLM inference (Ollama) ││
│ │ • Embedding generation (fastembed-rs) ││
│ │ • RAG pipeline ││
│ └─────────────────────────────────────────────────────────┘│
│ ┌─────────────────────────────────────────────────────────┐│
│ │ External Integrations ││
│ │ • Wallabag / Hoarder / Readwise API clients ││
│ └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘
Deployment Options:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Local Run │ │ Docker │ │ Self-hosting │
│ (Desktop) │ │ (Home Server) │ │ (VPS/Cloud) │
│ │ │ │ │ │
│ localhost: │ │ docker-compose │ │ External IP: │
│ 21420 │ │ up -d │ │ 21420 │
└─────────────────┘ └─────────────────┘ └─────────────────┘
Platform Support Method Desktop Run local server or connect to remote server Mobile (iOS/Android) Connect to self-hosted server (Docker recommended) Web Future support planned
Mobile Usage Scenario:
Deploy naidis-core via Docker on home server/VPS.
Enter server URL in Obsidian Mobile settings.
Use all features including YouTube/RSS/Web Clip even from outside.
Advantage Description Technical Trust "Engine is open source, verifiable" → Resolves security/privacy concerns Community Contribution Can secure contributors to the Rust backend Ecosystem Expansion Other developers can create different apps with this backend Fork Insurance Community can continue even if the project is discontinued
Point Description Backend alone is useless Can be used via CLI, but no UX Polished UX Raycast-level UI requires significant effort Support & Updates Bug fixes, new features, Obsidian version compatibility Build Barrier Backend can be built, but it's meaningless without UI
To create a free UI:
1. Understand Rust backend protocol
2. Implement JSON-RPC client
3. Learn Obsidian plugin API
4. Implement Raycast-level UX
5. Continuous maintenance
→ Motivation to do this "for free"? Almost none.
→ Even if it exists, official UI wins in quality/maintenance.
Feature Library Reason for Choice LLM Inference llama-cpp-rs llama.cpp bindings, GGUF model support Embedding fastembed-rs Fast local embedding, ONNX runtime Search Index tantivy Rust-native full-text search PDF Parsing pdf-extract, lopdf Text/table extraction OCR tesseract-rs Tesseract bindings YouTube yt-dlp (subprocess) Transcript/metadata extraction RSS feed-rs Atom/RSS parsing HTTP reqwest External API calls IPC jsonrpc-core JSON-RPC server Async tokio Async runtime
Zero Config : Works immediately upon installation, advanced settings are optional
Keyboard First : All tasks possible without a mouse
Progressive Disclosure : Simple by default, reveal advanced features as needed
Native Feel : Adhere to Obsidian's native design language
Offline First : Core features work without a network
Module Feature Backend (OSS) Frontend (Paid) Command Palette Unified Launcher - Fuzzy search, keyboard navigation YouTube Video Organization Transcript extraction, AI chapter detection, summary Timestamp UI, player, note generation PDF Document Processing Text/table extraction, OCR Viewer, annotation UI, highlighting AI Chat Note QA LLM inference, RAG, embedding Chat UI, source display, history RSS Feed Subscription Feed parsing, article extraction Feed list, reading view, save Web Clip Web Saving Content extraction, metadata Preview, template selection, save External Sync External Integration Wallabag/Hoarder API Sync UI, conflict resolution
1. Cmd+Shift+P → Type "youtube"
2. Paste URL
3. Backend:
- Extract transcripts (yt-dlp)
- AI chapter detection (LLM)
- Generate summary (LLM)
4. Frontend:
- Display video embed
- Render timestamp list
- Display per-chapter summary
5. Click → Jump to that time
6. "Save" → Create note
1. Cmd+Shift+P → Type "chat"
2. "Summarize meeting minutes related to Project X"
3. Backend:
- Create query embedding
- Semantic search (tantivy)
- Call LLM with relevant note context
- Generate response
4. Frontend:
- Render chat bubbles
- Display source note links (Visual RAG)
5. Click source → Go to that note
1. Cmd+Shift+P → Type "pdf"
2. Select PDF file
3. Backend:
- Parse PDF
- Detect tables
- Convert to Markdown
4. Frontend:
- PDF preview
- Preview extracted tables
- Editable Markdown
5. "Insert" → Insert into current note
Category Price Contents Core (OSS) Free Full functionality of Rust backend, CLI usable Obsidian Plugin $29 one-time Polished UI, Obsidian integration, support, updates Team License $99/team (5 pax) Plugin + shared settings, priority support
Subscription Model Problem One-time Model Advantage Readwise $120/yr → Complaints about cost $29 = 3 months of subscription Backlash against Smart Connections going paid Buy once, use forever Subscription fatigue Low psychological resistance
Strategy Description Paid Major Updates Separate purchase for major versions like v2.0, v3.0 (discounts) Team License B2B revenue source Sponsorship GitHub Sponsors, corporate support Expansion Platforms Raycast extension, VSCode extension, etc.
Conservative Scenario (Year 1) :
Downloads: 5,000~15,000
Conversion rate: 2~3%
Sales: 100~450 cases
Revenue: $2,900~$13,050
Optimistic Scenario (Year 1) :
Downloads: 20,000~30,000
Conversion rate: 3~5%
Sales: 600~1,500 cases
Revenue: $17,400~$43,500
Key : First year at side project level. Significant growth in years 2~3.
Week Milestone Details 1-2 Project Setup Rust project structure, JSON-RPC server, CI/CD 3-4 YouTube Module yt-dlp integration, transcript extraction, metadata 5-6 PDF Module Text extraction, table detection, basic OCR 7-8 RSS Module Feed parsing, article extraction, storage
Phase 1 Goals :
Public unified-launcher-core on GitHub
Basic features testable via CLI
JSON-RPC API documentation
Week Milestone Details 9-10 AI Foundation llama.cpp integration, embedding, tantivy index 11-12 RAG Pipeline Semantic search, context composition, response generation 13-14 External API Wallabag, Hoarder API clients
Phase 2 Goals :
Completion of AI features
Completion of external service integration
Week Milestone Details 15-16 Plugin Foundation Obsidian API integration, IPC bridge, settings system 17-18 Command Palette Raycast-style UI, module switching 19-20 Module UI Completion of UI for YouTube/PDF/AI/RSS modules
Phase 3 Goals :
Launch of paid plugin
License system setup
Payment integration (Gumroad/Paddle)
Week Milestone Details 21-22 Beta Testing Closed beta, feedback collection, bug fixes 23-24 Launch Marketing, documentation, community setup
Total Duration : ~24 weeks (6 months)
Risk Impact Probability Mitigation Strategy Emergence of free UI Medium Low Compete with quality/speed, community building Obsidian policy change High Low Use API first, monitor policies Rust Sidecar deployment Medium Medium Cross-platform CI, optional download LLM model size Medium Medium Light model by default, large model optional Development delay Medium Medium Reduce MVP scope, gradual release
Metric Goal Core GitHub Stars 500+ Plugin Sales 200+ Discord Members 500+ NPS 50+
Metric Goal Core GitHub Stars 2,000+ Plugin Sales (Cumulative) 1,000+ Monthly Active Users 5,000+ Core Contributors 20+
Competitor Their Weakness Our Strength Readwise $120/yr subscription, cloud dependency $29 one-time, 100% local Smart Connections Slow, unstable UI, backlash against paid Rust performance, stable UI Individual Plugins Fragmented, complex settings Unified UX, Zero Config Copilot Lag, freezing Rust backend performance
Open Source Engine : Technical trust, community verification
Rust Performance : Breaking JS plugin limits
One-time Purchase : Resolving subscription fatigue
Unified UX : Raycast-level integrated experience
Local First : Privacy, offline usage
Proven Demand : Omnivore termination, Smart Connections dissatisfaction → Alternatives needed
Clear Differentiation : OSS Engine + Paid UX = Trust + Value
Technical Moat : Rust Sidecar = Entry barrier
Reasonable Price : $29 one-time = Low resistance
Scalable : Engine reusable for other platforms
1. Core engine quality → Gain community trust
2. UI Polishing → Perception of "$29 value"
3. Community Building → Viral growth
4. Rapid feedback incorporation → User loyalty
✅ Market research completed
✅ Competitive analysis completed
✅ PRD completed (v2.0 - OSS Core model)
⬜ Tech Spike: Rust JSON-RPC server PoC
⬜ Tech Spike: Obsidian IPC bridge PoC
⬜ Start MVP development
This document is a planning phase document and will be updated as development progresses.