Version: 0.1.38 (Unreleased)
Offline-first AI assistant for Obsidian with comprehensive backend services, semantic search, and voice input support.
Key Documentation:
- docs/README.md - Comprehensive topic navigation - START HERE!
- .github/copilot-instructions.md - Architecture & v0.1.35 migration guide
- docs/guides/ - Comprehensive guides and tutorials
- docs/reference/ - Reference materials and analysis
- docs/architecture/ - Technical architecture documentation
- docs/production/ - Production deployment guides
Architecture Updates (v0.1.35+):
- ✅ Module structure:
backend/→agent/(see .github/copilot-instructions.md) - ✅ Models directory: Centralized to
./models/at root level - ✅ All service patterns updated for improved modularity
- ✅ 100% backward compatible with existing configurations
Recent Consolidation (Oct 20-22, 2025):
- ✅ Reorganized documentation into structured docs/ directory (Oct 22)
- ✅ Created docs/ with 6 subdirectories for better organization
- ✅ Moved 50+ reference files to appropriate docs/ subdirectories
- ✅ Moved 40+ status and completion documentation to docs/historical/
- ✅ Cleaned root directory: 100+ files → ~15 essential files
- ✅ Updated README.md with documentation navigation
- ✅ Created docs/README.md with comprehensive navigation guide
- See docs/README.md for details
- Features
- Quick Start
- Architecture
- Configuration
- Usage
- Enterprise Features
- API Documentation
- Testing & Quality Assurance
- Code Quality Standards
- Performance & Optimization
- Documentation
- Troubleshooting
- Documentation Governance
- Contributing
- License
- 🤖 Local LLM Integration: Support for LLaMA, GPT4All, and other offline models
- 🔍 Semantic Search: ChromaDB-powered vector search across your notes
- 🎤 Voice Input: Speech-to-text transcription with Vosk
- 📄 Document Processing: Index Markdown, PDF, and web content
- ⚡ Multi-Level Caching: L1-L4 caching strategy for optimal performance
- 🔐 Security: Encryption, authentication, and secure data handling
- 📊 Analytics Dashboard: Track semantic coverage and QA history
- 🔄 Auto-Linking: Generate semantic links between related notes
- 🔒 SSO Authentication: Azure AD, Google, Okta, SAML, LDAP
- 🏢 Multi-Tenant Support: Isolated data and settings per organization
- 👥 Role-Based Access Control: Granular permissions and user management
- 📋 Compliance: GDPR and SOC2 compliance tools and audit trails
- 📈 Admin Dashboard: Comprehensive management interface
For the impatient:
# 1. Clone and setup (2 minutes)
git clone https://github.com/UndiFineD/obsidian-AI-assistant.git
cd obsidian-AI-assistant
./setup.ps1 # Windows
# or
bash setup.sh # Linux/macOS
# 2. Start backend (1 minute)
cd agent
python -m uvicorn backend:app --reload
# 3. Verify it works (1 minute)
curl http://localhost:8000/health # Should return {"status":"healthy",...}
# 4. Use in Obsidian (1 minute)
# • Open Obsidian → Settings → Community Plugins → Enable "Obsidian AI Agent"
# • Click the AI Assistant ribbon icon
# • Ask a question!That's it! Your AI assistant is ready to use.
- Python 3.11 or higher
- Obsidian 1.5 or higher
- 4GB RAM minimum (8GB recommended)
- Optional: CUDA-capable GPU for faster inference
Linux/macOS:
bash setup.shWindows PowerShell:
.\setup.ps1The setup script will:
- ✅ Create Python virtual environment
- ✅ Install all dependencies
- ✅ Download AI models (GPT4All, embeddings)
- ✅ Set up vector database
- ✅ Prepare plugin files
# Activate virtual environment
source .venv/bin/activate # Linux/macOS
# or
.\venv\Scripts\Activate.ps1 # Windows
# Start FastAPI backend (agent/ directory)
cd agent
python -m uvicorn backend:app --host 127.0.0.1 --port 8000 --reload- Copy
.obsidian/plugins/obsidian-ai-agent/to your vault's plugins directory - Open Obsidian → Settings → Community Plugins
- Enable "Obsidian AI Agent"
- Configure plugin settings:
- Backend URL:
http://localhost:8000 - Vault Path: Path to your notes directory
- Backend URL:
- Visit
http://localhost:8000/health- should return "healthy" - Visit
http://localhost:8000/docs- interactive API documentation - In Obsidian, click the AI Assistant ribbon icon
That's it! You're ready to start using the AI assistant.
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ Obsidian Plugin │────▶│ FastAPI Backend │────▶│ AI Models │
│ • UI Components │ │ • REST APIs │ │ • LLaMA / GPT4All │
│ • Voice Input │ │ • Health Checks │ │ • Embeddings │
│ • Settings │ │ • Vector Search │ │ • Vosk (Voice) │
└─────────────────────┘ └─────────────────────┘ └─────────────────────┘
│
▼
┌─────────────────────┐
│ Storage Layers │
│ • ChromaDB │
│ • Multi-level Cache│
│ • SQLite Logs │
└─────────────────────┘
obsidian-ai-agent/
├── agent/ # FastAPI backend
│ ├── backend.py # Main application
│ ├── settings.py # Configuration management
│ ├── modelmanager.py # AI model lifecycle
│ ├── embeddings.py # Vector operations
│ ├── indexing.py # Document processing
│ ├── caching.py # Multi-level cache
│ ├── security.py # Authentication & encryption
│ ├── voice.py # Speech recognition
│ ├── performance.py # Performance optimization
│ ├── models/ # AI model files (*.gguf, embeddings)
│ ├── cache/ # Cached embeddings and responses
│ └── vector_db/ # ChromaDB storage
├── .obsidian/plugins/obsidian-ai-agent/ # Obsidian plugin
│ ├── main.js # Plugin entry point
│ ├── manifest.json # Plugin metadata
│ ├── backendClient.js # API communication
│ ├── rightPane.js # UI components
│ ├── voiceInput.js # Voice recording
│ ├── enterpriseAuth.js # SSO authentication (optional)
│ └── styles.css # Plugin styling
├── tests/ # Comprehensive test suite
│ ├── agent/ # Backend unit tests
│ ├── integration/ # Integration tests
│ └── conftest.py # Test configuration
├── docs/ # Detailed documentation
├── openspec/ # Documentation governance
├── setup.ps1 # Windows setup script
├── setup.sh # Linux/macOS setup script
└── requirements.txt # Python dependencies
Settings are loaded in this order (later overrides earlier):
- Code defaults (lowest priority)
agent/config.yamlfile- Environment variables (highest priority)
# agent/config.yaml
# Server settings
agent_url: 'http://127.0.0.1:8000'
api_port: 8000
allow_network: false # Enable web content fetching
continuous_mode: false # Continuous processing mode
# Paths
vault_path: 'vault' # Path to Obsidian vault
models_dir: 'agent/models' # AI models directory
cache_dir: 'agent/cache' # Cache directory
# AI Model settings
model_backend: 'llama_cpp' # 'llama_cpp' or 'gpt4all'
model_path: 'agent/models/mistral-7b-instruct-v0.1.Q4_0.gguf'
embed_model: 'sentence-transformers/all-MiniLM-L6-v2'
gpu: true # Use GPU acceleration if available
# Vector database
vector_db: 'chromadb'
top_k: 5 # Number of search results
chunk_size: 1000 # Document chunk size
chunk_overlap: 200 # Chunk overlap for context
similarity_threshold: 0.7 # Minimum similarity score
# Voice recognition
vosk_model_path: 'agent/models/vosk-model-small-en-us-0.15'
# Caching
cache_ttl: 3600 # Cache time-to-live (seconds)
cache_max_size: 1000 # Maximum cache entries# Core settings
export API_PORT=8000
export VAULT_PATH="/path/to/vault"
export GPU=true
# Model settings
export MODEL_BACKEND=llama_cpp
export MODEL_PATH="/path/to/model.gguf"
# Performance
export CACHE_TTL=3600
export MAX_CONNECTIONS=100Update settings without restarting the server:
# Get current configuration
curl http://localhost:8000/api/config
# Update specific settings
curl -X POST http://localhost:8000/api/config \
-H "Content-Type: application/json" \
-d '{"vault_path": "/new/vault/path", "gpu": true}'
# Reload configuration from file
curl -X POST http://localhost:8000/api/config/reload-
Start the Backend
cd backend python -m uvicorn backend:app --host 127.0.0.1 --port 8000 --reload -
Open Obsidian and enable the plugin
-
Ask Questions
- Click the AI ribbon icon (🎲)
- Type your question
- Question is added to the processing queue
-
Process Queue
- Click the Start Queue icon (▶)
- Tasks are processed in order
- Results appear in your notes
-
Review Analytics
- Click the Analytics icon (📊)
- View semantic coverage and QA history
- Click the microphone icon in the plugin
- Speak your question
- Speech is transcribed to text
- Question is added to the queue
Index your vault for semantic search:
curl -X POST http://localhost:8000/reindexFetch and index web pages (requires allow_network: true):
curl -X POST http://localhost:8000/web \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com", "max_depth": 2}'Search your notes semantically:
curl -X POST http://localhost:8000/api/search \
-H "Content-Type: application/json" \
-d '{"query": "quantum computing", "top_k": 10}'Enterprise features provide advanced authentication, multi-tenancy, compliance, and administration capabilities for organizational deployments.
- SSO Authentication: Azure AD, Google Workspace, Okta, SAML 2.0, LDAP
- Multi-Tenant Architecture: Isolated data storage per organization
- Role-Based Access Control: Admin, Manager, Analyst, User roles
- Compliance Tools: GDPR data management, SOC2 controls, audit logging
- Admin Dashboard: User management, tenant configuration, security monitoring
Enable enterprise features in agent/config.yaml:
enterprise:
enabled: true
sso:
providers:
- azure_ad
- google
- okta
default_provider: azure_ad
tenant:
multi_tenant: true
default_tenant: 'default'
storage_quota_gb: 100
compliance:
gdpr: true
soc2: true
audit_retention_days: 2555 # 7 years
security:
session_timeout: 3600
mfa_required: false
password_policy: 'strong'Once enabled:
- Admin Dashboard: Settings → Enterprise → Admin Dashboard
- SSO Login: Settings → Enterprise → Enterprise Login
- Configuration: Settings → Enterprise → Enterprise Configuration
- User Management: Admin Dashboard → Users tab
- Tenant Management: Admin Dashboard → Tenants tab
- Security Monitoring: Admin Dashboard → Security tab
- Compliance Reports: Admin Dashboard → Compliance tab
# Enterprise status
GET /api/enterprise/status
# SSO authentication
POST /api/enterprise/auth/sso
# Tenant management
GET /api/enterprise/tenants
POST /api/enterprise/tenants
# User management
GET /api/enterprise/users
POST /api/enterprise/users
# Compliance
GET /api/enterprise/compliance/gdpr
GET /api/enterprise/compliance/soc2
POST /api/enterprise/compliance/auditFor complete API documentation, including all endpoints, request/response examples, and interactive Swagger UI, see API_REFERENCE.md.
Quick Links:
- Swagger UI: http://localhost:8000/docs (when backend is running)
- ReDoc: http://localhost:8000/redoc (when backend is running)
- Complete Reference: docs/API_REFERENCE.md
| Category | Tests | Pass Rate | Status |
|---|---|---|---|
| Backend Core | 567 | 100% | ✅ Production Ready |
| Plugin Integration | 165 | 100% | ✅ Complete |
| Enterprise Features | 139 | 100% | ✅ Full Coverage |
| OpenSpec Governance | 90 | 98.9% | ✅ Compliant |
| Performance Tests | 80 | 100% | ✅ Validated |
| TOTAL | 1042 | 98.2% | ✅ Production Ready |
Key Metrics:
- 1021 tests passed, 2 skipped, 19 failed
- 88%+ backend coverage (up from 59.1%)
- Zero critical failures in production components
- Execution time: ~180 seconds
Comprehensive Test Suite:
# Activate environment
source .venv/bin/activate # Linux/macOS
.\venv\Scripts\Activate.ps1 # Windows
# Run all tests
pytest tests/ -v --cov=backend --cov-report=html
# Run specific categories
pytest tests/agent/ -v # Backend only
pytest tests/integration/ -v # Integration only
pytest tests/performance/ -v # Performance only
# Run specific modules
pytest tests/agent/test_caching.py -v # Cache tests
pytest tests/agent/test_security.py -v # Security testsCoverage Report:
# Generate HTML coverage report
pytest --cov=backend --cov-report=html --cov-report=term
# Open report
open htmlcov/index.html # macOS
xdg-open htmlcov/index.html # Linux
start htmlcov/index.html # Windows| Module | Before | After | Improvement | Tests Added |
|---|---|---|---|---|
| Cache Operations | 96.3% | 98.2% | +1.9% | 2 |
| Log Management API | 13.9% | 75.9% | +62.0% | 43 |
| Enterprise Tenant | 49.0% | 96.2% | +47.2% | 55 |
| Enterprise Auth/JWT | 77.2% | 84.2% | +7.0% | 16 |
| Totals | 59.1% | 88.6% | +29.5% | 116 |
See docs/TEST_COVERAGE_IMPROVEMENTS_OCTOBER_2025.md for complete details.
The plugin follows PEP8-inspired JavaScript conventions:
Formatting:
- 4-space indentation (consistent with Python backend)
- No trailing whitespace
- Double quotes for strings
- Semicolons for statement termination
- 100-character line length limit
Naming Conventions:
- PascalCase for classes (
BackendClient,VoiceRecorder) - camelCase for functions (
startListening,sendRequest) - UPPER_CASE for constants (
ENTERPRISE_AVAILABLE,DEFAULT_TIMEOUT) - Underscore prefix for private members (
_privateMethod)
Code Structure:
- Proper module exports with
module.exports - Try-catch blocks for error handling
- Async/await for asynchronous operations
- Proper cleanup in destroy() methods
# JavaScript quality validation
pytest tests/plugin/test_js_code_quality.py -v
# Automatic style fixing
python fix_js_quality.py
# Python linting
ruff check agent/
bandit -r agent/ -f json -o tests/bandit_report.json
# Type checking
mypy agent/ --ignore-missing-importsThe project uses Trunk linting framework with:
- ruff: Fast Python linter (E, F, W, C, I rules)
- bandit: Security vulnerability scanning
- prettier: JavaScript/TypeScript formatting
- markdownlint: Markdown consistency
- checkov: Infrastructure as code security
- actionlint: GitHub Actions validation
| Tier | Target | Operations |
|---|---|---|
| Tier 1 | <100ms | Health checks, status, config, cache lookup |
| Tier 2 | <500ms | Cached ask, simple search, voice transcription |
| Tier 3 | <2s | AI generation, document search, embeddings |
| Tier 4 | <10s | Web analysis, large document indexing |
| Tier 5 | <60s | Vault reindex, model loading |
Multi-Level Caching:
- L1 (Memory): In-memory cache for hot data (TTL: 300s)
- L2 (Disk): Persistent file cache (TTL: 3600s)
- L3 (Database): Long-term storage (TTL: 86400s)
- L4 (Vector DB): Semantic search cache
Connection Pooling:
- Database connection pooling (min: 2, max: 10)
- AI model instance pooling (1-3 instances)
- HTTP client connection reuse
Async Processing:
- Background task queue for indexing
- Async I/O for all network operations
- Non-blocking document processing
Resource Management:
- Smart memory allocation for large documents
- CPU affinity for model inference
- Process priority management
Minimum:
- CPU: 2 cores, 2GHz
- RAM: 4GB
- Storage: 5GB SSD
- Network: 10Mbps
Recommended:
- CPU: 4+ cores, 3GHz+
- RAM: 16GB
- Storage: 20GB NVMe SSD
- GPU: CUDA-capable (optional, 3-5x performance boost)
Production:
- CPU: 8+ cores, 3.5GHz+ (Intel Xeon/AMD EPYC)
- RAM: 32GB+ (64GB for enterprise)
- Storage: 100GB+ NVMe SSD, 3000+ IOPS
- GPU: NVIDIA RTX 4080+ or Tesla V100+ (optional)
- Network: Gigabit ethernet, <10ms latency
Cache Configuration:
# agent/config.yaml
cache_ttl: 3600 # Increase for better hit rate
cache_max_size: 5000 # Increase for larger cache
cache_cleanup_interval: 300 # Adjust cleanup frequencyModel Selection:
# Use smaller models for faster inference
model_path: 'agent/models/mistral-7b-instruct-v0.1.Q4_0.gguf' # 4-bit quantized
# Use GPU acceleration
gpu: true
gpu_layers: 35 # Offload layers to GPUVector Search Tuning:
chunk_size: 500 # Smaller chunks = faster search
top_k: 3 # Fewer results = faster retrieval
similarity_threshold: 0.8 # Higher threshold = fewer resultsQuick Start:
- docs/getting-started/ - Get started in 5 minutes
For complete documentation:
- docs/README.md - Topic-based navigation (START HERE)
- docs/guides/ - Guides and tutorials
For API details:
- docs/API_REFERENCE.md - Complete API documentation
- docs/reference/ - Reference materials
For technical info:
- docs/architecture/ - Architecture documentation
- docs/production/ - Production guides
For reference materials:
- docs/reference/ - Task analysis and technical references
- docs/historical/ - Historical documents and archives
- docs/production/ - Troubleshooting and production guides
- docs/guides/ - Comprehensive solution guides
- Health Check Guide - Verify your installation
- Performance Troubleshooting - Optimize response times
- Architecture Guide - Architecture, migration guide, and development patterns
Problem: WinError 10013 or port already in use
Solution:
# Check what's using port 8000
netstat -ano | findstr :8000
# Kill the process
taskkill /PID <pid> /F
# Or use a different port
python -m uvicorn backend:app --port 8001Problem: FileNotFoundError for model files
Solution:
# Check models directory exists (at root level)
ls ./models/
# Download models manually to root ./models/ directory
cd ./models
curl -L -o mistral-7b-instruct-v0.1.Q4_0.gguf \
https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.1-GGUF/resolve/main/mistral-7b-instruct-v0.1.Q4_0.ggufProblem: Plugin folder exists but not showing in settings
Solution:
- Check file structure:
.obsidian/plugins/obsidian-ai-agent/ ├── main.js ├── manifest.json └── styles.css - Restart Obsidian
- Settings → Community Plugins → Reload plugins
- Enable "Obsidian AI Agent"
Problem: API requests taking >5 seconds
Solutions:
- Enable GPU acceleration:
gpu: truein config - Use smaller model: Switch to 7B instead of 13B
- Increase cache TTL:
cache_ttl: 7200 - Check system resources:
GET /status
Problem: CUDA out of memory or Python MemoryError
Solutions:
# Reduce model size
model_path: 'mistral-7b-instruct-v0.1.Q4_0.gguf' # 4-bit quantization
# Reduce context length
max_context_length: 2048
# Limit concurrent requests
max_workers: 2
# Reduce GPU memory usage
gpu_layers: 20 # Load fewer layers to GPU-
PowerShell Execution Policy:
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
-
Long Path Support: Enable in registry or use
\\?\prefix for paths
-
Permission Denied:
chmod +x setup.sh sudo chown -R $USER:$USER agent/models
-
Port 8000 in use:
lsof -i :8000 kill -9 <PID>
- Check the logs:
agent/logs/app.log - Visit the health endpoint: http://localhost:8000/health
- Check system status: http://localhost:8000/status
- Review documentation:
docs/directory - Open an issue: https://github.com/UndiFineD/obsidian-ai-agent/issues
For Users & Developers (5 min start)
- docs/getting-started/ - Installation and first run
- docs/guides/ - How to use and contribute
- docs/API_REFERENCE.md - API endpoints and usage
For Architects & Planners
- docs/architecture/ - System architecture documentation
- docs/reference/ - System design and specifications
For Security & Operations
- docs/production/ - Production deployment and operations
- docs/reference/ - Security and performance guides
For Testing & Quality
- docs/reference/ - Test coverage and quality reports
- docs/guides/ - Testing and validation procedures
Available Sections:
- getting-started/ - Quick start guides
- guides/ - Tutorials and how-to guides
- architecture/ - Technical architecture and design
- reference/ - API reference, specifications, and analysis
- production/ - Deployment, operations, and troubleshooting
- historical/ - Historical documents and archives
Operational (5 docs):
- DEPLOYMENT_SPECIFICATION.md - Secure deployment procedures
- HEALTH_MONITORING.md - System health and alerts
- PERFORMANCE_REQUIREMENTS_SPECIFICATION.md - Performance SLAs
- CI_CD_MAINTENANCE_GUIDE.md - CI/CD pipeline management
- RELEASE_AUTOMATION.md - Release automation
Technical Details (6 docs):
- CONFIGURATION_API.md - Runtime configuration management
- DATA_MODELS_SPECIFICATION.md - Data models and schemas
- PLUGIN_INTEGRATION_SPECIFICATION.md - Plugin architecture
- API_KEY_MANAGEMENT.md - API key and authentication
- JWT_SECRET_MANAGEMENT.md - JWT and secret handling
- ENTERPRISE_FEATURES_SPECIFICATION.md - Multi-tenant, RBAC, SSO
Quality & Testing (3 docs):
- TESTING_GUIDE.md - Testing procedures and patterns
- TESTING_STANDARDS_SPECIFICATION.md - Testing standards
- TEST_COVERAGE_IMPROVEMENTS_OCTOBER_2025.md - Coverage reports
Deployment & DevOps:
- DEPLOYMENT_SPECIFICATION.md - Deployment procedures
- CI_CD_MAINTENANCE_GUIDE.md - CI/CD pipeline management
- RELEASE_AUTOMATION.md - Release automation
Beginner (45 minutes):
- SETUP_README.md (15 min)
- CONTRIBUTING.md (10 min)
- API_REFERENCE.md (20 min)
Intermediate (1.5 hours):
- SYSTEM_ARCHITECTURE_SPECIFICATION.md (30 min)
- DEPLOYMENT_SPECIFICATION.md (20 min)
- TESTING_GUIDE.md (20 min)
Advanced (2 hours):
- SECURITY_SPECIFICATION.md (30 min)
- ENTERPRISE_FEATURES_SPECIFICATION.md (30 min)
- HEALTH_MONITORING.md (20 min)
- CI_CD_MAINTENANCE_GUIDE.md (20 min)
| Topic | Documents |
|---|---|
| Getting Started | SETUP_README, CONTRIBUTING |
| Architecture | SYSTEM_ARCHITECTURE_SPECIFICATION, PLUGIN_INTEGRATION_SPECIFICATION |
| API | API_REFERENCE, CONFIGURATION_API, API_KEY_MANAGEMENT |
| Security | SECURITY_SPECIFICATION, DEPLOYMENT_SPECIFICATION |
| Operations | HEALTH_MONITORING, PERFORMANCE_REQUIREMENTS_SPECIFICATION |
| Testing | TESTING_GUIDE, TEST_COVERAGE_IMPROVEMENTS_OCTOBER_2025 |
| Features | ENTERPRISE_FEATURES_SPECIFICATION, DATA_MODELS_SPECIFICATION |
This project uses OpenSpec for documentation governance to ensure consistency, quality, and proper review of material documentation changes.
Cross‑references:
- Archived change for
docs/TASKS.mdgovernance — seeopenspec/archive/update-doc-docs-tasks/ - Archived change for
openspec/AGENTS.mdgovernance — seeopenspec/archive/update-doc-agents/
- Project Context:
openspec/project.md- Project conventions - AI Agent Instructions:
openspec/AGENTS.md- AI coding assistant guidelines - Capability Specs:
openspec/specs/- Documentation requirements - Change Management:
openspec/changes/- Tracked documentation updates
Material changes to documentation require OpenSpec proposals:
- README.md, AGENTS.md, .github/copilot-instructions.md
- Documentation in
docs/directory - Architecture and specification documents
Minor changes (typos, clarifications) can be made directly.
- Run
pytest tests/ -vto validate documentation governance - All OpenSpec tests must pass for compliance
- Latest validation: 90/90 tests passed (100%)
See openspec/specs/project-documentation.md for detailed requirements.
We welcome contributions! Please follow these guidelines:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Run tests:
pytest tests/ -v - Commit with clear messages:
git commit -m "feat: Add amazing feature" - Push to your fork:
git push origin feature/amazing-feature - Open a Pull Request (PR)
- Follow PEP 8 for Python code
- Follow project JavaScript style guide
- Write tests for new features
- Update documentation as needed
- Check OpenSpec compliance for doc changes
The project uses a 13-stage OpenSpec workflow with three optimization lanes:
- Use for: README updates, documentation changes, guides
- Speed: < 5 minutes (67% faster than standard)
- Command:
python scripts/workflow.py --change-id my-change --lane docs
- Use for: New features, bug fixes, general changes
- Speed: ~15 minutes
- Command:
python scripts/workflow.py --change-id my-change
- Use for: Critical/security changes, production fixes
- Speed: ~20 minutes (more thorough validation)
- Command:
python scripts/workflow.py --change-id my-change --lane heavy
Learn more: See docs/guides/The_Workflow_Process.md
- All Pull Requests (PRs) require at least one review
- All tests must pass
- Code coverage should not decrease
- Documentation must be updated
- OpenSpec validation must pass
Author: Keimpe de Jong
License: MIT
Repository: https://github.com/UndiFineD/obsidian-ai-agent
This project builds on excellent open-source tools:
- FastAPI - Modern web framework
- LLaMA.cpp - LLM inference
- ChromaDB - Vector database
- Sentence Transformers - Embeddings
- Vosk - Speech recognition
- Obsidian - Note-taking platform
Status: Production Ready ✅
Version: 0.1.27 (Current Release)
Last Updated: October 20, 2025 (Documentation reorganized)
Test Coverage: 1021 passed, 2 skipped (98.2% success rate)
Backend Coverage: 88%+ (production-grade quality)
Documentation Status: ✅ Consolidated & organized (59.8% reduction in meta-docs, 100% content preserved)