ObsidianMate is an intelligent, AI-powered assistant designed to supercharge your Obsidian note-taking workflow. Leveraging the power of Large Language Models (LLMs) like Gemini and GPT-4o, it acts as a "second brain" that helps you organize thoughts, summarize conversations, and interact directly with your Obsidian vault.
- π Table of Contents
- π§ Project Overview
- π Features
- π Architecture
- π Project Structure
- π Installation
- π» Usage
- π€ Contributing
- π License
- π Acknowledgments
Managing a growing knowledge base in Obsidian can be overwhelming. Users often struggle to quickly summarize discussions, organize unstructured thoughts into structured notes, and interact with their vault without breaking their flow.
ObsidianMate provides a unified AI agent interface that integrates directly with your workflow. It can hold conversations, filter irrelevant information, generate smart notes, and perform actions within your Obsidian vault using the Model Context Protocol (MCP).
- Boost Productivity: Automate the tedious process of summarizing and formatting notes.
- Seamless Integration: Interact with your vault using natural language.
- Flexible AI: Powered by Google's ADK, supporting multiple LLM backends.
- π€ Intelligent Chat Agent: A general-purpose assistant capable of answering questions and helping with brainstorming.
- π Smart Notes Pipeline: Automatically filters irrelevant chit-chat from conversations and summarizes key points into clean, Markdown-formatted notes.
- π Obsidian Integration: Directly interacts with your Obsidian vault to read and manage notes (powered by MCP).
- πΊ YouTube Transcript Support: Extract transcripts from YouTube videos for summarization and analysis.
- π¨ Excalidraw Support (Coming Soon): Future integration for handling visual notes and diagrams.
ObsidianMate is built on a modular agentic architecture using the Google Agent Development Kit (ADK).
- Root Agent (
ObsidianMate Agent): The main entry point that orchestrates tasks. - Sub-Agents: Specialized agents for specific tasks:
Chat Agent: Handles general queries.Smart Notes Agent: Processes and summarizes text.Obsidian Interaction Agent: Manages vault operations via MCP.YouTube Transcript Agent: Extracts transcripts from YouTube videos.
- Tools & MCP: Uses the Model Context Protocol to securely connect to external tools like the Obsidian API and Dockerized services.
- Backend: A robust FastAPI server manages sessions and API endpoints.
ObsidianMate/
βββ config/ # Configuration files (YAML)
βββ docker/ # Docker configurations for MCP servers
βββ scripts/ # Helper scripts for setup and running
βββ src/
β βββ controllers/ # Business logic controllers
β βββ core/ # Core agent logic and tools
β β βββ obsidian_mate/
β β β βββ agent.py # Root agent definition
β β β βββ sub_agents/ # Specialized sub-agents
β β βββ tools/ # Tool implementations
β βββ models/ # Data models and enums
β βββ routes/ # FastAPI route definitions
β βββ stores/ # Data storage and LLM templates
β βββ utils/ # Utility functions
βββ main.py # Application entry point
βββ pyproject.toml # Project metadata and build config
βββ requirements.txt # Python dependencies
- Python 3.12 or higher
- Docker (for MCP servers)
- An Obsidian Vault
-
Clone the Repository
git clone https://github.com/Fawzy-AI-Explorer/ObsidianMate.git cd ObsidianMate -
Set up a Virtual Environment
python3 -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install Dependencies
pip install -r requirements.txt
-
Configuration
- Ensure you have your
GOOGLE_API_KEYandOBSIDIAN_API_KEYset in your environment or configuration files. - Check
config/config.yamlfor application settings.
- Ensure you have your
-
Start MCP Servers (Docker)
The project uses Docker containers for MCP servers (Obsidian and YouTube Transcript).
cd docker cp .env.example .env # Configure your keys in .env docker-compose up -d cd ..
You can start the FastAPI server using the provided script:
sh scripts/run_app.shThis will start the server at http://0.0.0.0:8000.
To use the Google ADK visual interface for testing and debugging agents:
adk web- Docker: Used to run the Obsidian MCP server. Ensure Docker is running before starting the agent if you plan to use vault interactions.
- Google ADK: The core framework driving the agent's behavior.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
Thanks to all the amazing people who have contributed to this project!
Special thanks to the open-source community and the teams behind FastAPI, Google ADK, and Obsidian.
