Skip to content

Obsidian community plugin: WASM-powered semantic search #606

@AlexMikhalev

Description

@AlexMikhalev

Summary

Obsidian community plugin that provides deterministic semantic search powered by terraphim's Aho-Corasick automata, compiled to WASM and running entirely in Obsidian's Electron runtime. Zero network, zero LLM, zero API key.

Architecture

Obsidian Plugin (TypeScript)
    |
    v
@terraphim/autocomplete (WASM)  <-- already exists as npm package
    |
    v
terraphim_automata (Rust -> WASM)  <-- already compiles to wasm32
    |
    v
User's vault (markdown files)

Existing WASM Infrastructure

  • terraphim_types has typescript + wasm features (tsify + wasm-bindgen)
  • terraphim_automata has typescript + wasm features
  • terraphim_ai_nodejs exists as Node.js native bindings
  • @terraphim/autocomplete is published on npm

Plugin Features

Core

  • Command palette: "Terraphim: Search concepts" -- type a term, get synonym-expanded results
  • Sidebar panel: persistent search with result list linking to vault files
  • Status bar: concept count and last build timestamp

Configuration

  • Settings tab:
    • Vault path (auto-detected)
    • Format: obsidian (default) / logseq / terraphim
    • Synonym property name (default: aliases for obsidian, synonyms for logseq)
    • Rebuild trigger: on file change / manual / on startup
    • Custom KG directory (optional, for dedicated concept files)

Integration

Development Plan

  1. Scaffold Obsidian plugin with obsidian-sample-plugin template
  2. Bundle @terraphim/autocomplete WASM module
  3. On startup: walk vault files, build thesaurus from aliases: + synonyms:: + #tags
  4. Register command palette action for search
  5. Register sidebar panel for persistent search
  6. File watcher for incremental thesaurus rebuild
  7. Settings UI

Submission to Community Registry

Affected Crates / Packages

  • terraphim_automata (ensure WASM build is up to date)
  • terraphim_ai_nodejs (may need to update WASM bindings)
  • New repo or directory: terraphim-obsidian-plugin

Estimated Effort

~2 days (scaffolding + WASM integration + settings + testing)

Dependencies

Part of

Epic #603

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions