Obsidian CLI — это интерфейс командной строки, который позволяет управлять Obsidian из терминала для создания скриптов, автоматизации и интеграции с внешними инструментами. Всё, что вы можете сделать в Obsidian, можно сделать из командной строки. Obsidian CLI даже включает [[#Команды для разработчиков|команды для разработчиков]] для доступа к инструментам разработчика, инспектирования элементов, создания скриншотов, перезагрузки плагинов и многого другого. ![[obsidian-cli.mp4#interface]] > [!warning] Требуется установщик Obsidian 1.12 > Для использования CLI требуется установщик Obsidian 1.12. См. [[Обновление Obsidian#Обновление установщика|руководство по обновлению установщика]]. ## Установка Obsidian CLI Обновитесь до последней [[Обновление Obsidian|версии установщика Obsidian]] (1.12.7+). Включите Obsidian CLI в Obsidian: 1. Перейдите в **Настройки** → **Общие**. 2. Включите **Интерфейс командной строки**. 3. Следуйте подсказкам для регистрации Obsidian CLI. Если у вас возникли проблемы с установкой Obsidian CLI, см. раздел [[#Устранение неполадок]]. ## Начало работы Obsidian CLI поддерживает как отдельные команды, так и терминальный пользовательский интерфейс (TUI) с интерактивной справкой и автодополнением. > [!info] Приложение Obsidian должно быть запущено > Obsidian CLI требует, чтобы приложение Obsidian было запущено. Если Obsidian не запущен, первая выполненная команда запустит Obsidian. > > Хотите синхронизировать без настольного приложения? См. [[Obsidian Headless|Obsidian Headless]]. ### Выполнение команды Выполните отдельную команду без открытия TUI: ```shell # Выполнить команду помощи obsidian help ``` ### Использование терминального интерфейса Используйте TUI, введя `obsidian`. Последующие команды можно вводить без `obsidian`. ```shell # Открыть TUI, затем выполнить help obsidian help ``` TUI поддерживает автодополнение, историю команд и обратный поиск. Используйте `Ctrl+R` для поиска по истории команд. См. раздел [[#Сочетания клавиш]] для всех доступных сочетаний. ## Примеры Вот несколько примеров того, что может делать Obsidian CLI. ### Повседневное использование ```shell # Открыть сегодняшнюю ежедневную заметку obsidian daily # Добавить задачу в ежедневную заметку obsidian daily:append content="- [ ] Купить продукты" # Поиск по хранилищу obsidian search query="заметки совещаний" # Прочитать активный файл obsidian read # Список всех задач из ежедневной заметки obsidian tasks daily # Создать новую заметку из шаблона obsidian create name="Поездка в Париж" template=Travel # Список всех тегов в хранилище с количеством obsidian tags counts # Сравнить две версии файла obsidian diff file=README from=1 to=3 ``` ### Для разработчиков Для разработки плагинов и тем доступны многие [[#Команды для разработчиков|команды для разработчиков]]. Эти команды позволяют агентным инструментам кодирования автоматически тестировать и отлаживать. ```shell # Открыть инструменты разработчика obsidian devtools # Перезагрузить разрабатываемый плагин сообщества obsidian plugin:reload id=my-plugin # Сделать скриншот приложения obsidian dev:screenshot path=screenshot.png # Выполнить JavaScript в консоли приложения obsidian eval code="app.vault.getFiles().length" ``` ## Практические руководства ### Использование параметров и флагов Команды могут использовать **параметры** и **флаги**. Большинство команд не требуют параметров или флагов. Обязательные параметры помечены как `required`. Например: ```shell # Создать новую заметку с именем по умолчанию «Без названия» obsidian create ``` **Параметр** принимает значение и записывается как `parameter=value`. Если значение содержит пробелы, оберните его в кавычки: ```shell # Создать новую заметку с именем «Note» и содержимым «Hello world» obsidian create name=Note content="Hello world" ``` **Флаг** — это логический переключатель без значения. Включите его, чтобы активировать, например `open` и `overwrite` — это флаги: ```shell # Создать заметку и открыть её obsidian create name=Note content="Hello" open overwrite ``` Для многострочного содержимого используйте `\n` для перевода строки. Используйте `\t` для табуляции. ```bash obsidian create name=Note content="# Заголовок\n\nОсновной текст" ``` ### Выбор хранилища Если текущий рабочий каталог вашего терминала является папкой хранилища, это хранилище используется по умолчанию. В противном случае используется текущее активное хранилище. Используйте `vault=<name>` или `vault=<id>` для выбора конкретного хранилища. Этот параметр должен быть первым перед командой: ```shell obsidian vault=Notes daily obsidian vault="My Vault" search query="test" ``` В TUI используйте `vault:open <name>` или `<id>` для переключения на другое хранилище. ### Выбор файла Многие команды принимают параметры `file` и `path` для указания конкретного файла. Если ни один из них не указан, команда по умолчанию работает с активным файлом. - `file=<name>` разрешает файл, используя то же разрешение ссылок, что и [[Внутренние ссылки|wiki-ссылки]], сопоставляя по имени файла без необходимости указания полного пути или расширения. - `path=<path>` требует точный путь от корня хранилища, например `folder/note.md`. ```shell # Эти команды эквивалентны, если «Recipe.md» — единственный файл с таким именем obsidian read file=Recipe obsidian read path="Templates/Recipe.md" ``` ### Копирование вывода Добавьте `--copy` к любой команде, чтобы скопировать вывод в буфер обмена: ```shell read --copy search query="TODO" --copy ``` ## Общие команды ### `help` Показать список всех доступных команд. | Параметр | Описание | | ----------- | ------------------------------------------ | | `<command>` | Показать справку для конкретной команды. | ### `version` Показать версию Obsidian. ### `reload` Перезагрузить окно приложения. ### `restart` Перезапустить приложение. ## Базы данных Команды для [[Введение в Базы|Баз данных]]. ### `bases` Список всех файлов `.base` в хранилище. ### `base:views` Список представлений в текущем файле базы. ### `base:create` Создать новый элемент в базе. По умолчанию используется активное представление базы, если файл не указан. ```bash file=<name> # имя файла базы path=<path> # путь к файлу базы view=<name> # название представления name=<name> # имя нового файла content=<text> # начальное содержимое open # открыть файл после создания newtab # открыть в новой вкладке ``` ### `base:query` Запрос к базе и возврат результатов. ```bash file=<name> # имя файла базы path=<path> # путь к файлу базы view=<name> # название представления для запроса format=json|csv|tsv|md|paths # формат вывода (по умолчанию: json) ``` ## Закладки Команды для [[Закладки|Закладок]]. ### `bookmarks` Список закладок. ```bash total # вернуть количество закладок verbose # включить типы закладок format=json|tsv|csv # формат вывода (по умолчанию: tsv) ``` ### `bookmark` Добавить закладку. ```bash file=<path> # файл для закладки subpath=<subpath> # подпуть (заголовок или блок) внутри файла folder=<path> # папка для закладки search=<query> # поисковый запрос для закладки url=<url> # URL для закладки title=<title> # название закладки ``` ## Палитра команд Команды для [[Палитра команд|Палитры команд]] и [[Горячие клавиши|Горячих клавиш]]. Включает все команды, зарегистрированные плагинами. ### `commands` Список доступных идентификаторов команд. ```bash filter=<prefix> # фильтр по префиксу ID ``` ### `command` Выполнить команду Obsidian. ```bash id=<command-id> # (required) ID команды для выполнения ``` ### `hotkeys` Список сочетаний клавиш для всех команд. ```bash total # вернуть количество сочетаний клавиш verbose # показать, является ли сочетание пользовательским format=json|tsv|csv # формат вывода (по умолчанию: tsv) ``` ### `hotkey` Получить сочетание клавиш для команды. ```bash id=<command-id> # (required) ID команды verbose # показать, пользовательское или стандартное ``` ## Ежедневные заметки Команды для [[Ежедневные заметки|Ежедневных заметок]]. ### `daily` Открыть ежедневную заметку. ```bash paneType=tab|split|window # тип панели для открытия ``` ### `daily:path` Получить путь к ежедневной заметке. Возвращает ожидаемый путь, даже если файл ещё не создан. ### `daily:read` Прочитать содержимое ежедневной заметки. ### `daily:append` Добавить содержимое в конец ежедневной заметки. ```bash content=<text> # (required) содержимое для добавления paneType=tab|split|window # тип панели для открытия inline # добавить без перевода строки open # открыть файл после добавления ``` ### `daily:prepend` Добавить содержимое в начало ежедневной заметки. ```bash content=<text> # (required) содержимое для добавления в начало paneType=tab|split|window # тип панели для открытия inline # добавить без перевода строки open # открыть файл после добавления ``` ## История файлов ### `diff` Список или сравнение версий из локального [[Восстановление файлов|Восстановления файлов]] и [[Введение в Obsidian Sync|Sync]]. Версии нумеруются от новых к старым. ```bash file=<name> # имя файла path=<path> # путь к файлу from=<n> # номер версии для сравнения (от) to=<n> # номер версии для сравнения (до) filter=local|sync # фильтр по источнику версии ``` **Примеры:** ```shell # Список всех версий активного файла diff # Список всех версий конкретного файла diff file=Recipe # Сравнить последнюю версию с текущим файлом diff file=Recipe from=1 # Сравнить две версии diff file=Recipe from=2 to=1 # Показать только версии Sync diff filter=sync ``` ### `history` Список версий только из [[Восстановление файлов|Восстановления файлов]]. См. [[#Sync|sync:history]] для аналогичной команды Sync. ```bash file=<name> # имя файла path=<path> # путь к файлу ``` ### `history:list` Список всех файлов с локальной историей. ### `history:read` Прочитать версию из локальной истории. ```bash file=<name> # имя файла path=<path> # путь к файлу version=<n> # номер версии (по умолчанию: 1) ``` ### `history:restore` Восстановить версию из локальной истории. ```bash file=<name> # имя файла path=<path> # путь к файлу version=<n> # (required) номер версии ``` ### `history:open` Открыть восстановление файлов. ```bash file=<name> # имя файла path=<path> # путь к файлу ``` ## Файлы и папки ### `file` Показать информацию о файле (по умолчанию: активный файл). ```bash file=<name> # имя файла path=<path> # путь к файлу ``` Пример: ``` path Notes/Recipe.md name Recipe extension md size 1024 created 1700000000000 modified 1700001000000 ``` ### `files` Список файлов в хранилище. ```bash folder=<path> # фильтр по папке ext=<extension> # фильтр по расширению total # вернуть количество файлов ``` ### `folder` Показать информацию о папке. ```bash path=<path> # (required) путь к папке info=files|folders|size # вернуть только конкретную информацию ``` ### `folders` Список папок в хранилище. ```bash folder=<path> # фильтр по родительской папке total # вернуть количество папок ``` ### `open` Открыть файл. ```bash file=<name> # имя файла path=<path> # путь к файлу newtab # открыть в новой вкладке ``` ### `create` Создать или перезаписать файл. ```bash name=<name> # имя файла path=<path> # путь к файлу content=<text> # начальное содержимое template=<name> # используемый шаблон overwrite # перезаписать, если файл существует open # открыть файл после создания newtab # открыть в новой вкладке ``` ### `read` Прочитать содержимое файла (по умолчанию: активный файл). ```bash file=<name> # имя файла path=<path> # путь к файлу ``` ### `append` Добавить содержимое в конец файла (по умолчанию: активный файл). ```bash file=<name> # имя файла path=<path> # путь к файлу content=<text> # (required) содержимое для добавления inline # добавить без перевода строки ``` ### `prepend` Добавить содержимое после начальных метаданных (по умолчанию: активный файл). ```bash file=<name> # имя файла path=<path> # путь к файлу content=<text> # (required) содержимое для добавления в начало inline # добавить без перевода строки ``` ### `move` Переместить или переименовать файл (по умолчанию: активный файл). Внутренние ссылки будут автоматически обновлены, если это включено в [[Настройки#Всегда обновлять внутренние ссылки|настройках хранилища]]. ```bash file=<name> # имя файла path=<path> # путь к файлу to=<path> # (required) целевая папка или путь ``` ### `rename` Переименовать файл (по умолчанию: активный файл). Расширение файла сохраняется автоматически, если не указано в новом имени. Используйте [[#`move`|move]] для одновременного переименования и перемещения файла. Внутренние ссылки будут автоматически обновлены, если это включено в [[Настройки#Всегда обновлять внутренние ссылки|настройках хранилища]]. ```bash file=<name> # имя файла path=<path> # путь к файлу name=<name> # (required) новое имя файла ``` ### `delete` Удалить файл (по умолчанию: активный файл, в корзину). ```bash file=<name> # имя файла path=<path> # путь к файлу permanent # пропустить корзину, удалить навсегда ``` ## Ссылки Команды для [[Обратные ссылки|Обратных ссылок]] и [[Исходящие ссылки|Исходящих ссылок]]. ### `backlinks` Список обратных ссылок на файл (по умолчанию: активный файл). ```bash file=<name> # имя целевого файла path=<path> # путь к целевому файлу counts # включить количество ссылок total # вернуть количество обратных ссылок format=json|tsv|csv # формат вывода (по умолчанию: tsv) ``` ### `links` Список исходящих ссылок из файла (по умолчанию: активный файл). ```bash file=<name> # имя файла path=<path> # путь к файлу total # вернуть количество ссылок ``` ### `unresolved` Список неразрешённых ссылок в хранилище. ```bash total # вернуть количество неразрешённых ссылок counts # включить количество ссылок verbose # включить исходные файлы format=json|tsv|csv # формат вывода (по умолчанию: tsv) ``` ### `orphans` Список файлов без входящих ссылок. ```bash total # вернуть количество файлов-сирот ``` ### `deadends` Список файлов без исходящих ссылок. ```bash total # вернуть количество тупиковых файлов ``` ## Структура Команды для [[Структура|Структуры]]. ### `outline` Показать заголовки текущего файла. ```bash file=<name> # имя файла path=<path> # путь к файлу format=tree|md|json # формат вывода (по умолчанию: tree) total # вернуть количество заголовков ``` ## Плагины Команды для [[Основные плагины|Основных плагинов]] и [[Сторонние плагины|Сторонних плагинов]]. ### `plugins` Список установленных плагинов. ```bash filter=core|community # фильтр по типу плагина versions # включить номера версий format=json|tsv|csv # формат вывода (по умолчанию: tsv) ``` ### `plugins:enabled` Список включённых плагинов. ```bash filter=core|community # фильтр по типу плагина versions # включить номера версий format=json|tsv|csv # формат вывода (по умолчанию: tsv) ``` ### `plugins:restrict` Переключить или проверить ограниченный режим. ```bash on # включить ограниченный режим off # отключить ограниченный режим ``` ### `plugin` Получить информацию о плагине. ```bash id=<plugin-id> # (required) ID плагина ``` ### `plugin:enable` Включить плагин. ```bash id=<id> # (required) ID плагина filter=core|community # тип плагина ``` ### `plugin:disable` Отключить плагин. ```bash id=<id> # (required) ID плагина filter=core|community # тип плагина ``` ### `plugin:install` Установить плагин сообщества. ```bash id=<id> # (required) ID плагина enable # включить после установки ``` ### `plugin:uninstall` Удалить плагин сообщества. ```bash id=<id> # (required) ID плагина ``` ### `plugin:reload` Перезагрузить плагин (для разработчиков). ```bash id=<id> # (required) ID плагина ``` ## Свойства Команды, связанные со [[Свойства|Свойствами]]. ### `aliases` Список псевдонимов в хранилище. Используйте `active` или `file`/`path` для отображения псевдонимов конкретного файла. ```bash file=<name> # имя файла path=<path> # путь к файлу total # вернуть количество псевдонимов verbose # включить пути к файлам active # показать псевдонимы активного файла ``` ### `properties` Список свойств в хранилище. Используйте `active` или `file`/`path` для отображения свойств конкретного файла. ```bash file=<name> # показать свойства файла path=<path> # показать свойства по пути name=<name> # получить количество конкретного свойства sort=count # сортировать по количеству (по умолчанию: имя) format=yaml|json|tsv # формат вывода (по умолчанию: yaml) total # вернуть количество свойств counts # включить количество вхождений active # показать свойства активного файла ``` ### `property:set` Установить свойство файла (по умолчанию: активный файл). ```bash name=<name> # (required) название свойства value=<value> # (required) значение свойства type=text|list|number|checkbox|date|datetime # тип свойства file=<name> # имя файла path=<path> # путь к файлу ``` ### `property:remove` Удалить свойство из файла (по умолчанию: активный файл). ```bash name=<name> # (required) название свойства file=<name> # имя файла path=<path> # путь к файлу ``` ### `property:read` Прочитать значение свойства из файла (по умолчанию: активный файл). ```bash name=<name> # (required) название свойства file=<name> # имя файла path=<path> # путь к файлу ``` ## Publish Команды для [[Введение в Obsidian Publish|Obsidian Publish]]. ### `publish:site` Показать информацию о сайте Publish (slug, URL). ### `publish:list` Список опубликованных файлов. ```bash total # вернуть количество опубликованных файлов ``` ### `publish:status` Список изменений для публикации. ```bash total # вернуть количество изменений new # показать только новые файлы changed # показать только изменённые файлы deleted # показать только удалённые файлы ``` ### `publish:add` Опубликовать файл или все изменённые файлы (по умолчанию: активный файл). ```bash file=<name> # имя файла path=<path> # путь к файлу changed # опубликовать все изменённые файлы ``` ### `publish:remove` Снять публикацию файла (по умолчанию: активный файл). ```bash file=<name> # имя файла path=<path> # путь к файлу ``` ### `publish:open` Открыть файл на опубликованном сайте (по умолчанию: активный файл). ```bash file=<name> # имя файла path=<path> # путь к файлу ``` ## Случайные заметки Команды для [[Случайная заметка|Случайной заметки]]. ### `random` Открыть случайную заметку. ```bash folder=<path> # ограничить папкой newtab # открыть в новой вкладке ``` ### `random:read` Прочитать случайную заметку (включает путь). ```bash folder=<path> # ограничить папкой ``` ## Поиск Команды для [[Поиск|Поиска]]. ### `search` Поиск текста в хранилище. Возвращает пути к совпавшим файлам. ```bash query=<text> # (required) поисковый запрос path=<folder> # ограничить папкой limit=<n> # максимальное количество файлов format=text|json # формат вывода (по умолчанию: text) total # вернуть количество совпадений case # с учётом регистра ``` ### `search:context` Поиск с контекстом совпавших строк. Возвращает вывод в стиле grep: `путь:строка: текст`. ```bash query=<text> # (required) поисковый запрос path=<folder> # ограничить папкой limit=<n> # максимальное количество файлов format=text|json # формат вывода (по умолчанию: text) case # с учётом регистра ``` ### `search:open` Открыть представление поиска. ```bash query=<text> # начальный поисковый запрос ``` ## Sync Команды для [[Введение в Obsidian Sync|Obsidian Sync]]. > [!tip] Синхронизация без настольного приложения > Эти команды управляют Sync в запущенном приложении Obsidian. Для синхронизации хранилищ из командной строки без настольного приложения см. [[Headless Sync]]. ### `sync` Приостановить или возобновить синхронизацию. ```bash on # возобновить синхронизацию off # приостановить синхронизацию ``` ### `sync:status` Показать статус синхронизации и использование. ### `sync:history` Список истории версий Sync для файла (по умолчанию: активный файл). ```bash file=<name> # имя файла path=<path> # путь к файлу total # вернуть количество версий ``` ### `sync:read` Прочитать версию Sync (по умолчанию: активный файл). ```bash file=<name> # имя файла path=<path> # путь к файлу version=<n> # (required) номер версии ``` ### `sync:restore` Восстановить версию Sync (по умолчанию: активный файл). ```bash file=<name> # имя файла path=<path> # путь к файлу version=<n> # (required) номер версии ``` ### `sync:open` Открыть историю синхронизации (по умолчанию: активный файл). ```bash file=<name> # имя файла path=<path> # путь к файлу ``` ### `sync:deleted` Список удалённых файлов в Sync. ```bash total # вернуть количество удалённых файлов ``` ## Теги Команды для [[Теги|Тегов]]. ### `tags` Список тегов в хранилище. Используйте `active` или `file`/`path` для отображения тегов конкретного файла. ```bash file=<name> # имя файла path=<path> # путь к файлу sort=count # сортировать по количеству (по умолчанию: имя) total # вернуть количество тегов counts # включить количество тегов format=json|tsv|csv # формат вывода (по умолчанию: tsv) active # показать теги активного файла ``` ### `tag` Получить информацию о теге. ```bash name=<tag> # (required) имя тега total # вернуть количество вхождений verbose # включить список файлов и количество ``` ## Задачи Команды для управления задачами. ### `tasks` Список задач в хранилище. Используйте `active` или `file`/`path` для отображения задач конкретного файла. ```bash file=<name> # фильтр по имени файла path=<path> # фильтр по пути к файлу status="<char>" # фильтр по символу статуса total # вернуть количество задач done # показать выполненные задачи todo # показать невыполненные задачи verbose # группировать по файлам с номерами строк format=json|tsv|csv # формат вывода (по умолчанию: text) active # показать задачи активного файла daily # показать задачи из ежедневной заметки ``` **Примеры:** ```bash # Список всех задач в хранилище tasks # Список невыполненных задач в хранилище tasks todo # Список выполненных задач из конкретного файла tasks file=Recipe done # Список задач из сегодняшней ежедневной заметки tasks daily # Подсчёт задач в ежедневной заметке tasks daily total # Список задач с путями к файлам и номерами строк tasks verbose # Фильтр по пользовательскому статусу (экранируйте спецсимволы) tasks 'status=?' ``` ### `task` Показать или обновить задачу. ```bash ref=<path:line> # ссылка на задачу (путь:строка) file=<name> # имя файла path=<path> # путь к файлу line=<n> # номер строки status="<char>" # установить символ статуса toggle # переключить статус задачи daily # ежедневная заметка done # отметить как выполненную todo # отметить как невыполненную ``` **Примеры:** ```bash # Показать информацию о задаче task file=Recipe line=8 task ref="Recipe.md:8" # Переключить выполнение задачи task ref="Recipe.md:8" toggle # Переключить задачу в ежедневной заметке task daily line=3 toggle # Установить статус задачи task file=Recipe line=8 done # → [x] task file=Recipe line=8 todo # → [ ] task file=Recipe line=8 status=- # → [-] task daily line=3 done # Отметить задачу в ежедневной заметке как выполненную ``` ## Шаблоны Команды для [[Шаблоны|Шаблонов]]. ### `templates` Список шаблонов. ```bash total # вернуть количество шаблонов ``` ### `template:read` Прочитать содержимое шаблона. ```bash name=<template> # (required) название шаблона title=<title> # заголовок для разрешения переменных resolve # разрешить переменные шаблона ``` ### `template:insert` Вставить шаблон в активный файл. ```bash name=<template> # (required) название шаблона ``` **Примечания:** - Параметр `resolve` обрабатывает переменные `{{date}}`, `{{time}}`, `{{title}}` - Используйте `create path=<path> template=<name>` для создания файла с шаблоном ## Темы и фрагменты Команды для [[Темы|Тем]] и [[CSS-сниппеты|CSS-сниппетов]]. ### `themes` Список установленных тем. ```bash versions # включить номера версий ``` ### `theme` Показать активную тему или получить информацию. ```bash name=<name> # название темы для подробностей ``` ### `theme:set` Установить активную тему. ```bash name=<name> # (required) название темы (пустое для темы по умолчанию) ``` ### `theme:install` Установить тему сообщества. ```bash name=<name> # (required) название темы enable # активировать после установки ``` ### `theme:uninstall` Удалить тему. ```bash name=<name> # (required) название темы ``` ### `snippets` Список установленных CSS-сниппетов. ### `snippets:enabled` Список включённых CSS-сниппетов. ### `snippet:enable` Включить CSS-сниппет. ```bash name=<name> # (required) название сниппета ``` ### `snippet:disable` Отключить CSS-сниппет. ```bash name=<name> # (required) название сниппета ``` ## Уникальные заметки Команды для [[Создатель уникальных заметок|Создателя уникальных заметок]]. ### `unique` Создать уникальную заметку. ```bash name=<text> # название заметки content=<text> # начальное содержимое paneType=tab|split|window # тип панели для открытия open # открыть файл после создания ``` ## Хранилище ### `vault` Показать информацию о хранилище. ```bash info=name|path|files|folders|size # вернуть только конкретную информацию ``` ### `vaults` Список известных хранилищ. ```bash total # вернуть количество хранилищ verbose # включить пути к хранилищам ``` ### `vault:open` Переключиться на другое хранилище (только в TUI). ```bash name=<name> # (required) название хранилища ``` ## Веб-просмотр Команды для [[Веб-просмотр|Веб-просмотра]]. ### `web` Открыть URL в веб-просмотрщике. ```bash url=<url> # (required) URL для открытия newtab # открыть в новой вкладке ``` ## Счётчик слов Команды для [[Счётчик слов|Счётчика слов]]. ### `wordcount` Подсчитать слова и символы (по умолчанию: активный файл). ```bash file=<name> # имя файла path=<path> # путь к файлу words # вернуть только количество слов characters # вернуть только количество символов ``` ## Рабочее пространство Команды для [[Рабочее пространство|Рабочего пространства]] и плагина [[Рабочие пространства|Рабочие пространства]]. ### `workspace` Показать дерево рабочего пространства. ```bash ids # включить ID элементов рабочего пространства ``` ### `workspaces` Список сохранённых рабочих пространств. ```bash total # вернуть количество рабочих пространств ``` ### `workspace:save` Сохранить текущую компоновку как рабочее пространство. ```bash name=<name> # название рабочего пространства ``` ### `workspace:load` Загрузить сохранённое рабочее пространство. ```bash name=<name> # (required) название рабочего пространства ``` ### `workspace:delete` Удалить сохранённое рабочее пространство. ```bash name=<name> # (required) название рабочего пространства ``` ### `tabs` Список открытых вкладок. ```bash ids # включить ID вкладок ``` ### `tab:open` Открыть новую вкладку. ```bash group=<id> # ID группы вкладок file=<path> # файл для открытия view=<type> # тип представления для открытия ``` ### `recents` Список недавно открытых файлов. ```bash total # вернуть количество недавних файлов ``` ## Команды для разработчиков Команды для разработки [[Сторонние плагины|Сторонних плагинов]] и [[Темы|Тем]]. Подробнее на сайте [документации для разработчиков Obsidian](https://docs.obsidian.md). ### `devtools` Переключить инструменты разработчика Electron. ### `dev:debug` Подключить/отключить отладчик Chrome DevTools Protocol. ```bash on # подключить отладчик off # отключить отладчик ``` ### `dev:cdp` Выполнить команду Chrome DevTools Protocol. ```bash method=<CDP.method> # (required) метод CDP для вызова params=<json> # параметры метода в формате JSON ``` ### `dev:errors` Показать перехваченные ошибки JavaScript. ```bash clear # очистить буфер ошибок ``` ### `dev:screenshot` Сделать скриншот (возвращает PNG в base64). ```bash path=<filename> # путь к выходному файлу ``` ### `dev:console` Показать перехваченные сообщения консоли. ```bash limit=<n> # максимальное количество сообщений (по умолчанию 50) level=log|warn|error|info|debug # фильтр по уровню логирования clear # очистить буфер консоли ``` ### `dev:css` Инспектировать CSS с указанием расположения в исходном коде. ```bash selector=<css> # (required) CSS-селектор prop=<name> # фильтр по названию свойства ``` ### `dev:dom` Запрос элементов DOM. ```bash selector=<css> # (required) CSS-селектор attr=<name> # получить значение атрибута css=<prop> # получить значение CSS-свойства total # вернуть количество элементов text # вернуть текстовое содержимое inner # вернуть innerHTML вместо outerHTML all # вернуть все совпадения вместо первого ``` ### `dev:mobile` Переключить эмуляцию мобильного устройства. ```bash on # включить эмуляцию мобильного устройства off # отключить эмуляцию мобильного устройства ``` ### `eval` Выполнить JavaScript и вернуть результат. ```bash code=<javascript> # (required) JavaScript-код для выполнения ``` ## Сочетания клавиш Эти сочетания клавиш доступны в [[#Использование терминального интерфейса|TUI]]. ### Навигация | Действие | Сочетание | | ----------------------------------------------------------- | ---------------- | | Переместить курсор влево | `←` / `Ctrl+B` | | Переместить курсор вправо (принять подсказку в конце строки)| `→` / `Ctrl+F` | | Перейти в начало строки | `Ctrl+A` | | Перейти в конец строки | `Ctrl+E` | | Переместить на одно слово назад | `Alt+B` | | Переместить на одно слово вперёд | `Alt+F` | ### Редактирование | Действие | Сочетание | | ------------------------------ | ---------------------------- | | Удалить до начала строки | `Ctrl+U` | | Удалить до конца строки | `Ctrl+K` | | Удалить предыдущее слово | `Ctrl+W` / `Alt+Backspace` | ### Автодополнение | Действие | Сочетание | | ------------------------------------------------------------ | ------------- | | Войти в режим подсказок / принять выбранную подсказку | `Tab` | | Выйти из режима подсказок | `Shift+Tab` | | Войти в режим подсказок (при новом вводе) | `↓` | | Принять первую/выбранную подсказку (в конце строки) | `→` | ### История | Действие | Сочетание | | ----------------------------------------------------------------------- | ---------------- | | Предыдущая запись истории / навигация по подсказкам вверх | `↑` / `Ctrl+P` | | Следующая запись истории / навигация по подсказкам вниз | `↓` / `Ctrl+N` | | Обратный поиск по истории (введите для фильтрации, `Ctrl+R` для цикла) | `Ctrl+R` | ### Прочее | Действие | Сочетание | | ----------------------------------------------------------------------- | --------------------- | | Выполнить команду или принять подсказку | `Enter` | | Отменить автодополнение / выйти из режима подсказок / очистить ввод | `Escape` | | Очистить экран | `Ctrl+L` | | Выход | `Ctrl+C` / `Ctrl+D` | ## Устранение неполадок Если у вас возникли проблемы с запуском Obsidian CLI: - Убедитесь, что вы используете последнюю [[Обновление Obsidian|версию установщика Obsidian]] (1.12.7 или выше). - Если вы только что обновили Obsidian с более ранней версии, отключите настройку CLI и включите её снова, затем позвольте Obsidian выполнить автоматическую регистрацию PATH. - Перезапустите терминал после регистрации CLI, чтобы изменения PATH вступили в силу. - Obsidian должен быть запущен. CLI подключается к запущенному экземпляру Obsidian. ### Windows Obsidian CLI на Windows требует установщик Obsidian 1.12.7+. См. [[Обновление Obsidian|Обновление версии установщика]]. Windows использует терминальный перенаправитель, который правильно подключает Obsidian к stdin/stdout. Это необходимо, потому что Obsidian обычно работает как GUI-приложение, которое несовместимо с терминальным выводом в Windows. При установке Obsidian 1.12.7+ файл терминального перенаправителя `Obsidian.com` будет добавлен в папку, где установлен файл `Obsidian.exe`. Регистрация CLI добавляет Obsidian в переменную PATH вашего пользователя, что вступает в силу только после перезапуска терминала. ### macOS Регистрация CLI создаёт символическую ссылку в `/usr/local/bin/obsidian`, указывающую на бинарный файл CLI, встроенный в приложение. Для этого требуются права администратора — вам будет показан системный диалог. Убедитесь, что символическая ссылка существует и указывает на правильный бинарный файл: ``` ls -l /usr/local/bin/obsidian ``` Если символическая ссылка отсутствует, создайте её вручную: ``` sudo ln -sf /Applications/Obsidian.app/Contents/MacOS/obsidian-cli /usr/local/bin/obsidian ``` > [!note] Если вы ранее регистрировали CLI с более старой версией Obsidian, у вас может остаться запись PATH в `~/.zprofile`. Новый процесс регистрации удаляет её автоматически, но если она осталась, вы можете безопасно удалить строки, начинающиеся с `# Added by Obsidian`, из `~/.zprofile`. ### Linux Регистрация CLI копирует бинарный файл CLI в `~/.local/bin/obsidian`. Это сделано потому, что некоторые методы установки Linux запускаются из временных директорий, на которые нельзя создать постоянные символические ссылки. Убедитесь, что `~/.local/bin` находится в вашем PATH. Добавьте следующее в ваш `~/.bashrc` или `~/.zshrc`, если это не так: ``` export PATH="$PATH:$HOME/.local/bin" ``` Убедитесь, что бинарный файл существует: ``` ls -l ~/.local/bin/obsidian ``` Если бинарный файл отсутствует, скопируйте его вручную из директории установки Obsidian: ``` cp /path/to/Obsidian/obsidian-cli ~/.local/bin/obsidian chmod 755 ~/.local/bin/obsidian ```