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]].
### Виконання команди
Виконайте окрему команду без відкриття TUI:
```shell
# Виконати команду довідки
obsidian help
```
### Використання термінального інтерфейсу
Використовуйте TUI, ввівши `obsidian`. Подальші команди можна вводити без `obsidian`.
```shell
# Відкрити TUI, потім виконати довідку
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
```
**Параметр** приймає значення, записане як `параметр=значення`. Якщо значення містить пробіли, обгорніть його в лапки:
```shell
# Створити нову нотатку з назвою "Нотатка" та вмістом "Привіт, світе"
obsidian create name=Нотатка content="Привіт, світе"
```
**Прапорець** — це булевий перемикач без значення. Включіть його, щоб увімкнути, наприклад `open` та `overwrite` — це прапорці:
```shell
# Створити нотатку та відкрити її
obsidian create name=Нотатка content="Привіт" open overwrite
```
Для багаторядкового вмісту використовуйте `\n` для нового рядка. Використовуйте `\t` для табуляції.
```bash
obsidian create name=Нотатка content="# Заголовок\n\nОсновний текст"
```
### Вибір сховища
Якщо поточна робоча тека вашого терміналу є текою сховища, це сховище використовується за замовчуванням. В іншому випадку використовується поточне активне сховище.
Використовуйте `vault=<назва>` або `vault=<ідентифікатор>`, щоб вказати конкретне сховище. Це має бути першим параметром перед вашою командою:
```shell
obsidian vault=Notes daily
obsidian vault="My Vault" search query="test"
```
У TUI використовуйте `vault:open <назва>` або `<ідентифікатор>`, щоб переключитися на інше сховище.
### Вибір файлу
Багато команд приймають параметри `file` та `path` для вибору конкретного файлу. Якщо жоден не вказано, команда застосовується до активного файлу.
- `file=<назва>` розпізнає файл, використовуючи ту саму роздільну здатність посилань, що й [[Внутрішні посилання|wiki-посилання]], зіставляючи за назвою файлу без необхідності повного шляху або розширення.
- `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> # (обов'язково) ID команди для виконання
```
### `hotkeys`
Перерахувати сполучення клавіш для всіх команд.
```bash
total # повернути кількість сполучень клавіш
verbose # показати, чи є сполучення користувацьким
format=json|tsv|csv # формат виводу (за замовчуванням: tsv)
```
### `hotkey`
Отримати сполучення клавіш для команди.
```bash
id=<command-id> # (обов'язково) ID команди
verbose # показати, чи є користувацьким або стандартним
```
## Щоденні нотатки
Команди для [[Щоденні нотатки|Щоденних нотаток]].
### `daily`
Відкрити щоденну нотатку.
```bash
paneType=tab|split|window # тип панелі для відкриття
```
### `daily:path`
Отримати шлях до щоденної нотатки. Повертає очікуваний шлях, навіть якщо файл ще не створено.
### `daily:read`
Прочитати вміст щоденної нотатки.
### `daily:append`
Додати вміст у кінець щоденної нотатки.
```bash
content=<text> # (обов'язково) вміст для додавання
paneType=tab|split|window # тип панелі для відкриття
inline # додати без нового рядка
open # відкрити файл після додавання
```
### `daily:prepend`
Додати вміст на початок щоденної нотатки.
```bash
content=<text> # (обов'язково) вміст для додавання
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> # (обов'язково) номер версії
```
### `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> # (обов'язково) шлях до теки
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> # (обов'язково) вміст для додавання
inline # додати без нового рядка
```
### `prepend`
Додати вміст після початкових метаданих (за замовчуванням: активний файл).
```bash
file=<name> # назва файлу
path=<path> # шлях до файлу
content=<text> # (обов'язково) вміст для додавання
inline # додати без нового рядка
```
### `move`
Перемістити або перейменувати файл (за замовчуванням: активний файл). Це автоматично оновить [[Внутрішні посилання|внутрішні посилання]], якщо це увімкнено у ваших [[Налаштування#Завжди оновлюйте внутрішні посилання|налаштуваннях сховища]].
```bash
file=<name> # назва файлу
path=<path> # шлях до файлу
to=<path> # (обов'язково) тека або шлях призначення
```
### `rename`
Перейменувати файл (за замовчуванням: активний файл). Розширення файлу зберігається автоматично, якщо воно не вказане в новій назві. Використовуйте [[#`move`|move]], щоб перейменувати та перемістити файл одночасно. Це автоматично оновить [[Внутрішні посилання|внутрішні посилання]], якщо це увімкнено у ваших [[Налаштування#Завжди оновлюйте внутрішні посилання|налаштуваннях сховища]].
```bash
file=<name> # назва файлу
path=<path> # шлях до файлу
name=<name> # (обов'язково) нова назва файлу
```
### `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> # (обов'язково) ID додатка
```
### `plugin:enable`
Увімкнути додаток.
```bash
id=<id> # (обов'язково) ID додатка
filter=core|community # тип додатка
```
### `plugin:disable`
Вимкнути додаток.
```bash
id=<id> # (обов'язково) ID додатка
filter=core|community # тип додатка
```
### `plugin:install`
Встановити додаток спільноти.
```bash
id=<id> # (обов'язково) ID додатка
enable # увімкнути після встановлення
```
### `plugin:uninstall`
Видалити додаток спільноти.
```bash
id=<id> # (обов'язково) ID додатка
```
### `plugin:reload`
Перезавантажити додаток (для розробників).
```bash
id=<id> # (обов'язково) 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> # (обов'язково) назва властивості
value=<value> # (обов'язково) значення властивості
type=text|list|number|checkbox|date|datetime # тип властивості
file=<name> # назва файлу
path=<path> # шлях до файлу
```
### `property:remove`
Видалити властивість з файлу (за замовчуванням: активний файл).
```bash
name=<name> # (обов'язково) назва властивості
file=<name> # назва файлу
path=<path> # шлях до файлу
```
### `property:read`
Прочитати значення властивості з файлу (за замовчуванням: активний файл).
```bash
name=<name> # (обов'язково) назва властивості
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> # (обов'язково) пошуковий запит
path=<folder> # обмежити текою
limit=<n> # максимальна кількість файлів
format=text|json # формат виводу (за замовчуванням: text)
total # повернути кількість збігів
case # враховуючи регістр
```
### `search:context`
Пошук з контекстом відповідних рядків. Повертає вивід у стилі grep `шлях:рядок: текст`.
```bash
query=<text> # (обов'язково) пошуковий запит
path=<folder> # обмежити текою
limit=<n> # максимальна кількість файлів
format=text|json # формат виводу (за замовчуванням: text)
case # враховуючи регістр
```
### `search:open`
Відкрити подання пошуку.
```bash
query=<text> # початковий пошуковий запит
```
## Sync
Команди для [[Вступ до Obsidian Sync|Obsidian Sync]].
> [!tip] Синхронізація без десктопного застосунку
> Ці команди керують Sync у запущеному застосунку Obsidian. Щоб синхронізувати сховища з командного рядка без десктопного застосунку, див. [[Автономна синхронізація]].
### `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> # (обов'язково) номер версії
```
### `sync:restore`
Відновити версію Sync (за замовчуванням: активний файл).
```bash
file=<name> # назва файлу
path=<path> # шлях до файлу
version=<n> # (обов'язково) номер версії
```
### `sync:open`
Відкрити історію Sync (за замовчуванням: активний файл).
```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> # (обов'язково) назва мітки
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> # (обов'язково) назва шаблону
title=<title> # заголовок для розпізнавання змінних
resolve # розпізнати змінні шаблону
```
### `template:insert`
Вставити шаблон в активний файл.
```bash
name=<template> # (обов'язково) назва шаблону
```
**Примітки:**
- Опція `resolve` обробляє змінні `{{date}}`, `{{time}}`, `{{title}}`
- Використовуйте `create path=<path> template=<name>`, щоб створити файл із шаблону
## Теми та сніпети
Команди для [[Теми|Тем]] та [[Сніпети CSS|Сніпетів CSS]].
### `themes`
Перерахувати встановлені теми.
```bash
versions # включити номери версій
```
### `theme`
Показати активну тему або отримати інформацію.
```bash
name=<name> # назва теми для деталей
```
### `theme:set`
Встановити активну тему.
```bash
name=<name> # (обов'язково) назва теми (порожнє для стандартної)
```
### `theme:install`
Встановити тему спільноти.
```bash
name=<name> # (обов'язково) назва теми
enable # активувати після встановлення
```
### `theme:uninstall`
Видалити тему.
```bash
name=<name> # (обов'язково) назва теми
```
### `snippets`
Перерахувати встановлені сніпети CSS.
### `snippets:enabled`
Перерахувати увімкнені сніпети CSS.
### `snippet:enable`
Увімкнути сніпет CSS.
```bash
name=<name> # (обов'язково) назва сніпета
```
### `snippet:disable`
Вимкнути сніпет CSS.
```bash
name=<name> # (обов'язково) назва сніпета
```
## Унікальні нотатки
Команди для [[Конструктор унікальних нотаток|Конструктора унікальних нотаток]].
### `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> # (обов'язково) назва сховища
```
## Вебпереглядач
Команди для [[Вебпереглядач|Вебпереглядача]].
### `web`
Відкрити URL у вебпереглядачі.
```bash
url=<url> # (обов'язково) 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> # (обов'язково) назва робочого простору
```
### `workspace:delete`
Видалити збережений робочий простір.
```bash
name=<name> # (обов'язково) назва робочого простору
```
### `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> # (обов'язково) метод 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> # (обов'язково) CSS-селектор
prop=<name> # фільтрувати за назвою властивості
```
### `dev:dom`
Запитувати DOM-елементи.
```bash
selector=<css> # (обов'язково) CSS-селектор
attr=<name> # отримати значення атрибута
css=<prop> # отримати значення CSS-властивості
total # повернути кількість елементів
text # повернути текстовий вміст
inner # повернути innerHTML замість outerHTML
all # повернути всі збіги замість першого
```
### `dev:mobile`
Увімкнути/вимкнути емуляцію мобільного.
```bash
on # увімкнути емуляцію мобільного
off # вимкнути емуляцію мобільного
```
### `eval`
Виконати JavaScript та повернути результат.
```bash
code=<javascript> # (обов'язково) код 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, у вашому `~/.zprofile` може залишитися запис PATH. Новий процес реєстрації видаляє його автоматично, але якщо він залишається, ви можете безпечно видалити рядки, що починаються з `# 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
```