OPENLZT

Automate lzt.market.
In the open.

A self-hosted stand: typed SDK, event engine, no-code automation and an MCP server. Testnet-first — zero real money until you switch it yourself.

View on GitHub$pip install pylzt
Build your install command
Market mode
testnet is a mock — nothing is spent
TLS without a domain
self-signed certificate on a bare IP
Domaintogether with the email it enables HTTPS via Let’s Encrypt
Email for Let’s Encrypt
Telegram bot tokennever written to the link — it is a secret
Admin idscomma separated; without them the bot does not start
sudo bash <(curl -sSL https://open-lzt.chqcode.com/get/all.sh) --market-mode testnet --yes
Live map of the stand — click a node to jump to its project
10projects in the ecosystemtestnetby defaultlivesandbox, nothing to install29tools in the MCP server

One stand.
Ten bricks.

Every project stands alone: take one brick or bring up the whole stand. At the bottom sits the typed SDK; everything else rests on it.

Foundation

pylzt

A typed async framework over the lzt.market API, the lolzteam forum and AntiPublic. Token pool, rate limits and proxies out of the box. Generated from the official OpenAPI spec. The sync client is the same engine, not a second implementation.

Python · async3 namespaces: market · forum · antipublicOpenAPI codegen
Install
$pip install pylztcopied
In codeClientConfig.for_testnet()Category.STEAM
Against the mock no token is needed.
python — pylzt
Safe by default

lzt-testnet

A FastAPI mock of the lzt.market API surface. An offline twin every project in the stand runs against — no token, no real market, no risk. Flip the switch and watch where the requests land.

FastAPIno tokenoffline
Try it right now — nothing to install
$curl -sS https://open-lzt.chqcode.com/testnet/testnet/healthcopied
$git clone .../lzt-testnetcopied
$scripts/run.shcopied
Flags--port 8765--chaos
The public sandbox lives at open-lzt.chqcode.com/testnet and is recycled nightly. Your own instance listens on 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
Деньги не тратятся: все запросы идут в мок.
Event engine

lzt-eventus

Polls the market and turns it into a durable, replayable event log. Anyone subscribes to that log — your own process, a webhook on another host, an SSE/WS stream, a cron poller. Each gets its own cursor, catch-up after downtime, retries and a DLQ.

durable log4 transportson top of pylzt
Install
$git clone .../lzt-eventus lzt-corecopied
$scripts/quickstart.shcopied
$uv run python -m lzt_eventus runcopied
Flags--dry-run
The stack comes up from deploy/docker-compose.yml. With --dry-run it polls and diffs but writes nothing.
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 automation

auto-lzt

A server-side automation engine. You describe the job — “bump my lots every day” — as a flow graph and the engine runs it on schedule. React Flow canvas, extended by owner-trusted Python plugins.

flow graphsReact Flow canvasowner plugins
Install — the whole stand in one script
$bash <(curl -sSL open-lzt.chqcode.com/get/all.sh)copied
$pnpm --dir frontend devcopied
The canvas comes up on localhost:5173. Building the panel needs node 20+ and pnpm.
auto-lzt — flow
каждый деньподнять лотыпроверить статусуведомитьflow: bump-daily · исполняется по расписанию
Client for the engine

lzt-eventus-sdk

Async client for the engine’s management API: subscriptions, polling, webhook signature verification. Three lines connect your service to the bus — the cursor and catch-up are the engine’s job.

subscriptionssignature verificationpoll · webhook · SSE · WS
Install
$pip install lzt-eventus-sdkcopied
$pip install lzt-eventus-sdk[ws]copied
TransportsWEBHOOKSSEWEBSOCKET
The WebSocket source lives in a separate 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
For dev agents

lzt-dev-mcp

29 tools for an AI agent: send and test raw API requests, drive auto-lzt scenarios and eventus subscriptions, introspect the API surface without grepping sources. Testnet by default — production is hard-blocked.

MCP · 29 toolstestnet-firstAPI introspection
Run
$uv run python -m lzt_dev_mcp --http --port 8765copied
Flags--http--port 8765
Point your agent at http://127.0.0.1:8765 as an MCP server.
agent — lzt-dev-mcp
Подними мои лоты и покажи баланс.
tool: auto_lzt.run_flow("bump") · testnet
Готово: 14 лотов подняты. Баланс 2,410.00 (testnet).
Extension catalogues

lzt-flows + plugins

lzt-flows — a community catalogue of ready scenarios: autobuy for Steam, Riot, Supercell, Fortnite, Telegram — and a sniper across any of 21 categories. lzt-plugins — executable owner-trusted Python plugins: nodes, routers, handlers.

9 catalogue modulesmanifest + flow.jsonPR catalogue
Install a module
bot/import bump-dailycopied
$install-flow.sh --module steam-autobuy --runcopied
Parameters--module steam-autobuy--param max_price=10--param count=1--run
In the bot: /modules lists, /import installs.
каталог модулей
steam-autobuyАвтовыкуп аккаунтов Steam
riot-autobuyValorant и League of Legends
sniper-autobuyСнайпер по любой из 21 категории
bump-dailyЕжедневный подъём своих лотов
Design system

lzt-ui

A library of building blocks in the LZT visual language: plain CSS and 150 lines of vanilla JS. No build step, no dependencies, no utility framework. The same CSS is consumed by plain HTML and by React components alike.

plain CSSiconszero dependencies
Include
html<link rel="stylesheet" href="lzt-ui.css">copied
html<script src="lzt-ui.js"></script>copied
html<script src="lzt-icons.js"></script>copied
lzt-ui — tokens
Кнопкачипстатус
The whole stand at once

open-lzt

The ecosystem monorepo: eight projects as git submodules under one roof. One clone and the whole stand is yours, from the SDK to the panel. Install and update ship as its own scripts.

8 submodulesdocker composeinstall · update
Install
$bash <(curl -sSL open-lzt.chqcode.com/get/all.sh)copied
$git clone --recursive .../open-lzt.git /opt/open-lztcopied
Operationslogsstopwipe with data
Without -v the Postgres and Redis data survive a reinstall.
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

Up and running in a minute

Every line is clickable — it copies in full.

SDK only
$ pip install pylzt

Join us on GitHub

github.com/open-lzt
Ten projects that stack on one another. At the bottom sits the typed SDK; everything else rests on it. Take one brick or the whole stand in one script.