Lionclaw

by moshthepitt (community) · Codex, OpenCode, Claude Code, Gemini CLI, любые агентские CLI-инструменты

Assistant AI Assistants Open Source v0.8.0 · 10.06.2026 активный

Локальная control plane для AI coding-агентов. Запускает агентов как durable, auditable воркеров с явным состоянием, навыками, каналами, расписаниями и ограниченными правами.

v0.8.0
10.06.2026 current

Установка
git clone https://github.com/moshthepitt/lionclaw.git
cd lionclaw
cargo build --workspace --release
export PATH="$PWD/target/release:$PATH"
показать оригинал переведено ИИ

LionClaw

LionClaw запускает реальные агентские CLI как помощников проекта.

Codex остается Codex. OpenCode остается OpenCode. LionClaw — это локальный управляющий слой вокруг них: идентичность проекта, конфигурация выполнения, долговременные сессии, локальное состояние, каналы, запланированные задачи и журнал аудита.

Используйте тот агентский харнесс, который хотите. Граница вокруг вашего проекта остается вашей.

git clone https://github.com/moshthepitt/lionclaw.git
cd lionclaw
cargo build --workspace --release
export PATH="$PWD/target/release:$PATH"

cd /path/to/your/project
lionclaw doctor

doctor указывает на следующую проблему настройки. Исправьте, перезапустите, повторите; когда настройка будет готова, выполните команду, которую он выведет следующей.

Зачем нужен LionClaw

ИИ будет иметь значение. Вероятно, большое.

И если он будет иметь значение, то мы не должны идти на поводу у будущего, где горстка крупных компаний владеет агентами, памятью, инструментами, рабочими процессами, учетными данными, журналами и в конечном счете самой формой работы. Мы уже видели этот фильм. Он назывался Web 2.0, и закончился тем, что все арендовали свою жизнь обратно у платформ.

LionClaw — это маленький отказ от такого будущего.

Модель может быть коммерческой. Это нормально. Агентский харнесс может быть Codex, OpenCode, Claude Code, Gemini CLI или чем-то лучшим, что появится в следующем месяце. Тоже нормально. Но граница вокруг агента должна принадлежать вам: проект, в котором он работает, состояние, которое он видит, учетные данные, которые он получает, каналы, которые могут до него дотянуться, задачи, которые он выполняет, и журнал аудита, который он оставляет.

LionClaw сохраняет эту границу локальной, явной и заменяемой.

Это важно, потому что в будущем, вероятно, не будет одного агента. Будет много агентских харнессов, каждый хорош в своем, у каждого свои странные сильные и слабые стороны. LionClaw дает одному проекту стабильный дом для ассистента, пока эти рантаймы приходят и уходят.

Он также намеренно мал. Не потому, что маленький — это мило, а потому, что маленький можно проверить. Маленькое можно понять. Маленькое может изменить один человек с выходными, обидой и достаточно веской причиной.

Это ставка: реальные агенты, локальные границы, контроль, принадлежащий пользователю.

Как работает LionClaw

Проект LionClaw — это обычный проект с каталогом .lionclaw/.

Этот каталог — локальный управляющий слой. Он хранит идентичность проекта, экземпляры, профили выполнения, сессии, записи аудита, установленные навыки, привязки каналов, задачи и приватное состояние рантайма.

Когда вы запускаете:

lionclaw run

LionClaw открывает консоль оператора проекта при подклющении к терминалу. Консоль держит текущий контекст в верхней ленте и повседневный поток взаимодействия в одной поверхности Run: долговременная расшифровка, ввод запроса, живой статус рантайма и недавние изменения файлов. На широкых терминалах объекты проекта остаются видимыми рядом с Run, а правая колонка держит инспектор и панель измененных файлов вместе. Детали потока рантайма показываются инлайн для активного хода и как проверяемая активность, а не смешиваются с долговременным разговором.

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

