Cherri — язык программирования, который компилируется в Apple Shortcuts

Open-source язык на Go с синтаксисом, похожим на C/JavaScript. Компилируется в подписанные .shortcut-файлы для iPhone, iPad и Mac. Поддерживает функции, includes и систему типов.

Обложка: Cherri — язык программирования, который компилируется в Apple Shortcuts

Apple Shortcuts — мощный инструмент автоматизации, но писать сложные шорткаты через визуальный редактор iOS — занятие для терпеливых. Cherri решает эту проблему: вы пишете код на десктопе, а компилятор создаёт подписанный .shortcut-файл, готовый к запуску на iPhone, iPad и Mac.

Cherri (произносится как cherry) — язык программирования, который компилируется напрямую в Apple Shortcuts. Проект написан на Go, имеет расширение для VS Code, нативное macOS-приложение и набрал 347 баллов на Hacker News.

Ключевые выводы
  • Cherri — язык программирования, компилирующийся в подписанные Apple Shortcuts
  • Синтаксис похож на привычные языки: переменные, функции, includes, система типов
  • Разработка на десктопе — VS Code, CLI или нативное macOS-приложение
  • Оптимизирует размер и потребление памяти скомпилированных шорткатов
  • Open source на Go, 1240+ звёзд на GitHub

Зачем нужен язык для Apple Shortcuts

Apple Shortcuts (ранее Workflow) позволяют автоматизировать действия на iOS и macOS: от отправки сообщений до управления умным домом. Но визуальный редактор ограничивает: нет переменных в привычном смысле, нет модульности, нет контроля версий. Для сложных автоматизаций из десятков действий процесс превращается в перетаскивание блоков.

Cherri переносит разработку на десктоп: вы пишете код в текстовом редакторе, компилятор создаёт .shortcut-файл, который можно открыть на iPhone или Mac. Это даёт привычные инструменты — Git, VS Code, includes, функции — для платформы, которая их не предоставляет.

Как выглядит код на Cherri

Синтаксис Cherri напоминает смесь C и JavaScript — с переменными, условиями, функциями и системой типов:

			/* Проверка интернет-соединения */
#include 'actions/network'
#include 'actions/scripting'

function checkNet() {
    const online = isOnline()
    if !online {
        alert("Нет интернета!", "Ошибка")
    }
    output(online)
}

@result = checkNet()
show("{result}")
		

Ключевые возможности языка:

  • Переменные и константы — magic variables из Shortcuts становятся обычными константами
  • Функции — работают через Run Shortcut с собственной областью видимости
  • Includes — подключение нескольких файлов для модульных проектов
  • Система типов — проверка типов при компиляции, чтобы шорткат работал при запуске
  • Макросы copy/paste — копирование блоков кода при компиляции
  • Raw Actions — прямая вставка любых Shortcuts-действий, включая сторонние

Установка и запуск

Cherri устанавливается через Go:

			go install github.com/electrikmilk/cherri@latest
		

Компиляция .cherri-файла в .shortcut:

			cherri hello.cherri
		

Результат — подписанный .shortcut-файл, готовый к AirDrop на iPhone или открытию на Mac. Также доступны:

LLM научились писать на Cherri

В обсуждении на Hacker News разработчик Alin Panaitiu отметил, что Claude успешно обучается Cherri с нуля — по документации — и генерирует компилируемые шорткаты. Это открывает сценарий, где пользователь описывает автоматизацию на естественном языке, а LLM пишет код на Cherri, который компилируется в готовый Shortcut.

Часто задаваемые вопросы
1
Что такое Cherri?

Cherri — язык программирования с открытым исходным кодом, который компилируется напрямую в подписанные Apple Shortcuts (.shortcut-файлы). Написан на Go, поддерживает переменные, функции, includes, систему типов и макросы. Позволяет разрабатывать сложные шорткаты на десктопе с привычными инструментами.

2
На каких устройствах работают скомпилированные шорткаты?

На всех Apple-устройствах с поддержкой Shortcuts: iPhone, iPad и Mac. Скомпилированный .shortcut-файл можно передать через AirDrop, iCloud или просто открыть на Mac. Для разработки нужен компьютер с Go, но запуск — на любом Apple-устройстве.

3
Можно ли использовать Cherri без macOS?

Да. Компилятор написан на Go и работает на любой ОС — Windows, Linux, macOS. Есть онлайн-площадка Cherri Playground для экспериментов без установки. Однако для тестирования скомпилированных шорткатов понадобится устройство Apple.

4
Чем Cherri лучше визуального редактора Shortcuts?

Текстовый код можно хранить в Git, делить на модули через includes, использовать функции и макросы, работать в привычном редакторе. Компилятор оптимизирует размер шорткатов и проверяет типы. Для автоматизаций из десятков действий это значительно удобнее визуального перетаскивания блоков.

Что в итоге

Cherri — нишевый, но элегантный инструмент для тех, кто упёрся в ограничения визуального редактора Apple Shortcuts. Код на GitHub: electrikmilk/cherri, документация: cherrilang.org.