obsidian-analysis
๐ง Generate semantic embeddings for your Obsidian vault using LM Studio and Nomic embeddings. Search your notes using natural language and explore with interactive UMAP visualizations.
- Commits
- 11
- Files
- 76
- Size
- 23.7 MB
- Langs
- 5
- Created
- Jun 13, 2025
- Last push
- about 1 year ago
๐ง Obsidian Embeddings
Generate semantic embeddings for your Obsidian vault using LM Studio and Nomic embeddings. Search your notes using natural language!
Setup
-
Install dependencies:
npm install -
Configure your environment:
cp .env.example .envEdit
.envwith your settings:OBSIDIAN_VAULT_PATH=/path/to/your/obsidian/vault LM_STUDIO_BASE_URL=http://localhost:1234 NOMIC_MODEL_NAME=nomic-embed-text-v1.5 -
Start LM Studio:
- Launch LM Studio
- Load the Nomic embedding model (
nomic-embed-text-v1.5) - Start the local server
Usage
Generate Embeddings
Process all your Obsidian notes and generate embeddings:
npm run generate
Search Your Notes
Search using natural language:
npm run search "machine learning concepts"
npm run search "productivity tips" --limit 5
Check Status
View system status and configuration:
npm start status
Features
- Intelligent Chunking: Splits notes into semantic chunks
- Batch Processing: Efficient embedding generation
- Semantic Search: Find notes by meaning, not just keywords
- Local & Private: Everything runs on your machine
- Fast SQLite Database: Quick search and retrieval
Commands
npm start generate- Generate embeddings for all notesnpm start export- Export embeddings for visualizationnpm start analyze- Analyze embedding database statisticsnpm start search <query>- Search notes semanticallynpm start status- Check system status
Visualization
After generating embeddings, export them for visualization:
# Export as JSON (default)
npm start export
# Export as CSV for analysis
npm start export -- --format csv
# Export for Python/NumPy
npm start export -- --format npy
Python Visualization Examples
Install Python dependencies:
cd visualization
pip install -r requirements.txt
Create UMAP visualization:
python umap_example.py --input ../exports/embeddings_2024-*
Advanced UMAP Exploration: Generate and compare 64 different UMAP parameter combinations:
python src/generate-64-umap-combinations.py
Then explore results in the interactive web interface at umap-explorer/.
Create t-SNE visualization:
python tsne_example.py --input ../exports/embeddings_2024-*
Export Formats
- JSON: Full data with embeddings and metadata
- CSV: Flattened format for spreadsheet analysis
- NPY: Separate arrays for Python/NumPy workflows
- PKL: Pandas-ready format with conversion scripts
Requirements
- Node.js 18+
- LM Studio with Nomic embedding model
- Obsidian vault with markdown files
- Python 3.8+ (for visualizations)