A conversational AI agent for your Obsidian vault, connected via MCP.
Project description
obsidian-agent
A conversational AI agent for your Obsidian vault. Ask it to find notes, summarize what you wrote last week, fix broken links, tag things, or edit a note — it figures out which vault operations to run and does it, chaining multiple steps together when needed.
Built on MCP (the same protocol Claude Desktop uses for tool access) and OpenRouter for the LLM, so you can point it at whichever model you like.
Requirements
- Python 3.11+
- An OpenRouter API key (free tier available)
- An Obsidian vault on your local filesystem
Install
pip install git+https://github.com/ZedoMak/obsidian-agent.git
This pulls in obsidian-mcp (the vault-access server) automatically —
no separate install step needed.
First run
obsidian-agent
You'll be asked three things once, and never again:
- your OpenRouter API key
- the absolute path to your vault
- which model to use (defaults to a free-tier model if you're not sure)
This gets saved to ~/.config/obsidian-agent/config.toml. Change it later
with obsidian-agent config --reset, or override any single value with an
environment variable: OPENROUTER_API_KEY, OBSIDIAN_VAULT_PATH, AGENT_MODEL.
Usage
obsidian-agent # start chatting with your vault
obsidian-agent doctor # troubleshooting: checks obsidian-mcp is installed
# and can actually reach your vault
obsidian-agent config # view current config
Inside a chat session:
| Command | Does |
|---|---|
/help |
list commands |
/tools |
list every vault operation the agent can call |
/clear |
wipe conversation history, start fresh |
/exit |
quit (also: exit, quit, Ctrl+D) |
What it can actually do
Anything the underlying obsidian-mcp server exposes — reading, creating,
editing, and deleting notes; searching by text, tag, date, or regex;
managing tags; finding backlinks and broken links; listing orphaned notes.
Run /tools inside a session to see the live list for your installed version.
The agent always reads a note before editing it, so it won't blindly overwrite content — this is a system-level instruction, not something you need to ask for each time.
Troubleshooting
obsidian-mcp was not found on your PATH
Run obsidian-agent doctor — it'll tell you exactly what's missing and how
to fix it.
Something else broke
This project pins a few dependency versions deliberately
(fastmcp==2.8.1, pydantic<2.12) because of real breaking changes
upstream. If you're hacking on the source directly rather than using
pip install, don't loosen those pins without checking obsidian-agent doctor
still passes afterward.
Contributing
Issues and PRs welcome. This is a young project — expect rough edges.
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file obsidian_agent_cli_app-0.1.0.tar.gz.
File metadata
- Download URL: obsidian_agent_cli_app-0.1.0.tar.gz
- Upload date:
- Size: 8.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa178a1260749a88be1b512884e87bfd9f4165f904908beb35ff003cedf6fdab
|
|
| MD5 |
22944ec2b63030a91febbb73411929e3
|
|
| BLAKE2b-256 |
27b214da182cd4c6f74c3d3ac2810834d1e4b83640131c785320792c2b3f3132
|
File details
Details for the file obsidian_agent_cli_app-0.1.0-py3-none-any.whl.
File metadata
- Download URL: obsidian_agent_cli_app-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6ebd768259bec6824afd4ed7a860d7dc1682338554e16276aacdcd20223fbf8
|
|
| MD5 |
d477a1c1ff1024d3dfce032f31eb2fa3
|
|
| BLAKE2b-256 |
0a855562d98871d86d8100039cdc3b611f142fe22289cbf61b04ce869f0950bf
|