Connection check
verified live · 26h ago
layero
Build a landing page from your IDE chat, publish it, then manage domains and analytics.
Tools
27
GitHub stars
—
Installs / wk
—
Licence
MIT
Transport
streamable-http
Last checked
26h ago
Tools & capabilities
27 toolsRead from the running server on 26h ago.
add_integration
read-only
kind*
Wire form submissions into a destination. Returns the integration recipe. The agent executes the steps itself — runs terminal commands, edits files, deploys a relay if nee… Wire form submissions into a destination. Returns the integration recipe. The agent executes the steps itself — runs terminal commands, edits files, deploys a relay if needed.
cancel_deploy
deployproject*
Остановить сборку, которая ещё идёт. Живой адрес при этом не меняется — на нём остаётся прошлая версия. Остановить сборку, которая ещё идёт. Живой адрес при этом не меняется — на нём остаётся прошлая версия.
check_copy
read-only
pathtextproject
Механические ошибки русской типографики — с точным местом и заменой. Это КОД, а не суждение модели: один и тот же текст даёт один и тот же список находок. Ловится то, что… Механические ошибки русской типографики — с точным местом и заменой. Это КОД, а не суждение модели: один и тот же текст даёт один и тот же список находок. Ловится то, что глаз не видит, а читатель чувствует: неразрывные пробелы, тире, прямые кавычки, точка вместо запятой в дробях, пробелы у знаков препинания, двойные пробелы. Каждая находка несёт готовую замену — подставляй её, а не переписывай фрагмент по-своему. ЧЕГО ЗДЕСЬ НЕТ. Инфостиль, длина фраз, канцелярит, признаки нейрослопа — это суждение, и оно живёт в ресурсе `layero://editorial/ru`. Прочитай его, если просят «сделать текст лучше», а не «исправить типографику».
check_domain
read-only
domain*project*
Check whether a connected domain has started working. Runs the DNS check immediately instead of waiting for the background re-check. If the records have not propagated yet… Check whether a connected domain has started working. Runs the DNS check immediately instead of waiting for the background re-check. If the records have not propagated yet, that is normal — say so and suggest coming back later.
check_performance
read-only
waitproject*
Measure a site's speed and say whether it got worse after a deploy. The verdict comes FROM THE SCORE, not from timings: repeated runs of the same deploy vary by at most on… Measure a site's speed and say whether it got worse after a deploy. The verdict comes FROM THE SCORE, not from timings: repeated runs of the same deploy vary by at most one point, while LCP and TTFB on identical code swing by 37-40%. A difference of 3 points or more is meaningful; anything smaller is measurement noise, and calling that a regression is inventing a problem. A run takes tens of seconds. With `wait=true` the tool waits for you; do not start a second measurement in parallel — it will occupy the queue and add nothing.
compose_landing
user_message*
Drive the 3-step quiz flow and produce a complete landing. This is the **main entry point**. Don't ask the user questions in chat before calling this — the tool opens nati… Drive the 3-step quiz flow and produce a complete landing. This is the **main entry point**. Don't ask the user questions in chat before calling this — the tool opens native quiz dialogs in the IDE itself. Call this immediately when the user describes what they want. The three quizzes are: 1. **Motivation** — what's being built, for whom, the desired action. 2. **Look & feel** — palette, tone, optional references. 3. **Final picks** — design system (top 3 matched), where submissions go, project name slug. Returns a ``ComposeResult`` with the file bundle to write to disk. The agent then writes the files using the IDE's filesystem tool and proceeds to integration setup / deploy.
compose_landing_submit
goaltonetopic*paletteaudienceintegration
+2
Собрать лендинг по ответам из формы. Это НЕ инструмент для модели: его вызывает сама форма через мост хоста. Модель для того же зовёт `compose_landing`. Сборка идёт т… Собрать лендинг по ответам из формы. Это НЕ инструмент для модели: его вызывает сама форма через мост хоста. Модель для того же зовёт `compose_landing`. Сборка идёт той же функцией, что и после квиза, — результат не должен зависеть от того, каким клиентом пользуется человек.
connect_analytics
branchproject*
Connect Yandex Metrika to a site. IMPORTANT: authorisation happens IN A BROWSER, and neither you nor the platform can do that step for the user. The tool returns a link —… Connect Yandex Metrika to a site. IMPORTANT: authorisation happens IN A BROWSER, and neither you nor the platform can do that step for the user. The tool returns a link — show it and ask them to open it and grant access. Do not poll in a loop: the person may walk away for an hour. Check later through this same tool without the `branch` argument, or through `site_analytics`.
connect_domain
domain*project*
Connect a custom domain to a site. IMPORTANT: between this call and a working domain stands A PERSON. You get DNS records — show them to the user and explain they go in at… Connect a custom domain to a site. IMPORTANT: between this call and a working domain stands A PERSON. You get DNS records — show them to the user and explain they go in at their domain registrar. Do not wait for readiness: DNS propagates in minutes to an hour, the platform re-checks on its own, and you check later via `check_domain`. Spinning here burns time and context for nothing. The address can be passed as-is: the platform reduces `https://shop.example.com/page` to `shop.example.com` itself.
deploy_logs
read-only
kindtaildeployproject*
Сырые строки лога — когда разбора `diagnose_deploy` не хватило. Начинай с `diagnose_deploy`: он уже вытащил причину и окрестности фатальной строки. Сюда иди, когда нужно п… Сырые строки лога — когда разбора `diagnose_deploy` не хватило. Начинай с `diagnose_deploy`: он уже вытащил причину и окрестности фатальной строки. Сюда иди, когда нужно посмотреть глазами — например, причина невнятная или интересует не отказ, а поведение приложения. Возвращается ХВОСТ. Сколько отброшено — видно по `truncated`; не выдавай хвост за весь лог.
diagnose_deploy
read-only
deployproject*
Why a deploy failed — with the cause parsed out, not a raw log. Without `deploy` the latest build is used; that is what reflects the current state. To examine a specific o… Why a deploy failed — with the cause parsed out, not a raw log. Without `deploy` the latest build is used; that is what reflects the current state. To examine a specific older one, pass its id. The response is not a log tail but the neighbourhood of the fatal line: the platform has already picked out what matters. Read `verdict` and the summary, fix the code, deploy again — you close this loop yourself, without involving the person.
env_vars
can modify data
keysactionvaluesproject*
Project environment variables: list names, set them, remove them. VALUES ARE NEVER READ BACK — not by you, not by the platform in its response. Only names and lengths are… Project environment variables: list names, set them, remove them. VALUES ARE NEVER READ BACK — not by you, not by the platform in its response. Only names and lengths are returned. This is a deliberate rule rather than an implementation limit: anything that reaches your answer settles into the conversation history, and a secret that lands there cannot be taken back. If the user asks "what is my key", say plainly that you cannot show it and offer to set a new one. `set` does not require knowing the other variables — the platform keeps them. `unset` removes only the named ones. A change needs a new deploy: variables are picked up at build time, not on the fly. Say so, or the user will think nothing happened.
list_deploys
read-only
limitproject*
Последние сборки проекта: какая чем кончилась и какая сейчас живая. Нужен, чтобы выбрать цель для `rollback` или `diagnose_deploy`. Для вопроса «что с сайтом прямо сейчас»… Последние сборки проекта: какая чем кончилась и какая сейчас живая. Нужен, чтобы выбрать цель для `rollback` или `diagnose_deploy`. Для вопроса «что с сайтом прямо сейчас» хватает `site_status` — он дешевле.
list_design_systems
read-only
Return the catalogue of design systems Layero ships with. Return the catalogue of design systems Layero ships with.
list_domains
read-only
project*
The project's own domains and their state. The project's own domains and their state.
list_structures
read-only
Return the catalogue of landing structures Layero ships with. Return the catalogue of landing structures Layero ships with.
my_projects
read-only
limit
The user's sites on Layero. Thirty most recent by default. The full list is rarely needed, while flooding half your context with it is easy: an active user has dozens… The user's sites on Layero. Thirty most recent by default. The full list is rarely needed, while flooding half your context with it is easy: an active user has dozens of projects.
publish_landing
files*projectproject_name*
Publish a site to Layero — from here, with no terminal. Not only generated landings: this takes ANY ready static bundle, so it is also the answer to "deploy my site". Requ… Publish a site to Layero — from here, with no terminal. Not only generated landings: this takes ANY ready static bundle, so it is also the answer to "deploy my site". Requirements — `index.html` at the root, at most 200 files, 8 MB in total, 2 MB per file. Binary files (images, fonts) must come with `encoding="base64"`; sent as text they are silently corrupted. A project that still needs a build step (Vite, Next, Astro — anything where the answer is `npm run build`) does NOT go here: publish its build output, or tell the user to run `npx layero@latest deploy`, which builds on our side. Send the ACTUAL file contents: the server does not remember the bundle between calls. If the user edited the text after generation, pass the current versions, or what gets published is what used to be there. Pass `project` (the id of an existing project) when republishing the same landing; without it the platform finds a project with that name or creates a new one. Returns as soon as the build finishes, or after ~40s with `status` `building` and the `deploy_id` — the build keeps going on its own. Never call this tool a second time to "retry" a build that is still running: that starts a SECOND build. Follow `next_action`.
read_site
read-only
pathproject*
Что на самом деле опубликовано: заголовки, тексты, формы, мета, ссылки. Зови это ПЕРЕД тем, как что-то править на живом сайте, и ПОСЛЕ публикации, чтобы убедиться, что при… Что на самом деле опубликовано: заголовки, тексты, формы, мета, ссылки. Зови это ПЕРЕД тем, как что-то править на живом сайте, и ПОСЛЕ публикации, чтобы убедиться, что приехало ожидаемое. Без этого правка идёт вслепую: то, что лежит на диске у пользователя, и то, что отдаётся посетителю, — разные вещи, и расходятся они молча. Возвращается СТРУКТУРА, а не сырой HTML: страница с инлайн-стилями съела бы половину твоего контекста, а нужны из неё заголовки, тексты, формы и мета. Если нужен исходник целиком — он у пользователя на диске. `served_fallback=true` означает, что по этому пути отдали содержимое главной: страницы с таким адресом нет, а бакет ответил на отсутствующий ключ своим `index.html` с кодом 200. Не принимай это за успех.
refactor_site
read-only
fix*html*
Одно названное преобразование разметки — с предсказуемым результатом. Инструмент НИЧЕГО НЕ ПУБЛИКУЕТ. Он возвращает изменённый HTML; показать его человеку, получить соглас… Одно названное преобразование разметки — с предсказуемым результатом. Инструмент НИЧЕГО НЕ ПУБЛИКУЕТ. Он возвращает изменённый HTML; показать его человеку, получить согласие и позвать `publish_landing` — твоя работа. Молча переписывать чужой сайт нельзя. Преобразования идемпотентны: повторный вызов ничего не меняет и честно отвечает `changed=false`. Пустой список изменений — не ошибка, а ответ «применять было нечего». ⚠️ ЧЕГО ЗДЕСЬ НЕТ И ПОЧЕМУ. Шрифты со сторонних хостов, перекодировка картинок в webp и разбор инлайн-стилей сюда НЕ входят: для них нужны сами файлы, которых у сервера нет, либо суждение о задуманном внешнем виде. Эти проблемы называет `site_issues` — с адресом и объяснением; правит их тот, у кого файлы на руках. Выигрыш меряется `check_performance` ДО и ПОСЛЕ публикации. Если разница меньше трёх баллов — это шум измерения, а не улучшение; так и скажи.
retry_deploy
deployproject*
Поставить упавшую сборку в очередь заново. Разрешено ТОЛЬКО для сборок в состоянии `failed`. На идущей сборке (`queued`, `building`) платформа откажет — это не ошибка, а з… Поставить упавшую сборку в очередь заново. Разрешено ТОЛЬКО для сборок в состоянии `failed`. На идущей сборке (`queued`, `building`) платформа откажет — это не ошибка, а защита от второй параллельной сборки. ⚠️ Повтор осмыслен, когда причина отказа была внешней (сеть, реестр, таймаут). Если сборка упала на коде, повтор даст тот же результат: сначала `diagnose_deploy`, потом правка, и только потом повтор.
rollback
can modify data
deployproject*
Вернуть на живой адрес предыдущую рабочую сборку. МЕНЯЕТ ТО, ЧТО ВИДЯТ ПОСЕТИТЕЛИ, — спроси человека перед вызовом, если он не попросил откат прямо. Действие обратимо (мож… Вернуть на живой адрес предыдущую рабочую сборку. МЕНЯЕТ ТО, ЧТО ВИДЯТ ПОСЕТИТЕЛИ, — спроси человека перед вызовом, если он не попросил откат прямо. Действие обратимо (можно откатиться обратно), но промежуток времени с чужой версией на адресе вернуть нельзя. ⚠️ Для приложений (`ssr_next`, `streamlit`, `gradio`, `flask`) откат работает не так, как для статики, и часто невозможен: у приложения нет готового артефакта, который просто переключить. Если платформа откажет — объясни это человеку прямо и предложи собрать заново, а не повторяй вызов.
site_analytics
read-only
periodproject*
Site traffic: totals, direction and top sources. The time series is collapsed into a direction and breakdowns are cut to five: ninety chart points are useless in your cont… Site traffic: totals, direction and top sources. The time series is collapsed into a direction and breakdowns are cut to five: ninety chart points are useless in your context, and the conclusion is yours to draw anyway.
site_issues
read-only
pathproject*
Конкретные проблемы страницы — каждая с адресом и что с ней делать. Это НЕ балл. Балл отдаёт `check_performance`, и по нему нечего чинить: «73 из 100» не говорит, что имен… Конкретные проблемы страницы — каждая с адресом и что с ней делать. Это НЕ балл. Балл отдаёт `check_performance`, и по нему нечего чинить: «73 из 100» не говорит, что именно править. Здесь только то, у чего есть адрес и понятное действие: закрытая индексация, ресурсы с зарубежных хостов, растровые картинки без webp, отсутствующие мета и alt, формы без получателя. Находки отсортированы по важности. Не вываливай их списком — назови две-три главные и спроси, чинить ли.
site_screenshot
read-only
project*
Снимок последней собранной версии сайта — как он выглядит. Дополняет `read_site` (что на странице) и `site_issues` (что с ней не так) третьим вопросом: как это смотрится.… Снимок последней собранной версии сайта — как он выглядит. Дополняет `read_site` (что на странице) и `site_issues` (что с ней не так) третьим вопросом: как это смотрится. Полезно перед правкой оформления и после неё. ⚠️ Снимок делается при СБОРКЕ, а не сейчас. Если ты только что что-то опубликовал, свежий снимок появится не мгновенно — не выдавай прошлый за результат своей правки. Картинка стоит контекста заметно дороже текста. Не зови «на всякий случай»: для «что не так с сайтом» есть `site_issues`, он дешевле и конкретнее.
site_status
read-only
project*
How a site is doing: whether it is being served and how its build ended. `project` is an id or a slug. One call instead of three (project, deploys, live check of the addre… How a site is doing: whether it is being served and how its build ended. `project` is an id or a slug. One call instead of three (project, deploys, live check of the address): an agent needs the conclusion, not the raw material to assemble it from.
whoami
read-only