lionclaw run --plain

Использование без терминала автоматически остается на простком пути.

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

<<>>

Этот путь все равно проходит через план рантайима LionClaw,, монтирования, поэтапную аутентификацию, контекст промпта, выбранный политикой, и журнал аудита. LionClaw записывает этот контекст в состояние управления рантайимом, ограниченное сессией, как AGENTS.generated.md и стандартный для рантайима AGENTS.md. Нативный приватный дом рантайима моннтируется отдельно в /runtime/home и сохраняется между сессиями LionClaw для одного и того же проекта, рантайима, совместимости идентичности и формы безопасности выполнения, включая доступ к рабочему пространству, сетевой режим, политику установки, секретные монтирования и классы побега. Для Codex LionClaw использует внешний контейнер как границу песочницы и запускает внутренний интерфейс Codex без собственного слоя песочницы/подтверждения; переопределения конфигурации Codex при запуске помечают рабочее пространство контейнера как доверенное и отключают проверки обновлений без перезаписи конфигурации Codex, принадлежащей рантайму. Завершенные ходы Codex и других нативных интерфейсов остаются внутри интерфейса рантайима; присоединенный режим не импортирует нативные расшифровки в историю сессии LionClaw и не изменяет состояние продолжения, используемое управляемыми ядром ходами, и не потребляет сохраненный маркер готовности сессии рантайима, который используют последующие управляемые ходы. Предыдущая история сессии LionClaw все равно включается в генерируемый контекст рантайима. LionClaw не собирает вывод терминала. Поскольку это собственный TUI рантайима, здесь нет командного слоя LionClaw. внутри него. Слэш-команды LionClaw, такие как /lionclaw reset, там недоступны; используйте обычные lionclaw run, run --plain или канальные пути, когда вам нужны элементы управления, принадлежащие LionClaw. Функции LionClaw, ограниченные ходом выполнения (turn-scoped), которые требуют активного хода, управляемого ядром, такие как программный мост channel.send или его MCP-инструмент channel_send, не проецируются в собственные TUI-сессии рантайма.

Выбранный рантайм по-прежнему выполняет работу агента. LionClaw владеет границей вокруг него: проектом, в котором он работает, состоянием, которое он видит, монтированиями, которые он получает, учётными данными, которые подготавливаются, долговременной сессией и записью о том, что произошло.

Вот разделение: рантайм выполняет работу агента. LionClaw решает, где он работает, что он может видеть и что записывается.

Настройка проекта

Запустите doctor из проекта, которым вы хотите, чтобы владел LionClaw:

cd /path/to/your/project
lionclaw doctor

Следуйте командам исправления, пока doctor не сообщит об отсутствии блокирующих проблем настройки. Затем запустите настроенный рантайм:

lionclaw run

В терминале run открывает консоль оператора. Используйте lionclaw run --plain для интерактивного пути, ориентированного на строки, или lionclaw run --runtime-tui, чтобы подключиться напрямую к собственному терминальному интерфейсу выбранного рантайма внутри границы LionClaw. Интерактивные запуски терминала по умолчанию возобновляют последнюю сессию LionClaw; передайте --new-session, чтобы начать новую сессию LionClaw, сохраняя постоянный домашний каталог, характерный для рантайма.

Внутри консоли Tab и Shift+Tab перемещают фокус между Run и элементами управления. Ctrl+O фокусирует элементы управления, Left и Right циклически переключают проект, рантайм, границу, активность, аудит и файлы, Ctrl+X разворачивает Run или активную панель управления, Ctrl+P открывает команды и справку, Ctrl+C прерывает активный ход, а Ctrl+D завершает работу в состоянии простоя. Enter отправляет подсказку или активирует выбранный элемент проекта, когда активны элементы управления проектом. После отправки подсказки Run остаётся активной прокручиваемой поверхностью; ввод печатаемых символов продолжает редактирование подсказки в той же поверхности.

