Claude Info
AI и агенты

rigup.nix

YPares/rigup.nix

rigup.nix — Nix-система для упаковки знаний, инструкций и скиллов AI-агента вместе с нужными инструментами. Поддерживает модульные «риглеты», интеграцию с Claude Skills и воспроизводимую сборку окружения агента.

Установка

terminal
bash
git clone https://github.com/YPares/rigup.nix.git

README

logo

Самодостаточная и модульная конфигурация AI-агента

rigup — Nix-система для упаковки знаний, инструкций и скиллов вашего AI-агента вместе с инструментами и конфигурацией, необходимыми для их выполнения.

Риглет — это исполняемое знание:

  • метаданные, указывающие агенту, для чего предназначен риглет и когда его полезно использовать
  • набор операций, инструкций, процессов — то есть новый Skill для вашего агента
  • инструменты (nix-пакеты), необходимые для выполнения этих инструкций
  • конфигурация этих инструментов (при наличии)

Комбинируя нужные риглеты, вы собираете риг агента: инструменты для работы над проектом и операционные знания для их правильного и эффективного использования.

По умолчанию документация риглета загружается лениво (как и Skills): при запуске агенту передаётся манифест, содержащий для каждого риглета лишь краткое описание и набор сценариев использования. Агент обращается к полному содержимому по мере необходимости или по запросу. Однако rigup даёт больше контроля над тем, когда агент должен получать содержимое риглета. Например, фундаментальный риглет можно настроить на немедленное раскрытие (агент видит весь SKILL.md при запуске), а другой — на shallow-toc (агент видит оглавление основного SKILL.md).

rigup построен по принципу «знания прежде всего»: документация — это полезная нагрузка, инструменты — зависимости. Главной точкой входа в риг будет манифест RIG.md, который rigup сгенерирует для вашего AI-агента, и через который тот обнаружит все доступные инструменты, знания и процессы.

Коротко: rigup — это параметризуемые скиллы агента + лёгкое управление домашним окружением агента с высоким уровнем совместимости с Claude Skills и маркетплейсами плагинов Claude, что делает повторное использование опубликованных Skills в качестве основы для риглетов максимально простым.

Быстрый старт

Сначала установите CLI-инструмент rigup:

nix profile add github:YPares/rigup.nix#rigup

Кешированные бинарники предоставляются garnix.io (для x86_64 Linux и ARM64 OSX). При первом запуске Nix предложит принять конфигурацию flake для активации garnix как substituter.

ПРИМЕЧАНИЕ: В старых версиях Nix вместо add используется install.

Для обновления уже установленного инструмента:

nix profile upgrade rigup

Этот CLI упрощает:

  • получение информации о риглетах и ригах, предоставляемых flake и его входными данными (rigup show)
  • просмотр содержимого рига, включая доступные опции кастомизации с описанием, типом, значением по умолчанию и текущим значением (rigup inspect)
  • прямой запуск harness для агента (rigup run или просто rigup), если риг содержит риглет с точкой входа. Точки входа работают как коннекторы, оборачивая исполняемый harness для запуска с нужной конфигурацией
  • сборку полного рига в виде папки с симлинками (rigup build)
  • использование рига как субоболочки с настроенными $PATH и $RIG_MANIFEST (путь к RIG.md) (rigup shell)

(Все эти команды — лишь удобные обёртки вокруг Nix-библиотеки rigup. При желании можно использовать стандартные команды nix {build,develop,run})

Затем можно создать новый проект из шаблонов этого репозитория или сразу собрать пример рига, определённого здесь.

Использование рига из этого проекта (или любого другого репозитория с rigup)

Проект содержит примеры риглетов и пример рига, их объединяющего.

bash
# Показать риглеты и риги, предоставляемые удалённым flake
rigup show github:YPares/rigup.nix
# Показать все метаданные о риглетах и содержимом каждого рига
rigup show --detailed github:YPares/agent-skills  # репозиторий Skills, также упакованных через rigup

# Собрать риг из удалённого flake
rigup build github:YPares/rigup.nix#example-rig # собирает <flake>#rigs.<system>.example-rig.home и выводит симлинк

# Открыть риг из удалённого flake в субоболочке
rigup shell github:YPares/rigup.nix#example-rig

# Запустить точку входа рига (если она есть)
rigup run github:YPares/agent-skills#claude-rig
  # Затем в Claude Code: Ctrl+o для просмотра деталей и манифеста RIG.md, переданного Claude через startup hook
rigup run github:YPares/agent-skills#copilot-rig
  # Почти тот же риг, но с `copilot-cli` в качестве точки входа

Создание нового проекта

Создайте проект из одного из шаблонов репозитория:

bash
rigup new foo [-t minimal]
  # Используйте шаблон 'minimal' для проекта без локальных риглетов

cd foo

Это создаст папку ./foo, инициализирует её как git-репозиторий, вызовет nix flake init для создания базовой структуры проекта с flake.nix, примерами риглетов и ригов, добавит все файлы в git (важно) и запустит nix flake check для проверки корректности.

bash
# Список доступных риглетов из self flake и его входных данных
rigup show --detailed --with-inputs

# Собрать риг
rigup build ".#default"

# Изучить риг
cat .rigup/default/RIG.md

# Или открыть риг как субоболочку вместо создания локального симлинка
rigup shell ".#default"

Отредактируйте riglets/*.nix и rigup.toml для кастомизации проекта.

Шаблон по умолчанию включает примеры риглетов и демонстрирует, как rigup поддерживает использование Claude Marketplace в качестве прямого входного источника для импорта существующих Skills и их использования как основы для риглетов.

Подробнее

В этом разделе описан общий процесс определения и редактирования риглетов и ригов.

Создание риглета

Риглеты — простой сценарий использования Nix-модулей. Конкретно: риглет (в наиболее общей форме) — это Nix-функция (config, dependencies) -> data, где:

  • config — итоговая конфигурация рига, частью которого является риглет
  • data — результирующие данные риглета

Похожие скиллы