Obsidian CLI — встроенный инструмент командной строки, который появился в Obsidian 1.12. Позволяет делать с волтом всё то же самое, что руками в интерфейсе — но через терминал. Одной командой.
Зачем это нужно? Потому что всё, что можно сделать через терминал, может делать ваш AI-агент. Claude Code, Codex, Cursor — любой кодинг-агент получает полный доступ к вашему Obsidian не через хаки и плагины, а через официальный инструмент.
Без CLI агент работает с файлами напрямую — читает и пишет MD через файловую систему. Это работает, но есть критическая проблема: если агент переименует или перенесёт файл через mv, все ссылки [[]] на этот файл сломаются.
Obsidian CLI решает это. Когда вы переносите файл через obsidian move, Obsidian сам обновляет все ссылки во всех файлах, которые ссылались на перенесённый файл. Как если бы вы перенесли его руками в интерфейсе.
CLI уже встроен в Obsidian 1.12+. Проверь версию:
obsidian version
Если команда obsidian не найдена — нужно добавить путь.
macOS:
Бинарник лежит в /Applications/Obsidian.app/Contents/MacOS/obsidian. Чтобы команда obsidian работала из любого места, создай симлинк:
sudo ln -sf /Applications/Obsidian.app/Contents/MacOS/obsidian /usr/local/bin/obsidian
Или добавь алиас в конфиг шелла.
Fish:
alias obsidian /Applications/Obsidian.app/Contents/MacOS/obsidian
Bash/Zsh:
alias obsidian="/Applications/Obsidian.app/Contents/MacOS/obsidian"
Windows:
Добавь путь к Obsidian.exe в системную переменную PATH или используй полный путь.
Требование: Obsidian должен быть запущен. CLI общается с работающим приложением, а не с файлами напрямую.
Общий формат:
obsidian <команда> [параметры]
Два способа указать файл:
file="Название" — по имени, как wikilink (ищет по всему волту)path="папка/файл.md" — по точному путиЕсли у вас несколько волтов:
obsidian <команда> vault="Имя волта"
Спецсимволы в содержимом: \n — перенос строки, \t — табуляция.
# Прочитать файл
obsidian read file="Модуль 1"
# Прочитать по точному пути
obsidian read path="Program/Module-001/Lecture-001.md"
# Информация о файле (размер, путь, дата)
obsidian file file="Модуль 1"
# Подсчёт слов
obsidian wordcount file="Модуль 1"
obsidian wordcount file="Модуль 1" words # только число слов
obsidian wordcount file="Модуль 1" characters # только символы
# Пустой файл
obsidian create name="Новая заметка"
# С начальным содержимым
obsidian create name="Идея" content="---\nLLM: Claude\n---\n\n# Идея\n\nТекст заметки"
# Из шаблона
obsidian create name="Война и мир" template="Book Template"
# Создать и сразу открыть
obsidian create name="Заметка" content="текст" open
# Добавить в конец файла
obsidian append file="Дневник" content="\n## Вечер\nСегодня было продуктивно."
# Добавить в начало (после frontmatter)
obsidian prepend file="Дневник" content="## Утро\nПроснулся в 7."
# Без переноса строки (в ту же строку)
obsidian append file="Список" content=" — дополнение" inline
Это самые важные команды. Всегда используйте CLI для переноса и переименования — иначе ссылки сломаются.
# Перенести файл в другую папку
obsidian move file="Старая заметка" to="Archive/"
# Переименовать файл
obsidian rename file="Драфт" name="Финальная версия"
# Перенести по точному пути
obsidian move path="Input/идея.md" to="Projects/AI Obsidian/"
После move и rename Obsidian автоматически обновит все [[ссылки]] во всех файлах волта.
# Удалить в корзину (безопасно)
obsidian delete file="Ненужная заметка"
# Удалить безвозвратно (осторожно!)
obsidian delete file="Временный файл" permanent
# Открыть файл в текущей вкладке
obsidian open file="Модуль 1"
# Открыть в новой вкладке
obsidian open file="Модуль 1" newtab
# Полнотекстовый поиск
obsidian search query="AI агент"
# Поиск с контекстом (показывает строки вокруг совпадений)
obsidian search:context query="YAML свойства"
# Поиск в конкретной папке
obsidian search query="дедлайн" path="Projects/"
# Ограничить количество результатов
obsidian search query="Claude" limit=5
# Только количество совпадений
obsidian search query="MCP" total
# С учётом регистра
obsidian search query="API" case
# В формате JSON (для обработки агентом)
obsidian search query="status" format=json
# Все свойства в волте
obsidian properties
# Свойства конкретного файла
obsidian properties file="Война и мир"
# Свойства с количеством использований, отсортированные по частоте
obsidian properties counts sort=count
# Прочитать конкретное свойство
obsidian property:read name="status" file="Война и мир"
# Установить свойство
obsidian property:set name="status" value="прочитано" file="Война и мир"
# Установить с типом
obsidian property:set name="rating" value="5" type=number file="Война и мир"
# Установить дату
obsidian property:set name="date" value="2026-04-12" type=date file="Заметка"
# Установить чекбокс
obsidian property:set name="archived" value="true" type=checkbox file="Проект"
# Удалить свойство
obsidian property:remove name="draft" file="Статья"
Типы: text, number, checkbox, date, datetime, list.
# Входящие ссылки (кто ссылается на этот файл)
obsidian backlinks file="AI Obsidian"
# Исходящие ссылки (на что ссылается этот файл)
obsidian links file="AI Obsidian"
# Файлы-сироты (на них никто не ссылается)
obsidian orphans
# Тупики (файлы без исходящих ссылок)
obsidian deadends
# Битые ссылки (ведут в никуда)
obsidian unresolved
# Количество битых ссылок
obsidian unresolved total
# Подробно — с указанием, откуда идут битые ссылки
obsidian unresolved verbose
# Все теги в волте
obsidian tags
# Теги с количеством, отсортированные по частоте
obsidian tags counts sort=count
# Теги конкретного файла
obsidian tags file="Заметка"
# Информация о теге (в каких файлах встречается)
obsidian tag name="ai" verbose
# Количество использований тега
obsidian tag name="ai" total
# Все незавершённые задачи
obsidian tasks todo
# Все завершённые
obsidian tasks done
# Задачи в конкретном файле (с номерами строк)
obsidian tasks file="Проект" verbose
# Задачи из дневной заметки
obsidian tasks daily
# Отметить задачу выполненной (по файлу и строке)
obsidian task path="Projects/tasks.md" line=15 done
# Переключить статус задачи
obsidian task path="Projects/tasks.md" line=15 toggle
# Количество незавершённых задач
obsidian tasks todo total
# Открыть сегодняшнюю дневную заметку
obsidian daily
# Прочитать содержимое
obsidian daily:read
# Узнать путь к файлу
obsidian daily:path
# Добавить запись в конец
obsidian daily:append content="\n## 14:00\nВстреча с командой. Обсудили дедлайны."
# Добавить запись в начало
obsidian daily:prepend content="## Утро\nЭнергия: 8/10"
# Список всех баз
obsidian bases
# Запросить данные из базы (JSON)
obsidian base:query file="Библиотека" format=json
# Запросить в формате таблицы
obsidian base:query file="Библиотека" format=csv
# Запросить конкретный view
obsidian base:query file="Проекты" view="Активные"
# Список view в базе
obsidian base:views file="Проекты"
# Создать новую запись в базе
obsidian base:create file="Библиотека" name="Новая книга"
# Список установленных плагинов
obsidian plugins
# Только включённые
obsidian plugins:enabled
# Только community-плагины
obsidian plugins filter=community
# С версиями
obsidian plugins versions
# Установить и включить плагин
obsidian plugin:install id="omnisearch" enable
# Отключить плагин
obsidian plugin:disable id="omnisearch"
# Удалить плагин
obsidian plugin:uninstall id="omnisearch"
# Информация о плагине
obsidian plugin id="omnisearch"
# Список доступных шаблонов
obsidian templates
# Прочитать содержимое шаблона
obsidian template:read name="Book Template"
# Прочитать с подставленными переменными
obsidian template:read name="DAILY" resolve title="2026-04-12"
# Вставить шаблон в активный файл
obsidian template:insert name="Book Template"
# Информация о волте (имя, путь, размер)
obsidian vault
# Только путь к волту
obsidian vault info=path
# Только количество файлов
obsidian vault info=files
# Список всех папок
obsidian folders
# Папки внутри конкретной папки
obsidian folders folder="Projects/"
# Файлы в папке
obsidian files folder="Books/"
# Количество файлов в папке
obsidian files folder="Books/" total
# Информация о папке
obsidian folder path="Projects/AI Obsidian" info=files
# Список открытых вкладок
obsidian tabs
# Недавно открытые файлы
obsidian recents
# Список закладок
obsidian bookmarks
# Добавить файл в закладки
obsidian bookmark file="Projects/AI Obsidian.md" title="Курс"
# Добавить поисковый запрос в закладки
obsidian bookmark search="status: active" title="Активные проекты"
Большинство команд поддерживают разные форматы:
# TSV (по умолчанию — для терминала)
obsidian tags counts
# JSON (для обработки агентом или скриптом)
obsidian tags counts format=json
# CSV (для импорта в Excel)
obsidian tags counts format=csv
# Только количество
obsidian tags total
# Сколько незавершённых задач?
obsidian tasks todo total
# Что в дневнике?
obsidian daily:read
# Битые ссылки?
obsidian unresolved total
# Посмотреть все уникальные свойства в волте
obsidian properties counts sort=count
# Проверить свойство конкретного файла
obsidian property:read name="LLM" file="Заметка"
# Установить свойство
obsidian property:set name="LLM" value="Claude" file="Заметка"
# Сколько файлов всего?
obsidian vault info=files
# Сироты (никто не ссылается)
obsidian orphans total
# Тупики (нет исходящих ссылок)
obsidian deadends total
# Битые ссылки
obsidian unresolved total
# Самые частые теги
obsidian tags counts sort=count
Агент (Claude Code, Codex) может использовать CLI напрямую:
Пройди по всем файлам в папке Books через obsidian CLI.
Для каждого файла проверь, есть ли свойство "genre".
Если нет — прочитай содержимое и определи жанр, затем установи свойство через obsidian property:set.
Найди все битые ссылки через obsidian unresolved verbose.
Для каждой битой ссылки определи, куда файл мог переехать, и исправь.
Перенеси все файлы из Input/ в правильные папки по содержимому.
Используй obsidian move, чтобы сохранить ссылки.
| Ошибка | Причина | Решение |
|---|---|---|
command not found: obsidian |
CLI не в PATH | Создай симлинк или алиас (см. Установка) |
No vault found |
Obsidian не запущен | Запусти Obsidian |
File not found |
Неправильное имя | Используй file= без расширения .md — как wikilink |
| Пробелы в именах ломают команду | Не обёрнуто в кавычки | file="Моя заметка" — всегда кавычки |
| Свойство не обновилось | Obsidian кэширует | Подожди секунду или сделай obsidian reload |
Для чтения и записи содержимого файлов агент может работать напрямую с файловой системой — это быстрее.
Для перемещения, переименования и работы со свойствами — всегда через Obsidian CLI. Это гарантирует целостность ссылок и метаданных.
Курс AI Obsidian — 3 недели, 9 встреч, максимум 20 человек
Записаться →