Перейти к основному содержанию

Требования

  • Node.js 24+Скачать здесь
  • Yarn 4 — поставляется вместе с Node.js через Corepack. Включите его, выполнив corepack enable
  • DockerСкачать здесь. Требуется для запуска локального экземпляра Twenty. Пропустите, если у вас уже запущен Twenty в другом месте.
Создание приложения Twenty включает три фазы. Генератор каркаса объединяет их в одну команду для идеального сценария (happy path), но каждая фаза — отдельная концепция: когда что-то идёт не так, понимание того, на какой фазе вы находитесь, подскажет, что исправить.
ФазаЧто вы делаетеИнструментРезультат
1. Создание каркасаСгенерировать исходный код приложенияnpx create-twenty-appПроект TypeScript на диске
2. Запустить серверЗапустить сервер Twenty для синхронизацииDocker + yarn twenty serverЗапущенный экземпляр Twenty
3. СинхронизацияСинхронизируйте код с сервером в реальном времениyarn twenty devВаши изменения появляются в интерфейсе

Фаза 1 — Сгенерируйте каркас проекта

Создайте новое приложение из шаблона:
npx create-twenty-app@latest my-twenty-app
Вам будет предложено ввести имя и описание — нажмите Enter, чтобы принять значения по умолчанию. Это создаст проект TypeScript в my-twenty-app/ с начальным файлом application-config.ts, ролью по умолчанию, рабочим процессом CI и интеграционным тестом. После этой фазы: у вас есть исходный код приложения на вашем компьютере. Он ещё не запущен — это фаза 2.

Фаза 2 — Запустите локальный сервер Twenty

Вашему приложению нужен сервер Twenty для синхронизации. Сервер — это полноценный экземпляр Twenty — UI, GraphQL API, PostgreSQL — работающий локально в Docker. Ваш локальный код загружает свои определения на этот сервер, благодаря чему они появляются в интерфейсе. Генератор каркаса предложит запустить его за вас:
Хотите настроить локальный экземпляр Twenty?
  • Да (рекомендуется) — скачивает Docker-образ twentycrm/twenty-app-dev и запускает его на порту 2020. Сначала убедитесь, что Docker запущен.
  • Нет — выберите это, если у вас уже есть сервер Twenty, к которому вы хотите подключиться. Позже вы можете подключить его с помощью yarn twenty remote:add.
Запустить локальный экземпляр?
Когда сервер будет запущен, откроется браузер для входа. Используйте предварительно созданную демонстрационную учётную запись:
  • Электронная почта: tim@apple.dev
  • Пароль: tim@apple.dev
Экран входа в Twenty
На следующем экране нажмите Authorize — это даст CLI доступ к вашему рабочему пространству.
Экран авторизации Twenty CLI
В вашем терминале появится подтверждение, что всё настроено.
Каркас приложения успешно создан
После этой фазы: у вас запущен сервер Twenty на http://localhost:2020, а ваш CLI авторизован для синхронизации с ним.
Если Docker не установлен или не запущен, генератор каркаса подскажет правильную команду запуска для вашей ОС. Когда Docker будет запущен, вы можете продолжить с yarn twenty docker:start — заново генерировать каркас не нужно.

Фаза 3 — Синхронизируйте свои изменения

Это внутренний цикл, в котором вы проведёте большую часть времени.
cd my-twenty-app
yarn twenty dev
Эта команда отслеживает src/, пересобирает при каждом изменении и синхронизирует результат с сервером. Отредактируйте файл, сохраните — и через несколько секунд сервер отразит изменения. В терминале появится панель текущего статуса. Для более подробного вывода (журналы сборки, запросы синхронизации, трассировки ошибок) добавьте --verbose.
Вывод терминала в режиме разработки
Откройте http://localhost:2020/settings/applications#developer. Вы должны увидеть своё приложение в разделе Your Apps.
Список Your Apps с приложением My twenty app
Нажмите My twenty app, чтобы открыть его регистрацию приложения — запись на уровне сервера, описывающую ваше приложение (имя, идентификатор, учётные данные OAuth, источник). Одну и ту же регистрацию можно установить в нескольких рабочих пространствах на одном сервере.
Сведения о регистрации приложения
Нажмите View installed app, чтобы посмотреть установку в рабочем пространстве. Вкладка About показывает версию и параметры управления.
Установленное приложение
После этой фазы: у вас есть интерактивный цикл разработки. Отредактируйте любой файл в src/, и он появится в интерфейсе.

Разовая синхронизация для CI и скриптов

Передайте --once, чтобы выполнить одну сборку и синхронизацию и завершить работу — тот же конвейер, без наблюдателя:
yarn twenty dev --once
КомандаПоведениеКогда использовать
yarn twenty devОтслеживает и повторно синхронизирует при каждом изменении. Продолжает работать, пока вы его не остановите.Интерактивная локальная разработка.
yarn twenty dev --onceОдна сборка и синхронизация, завершает работу с кодом 0 при успехе и 1 при ошибке.CI, хуки pre-commit, AI-агенты, скриптовые рабочие процессы.
yarn twenty dev --once --dry-runСоздает и выводит изменения метаданных без их применения.Проверка того, какие изменения внесет синхронизация, прежде чем зафиксировать их.
Оба режима требуют аутентифицированного удалённого репозитория. Смотрите раздел Syncing & recovery для получения дополнительной информации о --dry-run.

Параметры режима разработки

ФлагОписание
--onceВыполнить сборку и синхронизацию один раз, затем завершить работу.
--dry-runС опцией --once можно просмотреть изменения метаданных, не применяя их. Ничего не записывает.
--debounceMs \<ms>Установить задержку дебаунса изменений файлов в миллисекундах (по умолчанию: 2000).
--verbose / --debugПоказывать подробные журналы сборки, запросы синхронизации и трассировки ошибок.

Что вы можете создать

Приложения состоят из сущностей — каждая определена как файл TypeScript с одним export default:
СущностьЧто делает
Объекты и поляПользовательские модели данных (почтовая открытка, счёт и т. д.) с типизированными полями
Логические функцииСерверный TypeScript, запускаемый HTTP-маршрутами, расписаниями cron или событиями базы данных
Фронтенд-компонентыReact-компоненты, которые отображаются внутри интерфейса Twenty (боковая панель, виджеты, командное меню)
Навыки и агентыВозможности ИИ — многократно используемые инструкции и автономные помощники
Представления и навигацияПредварительно настроенные представления списков и элементы бокового меню
Макеты страницПользовательские страницы сведений о записи с вкладками и виджетами
Полная справка: Концепции.

Следующие шаги

Конфигурация

Идентификация приложения, роль по умолчанию, хуки установки, публичные ресурсы.

Данные

Объекты, поля и двунаправленные связи.

Логика

Логические функции, навыки, агенты и OAuth-подключения.

Макет

Представления, навигация, макеты страниц, фронтенд-компоненты.

Операции

CLI, тестирование, удалённые серверы, CI и публикация вашего приложения.