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
```