Для Codex используйте вошедший в систему CLI Codex и запускайте LionClaw там, где доступен исполняемый файл podman. Если run сообщает об отсутствующем образе рантайма, соберите или предоставьте образ, указанный в ошибке. Встроенное определение образа находится в containers/runtime/Containerfile. Этот образ по умолчанию намеренно полезен для повседневной работы ассистента: он включает Codex, OpenCode, git, ripgrep, curl, jq, Python, вспомогательные инструменты архивирования, инструменты для работы с PDF-текстом и ffmpeg/ffprobe для базовой проверки мультимедиа без включения браузеров, SDK, языковых пакетов OCR или локальных весов моделей.

Рецепты образов контейнеров, включая образ разработки LionClaw с поддержкой Rust, описаны в containers/README.md.

doctor проверяет настройку и выводит следующую команду запуска, когда настройка больше не блокируется. run проверяет запуск. Используйте lionclaw --help и справку подкоманды --help для текущего синтаксиса.

Аутентификация рантайма остаётся специфичной для рантайма. LionClaw подготавливает только те локальные файлы аутентификации рантайма, которые необходимы для ограниченного запуска.

Ограниченная структура рантайма:

  • /workspace: выбранный корень работы
  • /runtime: состояние управления рантаймом LionClaw в рамках сессии
  • /runtime/home: постоянный личный домашний каталог, характерный для рантайма
  • /drafts: область черновиков/вывода, ограниченная проектом
  • /lionclaw/project/instances.json: инвентарь экземпляров проекта, доступный только для чтения, присутствует для программных рантаймов, поддерживаемых проектом
  • /lionclaw/skills/<alias>: установленные ресурсы навыков, не являющихся канальными
  • /mnt/<target>: дополнительные каталоги, настраиваемые оператором

/runtime/home может содержать аутентификацию рантайма, конфигурацию, базы данных, кеши и историю. LionClaw не рассматривает весь собственный домашний каталог как артефакт или корень вложений channel.send; экспортируемыми являются только состояние управления рантаймом и явные каталоги сгенерированных артефактов.

Сетевая политика намеренно грубая на сегодняшний день: on или none. on использует сетевое пространство имён Podman, а не сеть хоста.

Дополнительные монтирования рантайма являются явным состоянием профиля рантайма. Используйте короткий целевой токен для обычного пути /mnt/<token> или абсолютную цель контейнера, когда это необходимо:

lionclaw runtime mount add codex docs --source /absolute/docs
lionclaw runtime mount add codex /reference/docs --source /absolute/docs --read-write
lionclaw runtime mount list codex
lionclaw runtime mount remove codex docs

Монтирования по умолчанию доступны только для чтения. LionClaw отклоняет файлы, отсутствующие каталоги, метаданные проекта/корня работы и пути состояния экземпляра, дублирующиеся цели и зарезервированные пути рантайма, такие как /workspace, /runtime, /drafts, /attachments, /lionclaw, /run/secrets, /proc, /sys и /dev. Аргументы bind-mount Podman также должны быть представимы: запятые принимаются только тогда, когда ни исходный, ни целевой путь не требует формы --mount из-за содержания :.

Проекты и экземпляры

lionclaw project init создаёт .lionclaw/project.toml и экземпляр main по умолчанию в .lionclaw/instances/main. Проект — это локальная граница управления. Домашний каталог экземпляра хранит конфигурацию, базу данных, журналы, установленные навыки, закрытое состояние среды выполнения, черновики и непрерывность домашнего каталога ассистента.

Каждый экземпляр проекта записывает корневой каталог работы по умолчанию. project init указывает main на корень проекта, и instance create <name> делает то же самое, если не передать --work-root PATH. Ограниченная среда выполнения видит выбранный корень работы в /workspace.

