Project Files
docs / 01_PRD.md
The core objective of the OmniMind LM Studio Plugin is to eliminate friction when using local LLMs to interact with personal knowledge bases. Specifically, it bridges Obsidian (knowledge graph) and Zotero (reference library) directly inside the LM Studio chat interface.
By leveraging an embedded vector database and structured, deterministic agent workflows (via LangGraph), the plugin enables even small, locally-hosted LLMs to act with high capability, allowing users to:
[@citation_key]) and native wikilinks ([[Note Name]]).As a user, I want to install the plugin in LM Studio, point it to my Obsidian Vault and Zotero database, and have it automatically index my files without complex Python installations or terminal commands.
As a user asking a complex question about a topic, I want the system to utilize a structured workflow. The agent should search my notes, grade the retrieved documents for relevance, and autonomously rewrite its query and search again if the context isn't good enough, before synthesizing the final answer.
As a user drafting a literature review, I want to ask the LLM to synthesize recent papers. The LLM should return markdown text that I can copy-paste directly into Obsidian, complete with accurate [@smith2024] citations and [[Topic Idea]] wikilinks.
As a user synthesizing research, I want to instruct the LLM to create a new synthesis note directly in my Obsidian Vault, properly formatted with frontmatter, backlinks, and references, avoiding the manual step of copy-pasting.
zotero.sqlite locally to extract PDF attachments, parse text, and map to citation keys..md files, recognizing YAML frontmatter and [[wikilinks]].chokidar) to re-index Obsidian notes as they are modified in real-time./v1/embeddings endpoint or internal SDK llm.embed() to ensure no data leaves the machine.Instead of relying on zero-shot LLM tool calling, the plugin must use LangGraph to orchestrate explicit state machines for complex tasks. Example tools/nodes include:
retrieve_context: Vector search across both Obsidian and Zotero.grade_documents: Ask the LLM to evaluate if the retrieved documents answer the query.get_note_content: Explicit retrieval of a specific note or PDF by its title/citation key (following a wikilink).create_obsidian_note: Writes a new .md file to the Obsidian vault with generated content.