---
title: Просмотр документов
description: Дерево объектов, поиск по имени и типу и просмотр свойств из терминала.
# Просмотр документов
CLI позволяет изучать документы дизайна без запуска редактора. Те же команды работают с открытым настольным приложением, если не указывать файл.
::: tip Установка
```sh
npm install -g @open-pencil/cli
# или
bun add -g @open-pencil/cli
brew install open-pencil/tap/open-pencil
```
:::
## Общие сведения
Количество страниц и объектов, используемые шрифты и размер файла:
openpencil info design.fig
## Дерево объектов
openpencil tree design.fig
## Поиск объектов
По типу:
openpencil find design.fig --type TEXT
По имени:
openpencil find design.fig --name "Button"
Параметры можно использовать одновременно.
## Запросы XPath
Селекторы XPath находят объекты по типу, атрибутам и положению в дереве:
openpencil query design.fig "//FRAME"
### По типу
openpencil query design.fig "//TEXT" # Все текстовые объекты
openpencil query design.fig "//COMPONENT" # Все компоненты
openpencil query design.fig "//INSTANCE" # Все экземпляры
### По атрибутам
openpencil query design.fig "//FRAME[@width < 300]" # Фреймы уже 300 пикселей
openpencil query design.fig "//*[@cornerRadius > 0]" # Объекты со скруглёнными углами
openpencil query design.fig "//*[@visible = false]" # Скрытые объекты
openpencil query design.fig "//TEXT[@fontSize >= 24]" # Крупный текст
openpencil query design.fig "//*[@opacity < 1]" # Объекты с неполной прозрачностью
### По имени и содержимому
openpencil query design.fig "//TEXT[contains(@name, 'Button')]"
openpencil query design.fig "//TEXT[contains(@text, 'Hello')]"
### По иерархии
openpencil query design.fig "//SECTION//TEXT" # Текст внутри секций
openpencil query design.fig "//FRAME/TEXT" # Непосредственные текстовые потомки фреймов
openpencil query design.fig "//COMPONENT_SET//INSTANCE" # Экземпляры внутри наборов компонентов
### Доступные атрибуты
`name`, `width`, `height`, `x`, `y`, `visible`, `opacity`, `cornerRadius`, `fontSize`, `fontFamily`, `fontWeight`, `layoutMode`, `itemSpacing`, `paddingTop`, `paddingRight`, `paddingBottom`, `paddingLeft`, `strokeWeight`, `rotation`, `locked`, `blendMode`, `text`, `lineHeight`, `letterSpacing`
## Свойства объекта
openpencil node design.fig --id 1:23
## Страницы и переменные
openpencil pages design.fig
openpencil variables design.fig
## Работа с открытым приложением
Если настольное приложение запущено, не указывайте путь к файлу. CLI подключится по RPC к открытому документу:
openpencil documents
openpencil tree
openpencil tree --document-id tab-123 --page-id 0:1
openpencil eval --document-id tab-123 --page-id 0:1 -c "..."
Для автоматизированных процессов сначала вызовите `openpencil documents --json`, а затем явно передавайте `--document-id` и `--page-id`, не полагаясь на видимую активную вкладку или страницу.
## Проверка качества
Проверка имён, компоновки, структуры и доступности:
openpencil lint design.fig
openpencil lint design.pen --preset strict
openpencil lint design.fig --rule color-contrast
openpencil lint design.fig --list-rules
Добавьте `--json`, если результат будет обрабатывать другая программа.
## Вывод JSON
Все команды поддерживают `--json`. Результат можно передать `jq`, проверке CI или другой программе:
openpencil tree design.fig --json | jq '.[] | .name'