Среды выполнения на основе проекта также получают LIONCLAW_PROJECT_INSTANCE и LIONCLAW_PROJECT_INSTANCES_FILE. Файл — это доступная только для чтения сгенерированная проекция имён настроенных экземпляров проекта, а не монтирование сырых метаданных .lionclaw. Когда активный пресет разрешает channel.send на основе программы, та же проекция может включать статус контактов соседей, связанный с перезапуском; только настроенные маршруты соседей раскрывают ссылки на каналы и провайдеров.

Экземпляры проекта могут предоставлять предпочтительные контакты через конфигурацию навыков каналов. Настройка, поведение маршрутизации и заметки о транспорте для конкретного канала хранятся вместе с владеющим навыком в skills/.

Без --home или --project LionClaw обнаруживает только текущий каталог и его непосредственного родителя. Используйте --home PATH, когда нужно указать один точный домашний каталог экземпляра и обойти обнаружение проекта. Используйте lionclaw instance --help для текущих команд экземпляра.

Каналы и фоновая работа

Каналы — это навыки, которые работают вне ядра Rust. Они подключают LionClaw к транспорту, не встраивая поведение, зависящее от провайдера, в доверенное ядро.

Интерактивные каналы работают в текущем терминале. Фоновые каналы управляются через платформенный бэкенд и хранят объявленные переменные окружения канала в выбранном домашнем каталоге экземпляра, а не в случайном состоянии оболочки.

Используйте lionclaw up, когда хотите, чтобы LionClaw оставался доступным после закрытия текущего терминала. Используйте справку команд для текущего синтаксиса каналов и фоновой работы. Используйте документацию владеющего навыка в skills/ для настройки и операций, специфичных для канала.

Задания

Задания выполняют промпты на основе времени в свежих изолированных сеансах и могут доставлять конечный результат через настроенный канал.

Они настраиваются через lionclaw job. Используйте lionclaw job --help для текущей поверхности команд.

Доктор

lionclaw doctor доступен только для чтения. Он диагностирует разрешение целей, состояние проекта, конфигурацию среды выполнения, каналы, управляемые модули и расхождение привязок конфигурации без выделения портов, запуска модулей, остановки модулей или изменения файлов.

Если в текущем каталоге или его непосредственном родителе нет проекта, doctor рассматривает текущий каталог как цель диагностики, сообщает no LionClaw project found и сообщает, как его инициализировать.

Результаты отображаются как стабильные записи руководства:

[LC-D001] error: configured bind is occupied
target: instance main configured bind 127.0.0.1:8787
expected: no listener, or the owned managed daemon for this instance
observed: 127.0.0.1:8787 is used by a non-LionClaw process
inspect: ss -ltnp '( sport = :8787 )'
note: stop the process shown by inspect

Информация и предупреждения носят рекомендательный характер и завершаются кодом 0. Ошибки завершаются кодом 1, а внутренние сбои доктора — кодом 2.

Требования

lionclaw run в настоящее время поддерживает Unix-подобные системы. Управляемые фоновые пути, включая lionclaw up и фоновые каналы, в настоящее время требуют Linux с пользовательским менеджером systemd.

Структура состояния

Состояние на уровне проекта хранится в .lionclaw/:

  • project.toml
  • instances/main/
  • instances/<name>/

Домашний каталог каждого экземпляра содержит:

  • db/lionclaw.db
  • config/lionclaw.toml
  • config/instance.toml
  • config/channels/<channel>.env
  • config/runtime-secrets.env
  • skills/<alias>/
  • workspaces/main/
  • runtime/
  • units/

Документация

  • Архитектура — доверенное ядро, граница среды выполнения, каналы, планировщик, аудит и контракты API
  • Ручное тестирование — повторяемый контрольный список живого приёма
  • Процесс выпуска — подготовка и публикация выпусков
  • Скрипты — вспомогательные инструменты для разработчиков и CI

Лицензия

MIT. См. LICENSE.

Войдите, чтобы оставить комментарий