Obsidian как общая база знаний для Claude, Claude Code и VSCode
Суть проблемы
Дано: рабочий процесс, который строится на трёх инструментах.
- VSCode + Claude Code: код проекта, разработка.
- Obsidian: документация: постановки задач, концепции, заметки, текущие вопросы.
- Приложение Claude (Desktop): обсуждения, планирование, работа над документами.
Приложение Claude и Obsidian связываются штатно: MCP-сервер filesystem в Claude Desktop получает путь к vault и напрямую читает и редактирует заметки. Эта связка настраивается один раз и дальше просто работает.
Проблема в третьем участнике. Claude Code по умолчанию ограничен рабочей директорией проекта: попросить его «сделай по концепции из Obsidian» нельзя, потому что vault лежит за пределами его песочницы. Приходится копировать содержимое заметок в чат руками или таскать файлы в проект.
Цель: дать Claude Code перманентный доступ к vault во всех проектах, научить каждый проект самостоятельно находить свою документацию и заодно причесать всё это в VSCode.
MCP или additionalDirectories?
Первая мысль — это сделать как в Claude Desktop: подключить тот же MCP-сервер filesystem. Claude Code это умеет, вплоть до импорта готовой конфигурации командой claude mcp add-from-claude-desktop.
Но для Claude Code это избыточный путь. В отличие от Desktop, у него уже есть собственные инструменты работы с файлами: Read, Edit, Grep, Glob. MCP-сервер их просто продублирует, а описания его инструментов будут загружаться в контекст каждой сессии и занимать там место.
Правильнее не добавлять новый инструмент, а расширить границу файловой системы, в которой работают штатные. Для этого существует настройка permissions.additionalDirectories.
Пошаговое решение
Схема из двух частей: глобальный доступ к vault (settings.json) и маршрутизация на уровне проекта (CLAUDE.md).
1. Глобальный доступ к vault
Настройки уровня пользователя живут в ~/.claude/settings.json — их читает и CLI, и расширение VSCode. Добавляем блок permissions:
{
"permissions": {
"additionalDirectories": [
"/Users/username/Library/Mobile Documents/iCloud~md~obsidian/Documents/MyVault"
]
}
}
Если файл уже существует (например, с выбором модели), то блок дописывается к имеющемуся содержимому, а не заменяет его.
Важно. Путь указывается абсолютный и целиком в кавычках: у iCloud-синхронизированного vault в пути есть пробел (Mobile Documents). Сам путь к своему vault проще всего скопировать из настроек MCP filesystem в Claude Desktop — он там уже прописан.
После этого Claude Code в любом проекте может читать и редактировать файлы vault штатными инструментами, без запроса разрешений.
2. Маршрутизация: секция в CLAUDE.md проекта
Глобальный доступ отвечает на вопрос «можно ли», но не «куда смотреть». Чтобы агент сам находил документацию проекта, в CLAUDE.md добавляется секция с путём к соответствующей подпапке vault:
## Project Documentation (Obsidian)
Project notes, requirements, and concept documents live in the Obsidian vault:
`/Users/username/Library/Mobile Documents/iCloud~md~obsidian/Documents/MyVault/MyProject/`
- When a task references requirements, concepts, or specs — look there first
(e.g. monetization concept, integration notes, current open questions)
- These are the user's personal notes synced via iCloud: NEVER edit files in this
folder unless the user explicitly asks
- Implemented features are documented separately in `docs/features/` (see below)
Три детали, которые здесь имеют значение:
- Примеры реальных документов в скобках помогают агенту сопоставить запрос с конкретным файлом, а не просто знать про абстрактную папку.
- Правило
NEVER edit— предохранитель.additionalDirectoriesдаёт не только чтение, но и запись, а vault синхронизируется по iCloud на все устройства. Без явного запрета агент в порыве рефакторинга может переписать заметки. - Граница между двумя видами документации: в vault агент только смотрит (постановки, концепции), доку по реализованным фичам пишет в
docs/проекта.
Для каждого следующего проекта процедура сводится к копированию секции с заменой пути на свою подпапку.
3. Проверка
Открываем новую сессию Claude Code (CLAUDE.md и settings.json читаются при старте сессии; перезапуск VSCode не требуется) и задаём вопрос без единого упоминания пути:
Какие сейчас текущие вопросы по проекту? Посмотри в документации.
Ожидаемое поведение: агент по CLAUDE.md понимает, где живёт документация, сам читает нужный файл из vault и пересказывает содержимое, без запроса разрешений и уточнений «а где искать?».
4. Косметика: multi-root workspace в VSCode
Финальный штрих — увидеть папку документации рядом с кодом в самом редакторе. File → Add Folder to Workspace, добавляем подпапку vault, сохраняем как .code-workspace.
Возникает мелкая неприятность: если папка в vault называется так же, как проект, в дереве появляются две почти одинаковые записи. Решается полем name в файле workspace, оно меняет отображаемое имя, не трогая папки на диске:
{
"folders": [
{
"name": "MyProject — Код",
"path": "."
},
{
"name": "MyProject — Документация (Obsidian)",
"path": "/Users/username/Library/Mobile Documents/iCloud~md~obsidian/Documents/MyVault/MyProject"
}
]
}
Имя самого workspace задаётся только именем файла .code-workspace — отдельного поля для него нет, а суффикс «(Workspace)» VSCode добавляет всегда.
Стоит помнить: добавление папки в workspace чисто редакторская вещь. Права Claude Code от неё не зависят, их определяют additionalDirectories из шага 1.
Нюансы
- CLAUDE.md из vault не подгружается. Директории из
additionalDirectoriesдают только доступ к файлам, memory-файлы оттуда в контекст не попадают. Для vault это плюс: заметки не засоряют контекст каждой сессии. Если такое поведение всё же нужно, есть переменная окруженияCLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1. - Версия Claude Code. В старых версиях встречались баги, когда
additionalDirectoriesне давал инструменту Read доступ вне проекта. Если доступ не появился, то первым делом стоит обновить Claude Code. - Разовая альтернатива. Когда перманентный доступ не нужен, ту же границу можно расширить на одну сессию: команда
/add-dir /путьвнутри сессии или флагclaude --add-dirпри запуске. - Агент не закрывает задачи в vault. Обратная сторона правила
NEVER edit: завершив фичу, галочку в заметке с текущими вопросами агент сам не поставит. Либо руками, либо явной просьбой. Осознанный компромисс в пользу сохранности заметок.