An AI assistant that helps you interact with your Obsidian vault through natural conversation.
Usage • Examples • Development • License
Obsidian Agent is an AI-powered assistant that connects to your Obsidian knowledge base, allowing you to:
- Have natural conversations about your notes
- Search your vault with semantic understanding
- Create new notes from conversations or external URLs
- Navigate complex note relationships
Built with LangGraph, LangChain, and modern LLMs (currently supports OpenAI and Google models).
Items that still need to be implemented in the near future:
- Human-in-the-loop Controls
- Note Editing: Implement the ability to safely update existing notes
- Advanced RAG Techniques: Implement hybrid search (keyword + semantic)
- Memory Management: Implement better conversation history and context handling
- Voice Interface
- Documentation
- Testing Framework
- Replace uv requirement: Use standard Python package management tools instead
- Remove Langchain API key dependency: Not sure currently if this can be done (Thanks Langchain!)
- Python 3.11 or higher
- uv - https://github.com/astral-sh/uv (requirement will be removed in the future)
.env
file (use.env.example
template)- An Obsidian vault
- API keys for either OpenAI or Google Gemini
- currently still requires Langchain API key (will change in the future)
- (optional) Jina.ai API key for faster and more reliable URL retrieving
Easiest way to run is just to run
make run
Alternatively to have a better control over langgraph backend and gradio frontend, you can run separetely
langgraph dev
This will launch the backend server on http://127.0.0.1:2024, and
python src/obsidian_agent/apps/gradio_app.py
Here are some examples of what you can ask the Obsidian Agent:
User: What do my notes say about meditation?
User: Can you read my note on Buddhism for me?
User: Create a new note called "Project Ideas" with a list of my recent project ideas we've discussed.
User: Can you summarize this article and create a note from it? https://example.com/interesting-article
User: What are all the notes connected to my "Personal Knowledge Management" note?
obsidian-agent/
├── src/
│ └── obsidian_agent/
│ ├── apps/ # UI applications (Gradio, Streamlit)
│ ├── core/ # Core logic and LangGraph components
│ │ ├── nodes/ # Graph nodes for different functionalities
│ │ └── models.py # Data models
│ └── utils/ # Utility functions
├── tests/ # Test files
└── langgraph.json # LangGraph configuration
This project is licensed under the MIT License - see the LICENSE file for details.