OPENLZT

Автоматизируй lzt.market.
Открыто.

Self-hosted стенд: типизированный SDK, событийный движок, no-code автоматизации и MCP-сервер. Testnet-first — ноль реальных денег, пока сам не переключишь.

Собери свою команду установки
Режим маркета
testnet — мок, ничего не тратится
TLS без домена
самоподписанный сертификат на голом IP
Доменвместе с почтой включает HTTPS через Let’s Encrypt
Почта для Let’s Encrypt
Токен телеграм-ботане попадает в ссылку — это секрет
ID администраторовчерез запятую; без них бот не стартует
sudo bash <(curl -sSL https://open-lzt.chqcode.com/get/all.sh) --market-mode testnet --yes
Живая схема стенда — кликни узел, чтобы перейти к проекту
10проектов в экосистемеtestnetпо умолчаниюживаяпесочница без установки29инструментов у MCP

Один стенд.
Десять кубиков.

Каждый проект самостоятелен: бери один кубик или разворачивай весь стенд. Внизу — типизированный SDK, всё остальное стоит на нём.

Фундамент

pylzt

Типизированный async-фреймворк над API lzt.market, форума lolzteam и AntiPublic. Пул токенов, рейт-лимиты, прокси — из коробки. Сгенерирован из официальной OpenAPI-спеки. Sync-клиент — тот же движок, а не вторая реализация.

Python · async3 namespace: market · forum · antipublicOpenAPI-кодоген
Установка
$pip install pylztскопировано
В кодеClientConfig.for_testnet()Category.STEAM
Против мока токен не нужен.
python — pylzt
Безопасность по умолчанию

lzt-testnet

Мок-сервер поверхности API lzt.market на FastAPI. Оффлайн-двойник, против которого гоняются все проекты стенда — без токена, без реального маркета, без риска. Переключи тумблер и посмотри, куда бьют запросы.

FastAPIбез токенаоффлайн
Попробовать прямо сейчас — ставить ничего не нужно
$curl -sS https://open-lzt.chqcode.com/testnet/testnet/healthскопировано
$git clone .../lzt-testnetскопировано
$scripts/run.shскопировано
Флаги--port 8765--chaos
Публичная песочница живёт на open-lzt.chqcode.com/testnet и чистится каждую ночь. Свой экземпляр слушает 127.0.0.1:8765.
testnet · безопасно
GET 127.0.0.1:8765/market/me 200
POST 127.0.0.1:8765/market/bump 200
GET 127.0.0.1:8765/market/payments 200
Деньги не тратятся: все запросы идут в мок.
Событийный движок

lzt-eventus

Опрашивает маркет и превращает его в долговечный, воспроизводимый лог событий. На лог подписывается кто угодно — свой же процесс, вебхук на другом хосте, SSE/WS-стрим, cron-поллер. У каждого свой курсор, catch-up после простоя, ретраи и DLQ.

durable-лог4 транспортаповерх pylzt
Установка
$git clone .../lzt-eventus lzt-coreскопировано
$scripts/quickstart.shскопировано
$uv run python -m lzt_eventus runскопировано
Флаги--dry-run
Стек поднимается из deploy/docker-compose.yml. С --dry-run поллит и диффит, но не пишет.
eventus — live
12:04:01order.paid#8412 · аккаунт продан за 1,250.00 ₽
12:04:07item.bumpedлот #5531 поднят
12:04:16message.newпокупатель: «Данные пришли, спасибо»
12:04:22item.viewedлот #5531 · 12 просмотров/мин
12:04:30payment.outвывод 3,000.00 ₽ подтверждён
RESTWEBHOOKSSEWS
No-code автоматизации

auto-lzt

Серверный движок автоматизаций. Описываешь задачу — «поднимай лоты каждый день» — как граф-флоу, движок исполняет по расписанию. Канвас на React Flow, расширяется Python-плагинами владельца.

flow-графыReact Flow канвасплагины владельца
Установка — весь стенд одним скриптом
$bash <(curl -sSL open-lzt.chqcode.com/get/all.sh)скопировано
$pnpm --dir frontend devскопировано
Канвас поднимется на localhost:5173. Для сборки панели нужны node 20+ и pnpm.
auto-lzt — flow
каждый деньподнять лотыпроверить статусуведомитьflow: bump-daily · исполняется по расписанию
Клиент к движку

lzt-eventus-sdk

Async-клиент к management-API движка: подписки, опрос, проверка webhook-подписи. Подключаешь свой сервис к шине событий тремя строками — курсор и catch-up движок держит сам.

подпискиверификация подписиpoll · webhook · SSE · WS
Установка
$pip install lzt-eventus-sdkскопировано
$pip install lzt-eventus-sdk[ws]скопировано
ТранспортыWEBHOOKSSEWEBSOCKET
WebSocket-источник живёт в отдельном extra.
python — eventus-sdk
from lzt_eventus_sdk import ManagementClient from lzt_eventus_sdk.types import SubscriptionTransport async with ManagementClient("http://127.0.0.1:8080") as mc: await mc.create_subscription( transport=SubscriptionTransport.WEBHOOK, url="https://my.app/hook", )
webhook signature — verified
Для dev-агентов

lzt-dev-mcp

29 инструментов для ИИ-агента: слать и тестировать сырые API-запросы, управлять сценариями auto-lzt и подписками eventus, изучать поверхность API без грепа исходников. По умолчанию testnet — прод жёстко заблокирован.

MCP · 29 инструментовtestnet-firstинтроспекция API
Запуск
$uv run python -m lzt_dev_mcp --http --port 8765скопировано
Флаги--http--port 8765
Подключи http://127.0.0.1:8765 как MCP-сервер в своём агенте.
agent — lzt-dev-mcp
Подними мои лоты и покажи баланс.
tool: auto_lzt.run_flow("bump") · testnet
Готово: 14 лотов подняты. Баланс 2,410.00 (testnet).
Каталоги расширений

lzt-flows + plugins

lzt-flows — комьюнити-каталог готовых сценариев: автовыкуп по Steam, Riot, Supercell, Fortnite, Telegram — и снайпер по любой из 21 категории. lzt-plugins — каталог исполняемых Python-плагинов владельца: ноды, роутеры, обработчики.

9 модулей каталогаmanifest + flow.jsonPR-каталог
Установка модуля
bot/import bump-dailyскопировано
$install-flow.sh --module steam-autobuy --runскопировано
Параметры--module steam-autobuy--param max_price=10--param count=1--run
В боте: /modules — список, /import — установка.
каталог модулей
steam-autobuyАвтовыкуп аккаунтов Steam
riot-autobuyValorant и League of Legends
sniper-autobuyСнайпер по любой из 21 категории
bump-dailyЕжедневный подъём своих лотов
Дизайн-система

lzt-ui

Библиотека заготовок в визуальном языке LZT: чистый CSS и 150 строк ванильного JS. Без сборки, без зависимостей, без утилити-фреймворка. Один и тот же CSS потребляется и обычным HTML, и React-компонентами.

чистый CSSиконкиноль зависимостей
Подключение
html<link rel="stylesheet" href="lzt-ui.css">скопировано
html<script src="lzt-ui.js"></script>скопировано
html<script src="lzt-icons.js"></script>скопировано
lzt-ui — tokens
Кнопкачипстатус
Весь стенд разом

open-lzt

Монорепозиторий экосистемы: восемь проектов как git-субмодули под одной крышей. Один clone — и весь стенд у тебя, от SDK до панели. Установка и обновление — своими скриптами.

8 субмодулейdocker composeinstall · update
Установка
$bash <(curl -sSL open-lzt.chqcode.com/get/all.sh)скопировано
$git clone --recursive .../open-lzt.git /opt/open-lztскопировано
Эксплуатациялогиостановитьснести с данными
Без -v данные Postgres и Redis переживут переустановку.
shell
# весь стенд одной командой $ git clone --recursive https://github.com/open-lzt/open-lzt.git /opt/open-lzt
projects/pylztprojects/testnetprojects/eventusprojects/eventus-sdkprojects/flowprojects/mcpprojects/lzt-uilzt-flows

Поставить за минуту

Каждая строка кликабельна — копируется целиком.

Только SDK
$ pip install pylzt

Присоединяйся к нам!

github.com/open-lzt
Десять проектов, которые складываются друг на друга. Внизу — типизированный SDK, всё остальное стоит на нём. Бери один кубик или весь стенд одним скриптом.