Skip to main content

A conversational AI agent for your notes — Obsidian, Notion, and more — via MCP.

Project description

scribe

A conversational AI agent for your notes. Ask it to find things, summarize what you wrote, restructure a mess of files, fix broken links, tag things, or edit content directly — it figures out which operations to run and does it, chaining multiple steps together when the task needs it.

Built on MCP for tool access and OpenRouter for the LLM, so you can point it at whichever model you like. Currently supports Obsidian, with more backends (Notion and others) planned — see Roadmap.

Requirements

  • Python 3.11+
  • An OpenRouter API key (free tier available)
  • For Obsidian: a vault on your local filesystem

Install

pip install git+https://github.com/ZedoMak/scribe.git

This pulls in everything needed for the Obsidian backend automatically — no separate install step.

First run

scribe obsidian chat

You'll be asked for your OpenRouter API key and the absolute path to your vault, once. This is saved to ~/.config/scribe/config.toml. Redo setup any time with scribe obsidian config --reset, or override a single value with an environment variable: OPENROUTER_API_KEY, OBSIDIAN_VAULT_PATH, AGENT_MODEL.

Usage

Every backend follows the same command shape: scribe <backend> <command>.

scribe obsidian chat                                  # interactive session
scribe obsidian task "reorganize my Projects folder"   # one-off task, then exit
scribe obsidian search --query "authentication roadmap"
scribe obsidian summarize --file "Weekly Notes"
scribe obsidian tags --min-usage 5
scribe obsidian doctor                                 # troubleshooting
scribe obsidian config                                 # view current config

Interactive chat

scribe obsidian chat

Talk to your vault like you would to a person. Inside a session:

Command Does
/help list commands
/tools list every operation the agent can call
/clear wipe conversation history, start fresh
/exit quit (also: exit, quit, Ctrl+D)

One-off tasks

scribe obsidian task "merge my two Machine Learning folders and tag everything by topic"

Runs a single instruction to completion, then exits — useful for scripting or quick jobs where you don't want a full chat session.

For anything that changes files, task shows you a plan before doing anything:

╭─ proposed plan ──────────────────────────────────╮ │ 1. Move Model.md and DataSets.md into │ │ Machine Learning/Fundamentals/ │ │ 2. Create Machine Learning/Linear Regression/ │ │ and move the 3 related notes there │ │ 3. Tag all moved notes with #ml │ ╰────────────────────────────────────────────────────╯ Proceed with this plan? [y/N]

Nothing is touched until you approve. Skip the prompt with --yes/-y if you trust it and want it to just run (careful with this on anything destructive).

summarize, search, and tags are read-only shortcuts for common lookups — they skip the plan step since there's nothing to confirm.

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; moving and renaming notes and folders. Run /tools inside a chat session to see the live list.

The agent is instructed to survey your vault before restructuring it, trust successful operations instead of re-verifying obsessively, and skip (rather than force) anything that doesn't go as expected — these are lessons from real failures during development, not defaults you need to configure.

Troubleshooting

obsidian-mcp was not found on your PATH Run scribe obsidian doctor — it checks what's missing and how to fix it.

A task times out or seems stuck Individual tool calls are capped at 30 seconds; a stuck call will report a timeout instead of hanging forever. If a task genuinely needs to touch a lot of notes, it's normal for it to take a while — you'll see each tool call as it happens.

Something else broke This project pins a few dependency versions deliberately (fastmcp==2.8.1, pydantic<2.12) because of real breaking changes upstream in those libraries. If you're hacking on the source directly, don't loosen those pins without confirming scribe obsidian doctor still passes afterward.

Roadmap

  • Notion backend
  • Conversation history persistence across sessions
  • More granular per-backend safety controls

Contributing

Issues and PRs welcome. This is a young project — expect rough edges.

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scribe_agent-0.3.0.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scribe_agent-0.3.0-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

Details for the file scribe_agent-0.3.0.tar.gz.

File metadata

  • Download URL: scribe_agent-0.3.0.tar.gz
  • Upload date:
  • Size: 12.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for scribe_agent-0.3.0.tar.gz
Algorithm Hash digest
SHA256 e6b6cd541e83a4398626f7b9136a8bfa03b6cb656f728a7f1a58bc22fb8d3e00
MD5 9579e0e3e632f61364b4a3da72eb7856
BLAKE2b-256 f95a9cf37aac1520a1efebf552ce8d61fee45b8708fcf6dd76d60a1ea0459e08

See more details on using hashes here.

File details

Details for the file scribe_agent-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: scribe_agent-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 15.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for scribe_agent-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9e432a69db45c9371e25d975d93a9aaaecc6035bbeb71fe1c3026e0d897a72f8
MD5 787b4ae50978884fae8fa6d2f495ad3d
BLAKE2b-256 5c57a1be78e7a322532d4c1bab6762bd10dfcfb6653b6a929093a2fdb8936e42

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page