Forkpress — CLI tools for Agent Era


Интересный проект-эксперимент состоявшийся весной 2026 года.

Идея была в том чтобы создать удобный CLI-инструмент в виде единого исполняемого файла (single binary) без внешних зависимостей для быстрого старта среды разработки c поддержкой АИ-агентов системой версионирования на Git и worktree.


Репозиторий:

https://github.com/Automattic/forkpress

WordPress, but git

  • Last Update 06-07-2026
  • Open Issues 13

AI-документация по репозиторию на DeepWiki

Видео-обзор(англ.)

на видео показан типичный воркфлоу с forkpress с обзоров возможностей данного инструмента

Основные возможности:

  • Локальный запуск WordPress через единый бинарный файл
  • Мгновенное создание веток с изолированными SQLite базами данных
  • Отдельные URL для предпросмотра каждой ветки (например, http://marketing.wp.localhost:18080/)
  • Управления файлами и базой данных WordPress в стиле Git


Структура веток:

Каждая ветка представляет собой обычную директорию WordPress рядом с .forkpress:

.forkpress/        # Метаданные ForkPress, runtime, логи и хранилище
main/              # Основная WordPress-ветка
marketing/         # Ветка marketingCode language: PHP (php)

Каждая ветка имеет свою SQLite базу данных по пути wp-content/database/.ht.sqlite, что обеспечивает полную изоляцию изменений.


Управление ветками

# Создание ветки
forkpress branch create marketing
forkpress branch create marketing --from staging

# Просмотр веток
forkpress branch list
forkpress branch show marketing

# Сброс и удаление
forkpress branch reset marketing --from main
forkpress branch delete marketingCode language: PHP (php)


Интеграция с Git

# Клонирование сайта
forkpress clone http://wp.localhost:18080/site.git site
cd site

# Переключение веток
git fetch origin
git switch marketing

# Коммит изменений
forkpress commit -m "Update marketing page"Code language: PHP (php)

Дополнительные возможности

  • Agent worktrees — рабочие пространства для AI-агентов
  • Переключатель веток в админ-баре WordPress
  • Редактированные снапшоты базы данных для контекста моделей
  • Аудируемые решения по слиянию
  • CLI-диагностика для логов и хранилища

Причины архивации проекта

Проект был архивирован по фундаментальной причине:

Проблема семантического слияния баз данных WordPress

Эксперимент показал, что универсальное слияние веток базы данных WordPress не может быть надежно решено на уровне инструментов вне ядра WordPress. Причины:

  1. Семантическая сложность данных: WordPress хранит состояние приложения в строках, смысл которых зависит от:
    • Поведения ядра
    • Поведения плагинов
    • Опций
    • Типов записей
    • Мета-данных записей
    • Таксономий
    • Специальных соглашений
  2. Ограничения инструментов слияния: Инструмент слияния может обнаружить, что строки изменились, но не может надежно определить семантическое намерение этих изменений или создать безопасный комбинированный результат для произвольных сайтов.
  3. Необходимость изменений в ядре: Для надежной работы потребовалось бы:
    • Явное моделирование данных в ядре WordPress
    • Семантика слияния на уровне ядра
    • API для участия плагинов в процессе слияния

Выводы проекта

ForkPress доказал, что:

  • Единый бинарный файл может запускать WordPress локально
  • Можно создавать дешевые copy-on-write ветки
  • Можно предоставлять предпросмотр веток
  • Можно сделать часть рабочего процесса похожей на Git

НО:

Универсальное слияние веток базы данных WordPress не может быть надежно реализовано без поддержки на уровне ядра WordPress