Коротко: на вкладке Console сервера RE:NODE есть панель «Work on this server with AI». Вы выбираете, для чего нужен ассистент, нажимаете Connect AI, и панель копирует в буфер обмена приватную ссылку. Вставьте её в ChatGPT, Claude или любой ассистент, который умеет открывать URL, и он прочитает описание вашего сервера, написанное специально для него: среду выполнения, как сервер запускается, что нашла предстартовая проверка, с чем вы попросили помочь. По умолчанию ссылка только для чтения. Выберите «Manage this server», и она превратится в ссылку, которая может действовать: запускать, останавливать и перезапускать сервер, вводить команды в консоль, редактировать файлы. API-ключ при этом нигде не создаётся и не копируется. Ссылки живут, пока ими пользуются, и сами умирают, когда о них забывают, а все выданные вами ссылки перечислены в разделе Account -> Connected AI, где отозвать любую можно одним щелчком.
Cursor работает иначе, потому что он живёт в вашем репозитории, а не в окне чата. Панель может открыть pull request, который запишет правила сервера в AGENTS.md, CLAUDE.md и .renode/server.md, и Cursor прочитает их сам. Остальная часть статьи о том, как работает каждый путь, до чего ссылка может и не может дотянуться, сколько она живёт и как забрать доступ обратно.
Три способа передать сервер ассистенту#
Механизмов три, и они разные, поэтому полезно понимать, каким из них вы пользуетесь, прежде чем куда-либо что-либо вставлять.
| Путь | Подходит для | Что вы копируете |
|---|---|---|
| Ссылка доступа | ChatGPT, любой чат-ассистент | Один URL |
| MCP-подключение | Claude Code, Claude.ai | Один URL, подтверждённый в браузере |
| Контекст в репозитории | Cursor, Copilot, Codex | Ничего - вы вливаете pull request |
Ссылка доступа универсальна. Почти любой ассистент умеет открывать веб-страницу, так что URL - это наименьший общий знаменатель, и именно этот путь мы подтверждаем для ChatGPT. MCP-подключение - это полноценное подключение инструментов: ассистент получает именованные инструменты, например чтение консоли или запись файла, а не документ для чтения. Мы разрабатывали и проверяли этот путь с Claude (Claude Code и пользовательские коннекторы Claude.ai). Другие клиенты с поддержкой удалённого MCP по Streamable HTTP, скорее всего, смогут им пользоваться, но ChatGPT и Cursor именно с ним мы не проверяли, так что считайте это своим экспериментом. Контекст в репозитории - самый тихий путь: никакой ссылки, только файлы в вашем репозитории, которые ассистенты для кода читают по соглашению.
Можно использовать несколько путей сразу. Типичное разделение: ссылка только для чтения в беседе с ChatGPT, чтобы спросить «почему это не запускается», и контекст в репозитории, чтобы Cursor с самого начала писал код, который занимает правильный порт.
Как создать ссылку на вкладке Console#
Панель находится над терминалом на вкладке Console, а также на вкладке Startup. В ней один выпадающий список, «What the assistant is for», и одна кнопка.
- Откройте сервер и перейдите на вкладку Console.
- В списке «What the assistant is for» выберите цель. Все варианты перечислены в таблице ниже.
- Нажмите Connect AI. Панель создаст ссылку и скопирует её.
- Вставьте её в ассистент вместе со своим вопросом.
| Цель | Что вы получаете |
|---|---|
| General | Ссылка для чтения с описанием сервера |
| Set up a new project | Ссылка для чтения с промптом по настройке |
| Fix my repository | Ссылка для чтения с промптом по исправлению |
| Server won't start | Промпт с хвостом консоли, а не ссылка |
| Connect a database | Ссылка для чтения с промптом по базе данных |
| Add a domain | Ссылка для чтения с промптом по домену |
| Manage this server | Ссылка, которая может действовать |
«Server won't start» выбивается из ряда намеренно. Самое полезное свидетельство при падении сервера - последний экран вывода консоли, поэтому вместо ссылки панель копирует готовый к вставке промпт, в который этот вывод уже включён. Используйте его на вкладке Console, чтобы хвост консоли попал в промпт. Это самый быстрый способ получить второй взгляд на цикл падений; руководство по циклам падений подскажет, на что стоит посмотреть самим в первую очередь.
Сама ссылка показывается один раз. Панель хранит только её хеш, так же как хранится пароль, поэтому позже никто не сможет достать ссылку из панели обратно - включая нас. Если вы её потеряли, создайте новую. Если браузер блокирует доступ к буферу обмена, панель покажет ссылку в окошке, чтобы вы скопировали её вручную.
Ссылка выглядит так:
https://panel.renode.space/ai/rnai_<48 random characters>К ссылке, которая может действовать, прилагается и MCP-адрес - это тот же URL с /mcp на конце. Подробнее об этом ниже.
Ссылки для чтения и ссылки с действиями#
Разница между двумя видами ссылок - это вся модель безопасности, так что стоит сформулировать её точно.
Ссылка для чтения даёт доступ к контексту сервера (среда выполнения, порядок запуска, результаты предстартовой проверки, какие переменные существуют), к промптам задач, хвосту консоли и спискам каталогов. Содержимое файлов она не открывает. Это сознательная граница: ссылка для чтения переживает неделю без использования и попадает в историю чатов, в файле .env хранятся секреты, и мы предпочитаем, чтобы ассистент попросил вас вставить файл, а не читал его по недельной ссылке.
Ссылка, которая может действовать (цель «Manage this server»), даёт всё, что и ссылка для чтения, а также:
- запуск, остановку, перезапуск и принудительное завершение (kill);
- ввод команд в консоль;
- чтение и редактирование файлов.
Есть вещи, недоступные ни через одну ссылку любого вида: удаление и переименование файлов, переустановка, изменение команды запуска или переменных, базы данных и их пароли, backups, расписания, пользователи, данные SFTP и API-ключи. Ссылка не может перечислить другие ваши серверы и не видит список ссылок. Записывать можно только текст, не больше 1 МБ на файл, и никогда ничего внутри .git/, потому что .git/hooks - это код, который выполнится при следующем fetch.
Ссылка, которая может действовать, - это ключ от сервера на всё время её жизни. Тот, у кого есть URL, может перезапустить сервер и редактировать его файлы - без пароля и без второго фактора.
Это не недостаток дизайна, а его смысл: вы вставляете ссылку в программу, у которой нет ни паролей, ни второго фактора. Поэтому же ссылка с действиями без использования живёт сутки, а не неделю (см. раздел про срок действия). Относитесь к ней как к паролю SFTP: вставляйте её в беседу, которую контролируете, а не в общий канал, и отзывайте, когда работа закончена.
Права проверяются дважды при каждом вызове. Ссылка должна разрешать действие, а человек, создавший ссылку, должен прямо сейчас всё ещё иметь это право на этом сервере. Субпользователь, у которого есть доступ только к консоли, не может создать ссылку, перезапускающую сервер. Если вы отберёте право у субпользователя, его ссылки потеряют его при следующем же вызове. Это хорошо сочетается с субпользователями с минимальными правами: дайте коллеге доступ только к консоли, и созданные им ссылки тоже будут только для консоли. О ролях и командах рассказано в руководстве.
Каждое действие, выполненное через ссылку, записывается в журнал активности сервера от имени человека, создавшего ссылку, с пометкой, что оно пришло по AI-ссылке. Перезапуск, о котором попросил ассистент, считается перезапуском, о котором попросили вы, поэтому он не учитывается в лимите перезапусков наблюдателя за падениями.
Лимиты запросов для ссылки
| Лимит | Значение |
|---|---|
| Запросов на ссылку | 60 в минуту |
| Действий на ссылку | 20 в минуту |
| Действий с питанием на ссылку | 6 в минуту |
Ассистент, застрявший в цикле «перезапустить и проверить», упрётся в лимит действий с питанием задолго до того, как успеет навредить, и получит понятную ошибку, о которой сможет сообщить вам.
Как пользоваться ссылкой в ChatGPT#
В ChatGPT вся настройка - это сама ссылка. Ничего устанавливать и никакой ключ создавать не нужно.
- Создайте ссылку для нужной цели, обычно General или Fix my repository.
- Начните беседу и вставьте ссылку с простой просьбой: «Прочитай это и скажи, почему сервер завершается после запуска».
- Дайте ему открыть страницу. Она начинается с заголовка, где сказано, что это сервер RE:NODE, что секретов в ней нет и где на самом деле лежат пароли, затем идут сведения о сервере, а потом промпт задачи.
Что ChatGPT сможет сделать со ссылкой, зависит от того, какие инструменты есть у него в этой беседе. Открытие веб-страницы - это запрос GET, а на ссылке GET никогда ничего не меняет, поэтому предпросмотр ссылок и краулеры, которые загружают URL, не могут перезапустить ваш сервер. Для действий над сервером нужны запросы POST или MCP-подключение. Ассистент, который умеет только просматривать страницы, прочитает даже ссылку с действиями и расскажет вам, что делать, а не сделает это сам. Часто именно этого и хочется.
Если ассистент говорит, что не может открыть ссылку, откройте её в своём браузере: это обычная markdown-страница, и её текст можно вставить в беседу. Открытие ссылки вами тоже считается использованием, так что оно продлевает ей жизнь.
Ссылка, которая может действовать, в конце документа, в разделе «Acting on this server», описывает свои двери: MCP-адрес и HTTP-эндпоинты, доступные именно этой ссылке, с примерами curl. Ссылка для чтения вместо этого сообщает, что она только для чтения. HTTP-сторона выглядит так:
$ curl -s -X POST -H 'Content-Type: application/json' \ -d '{"signal":"restart"}' \ https://panel.renode.space/ai/rnai_.../api/powerОтветы приходят в виде {ok, result} или {ok: false, error: {status, message}}, так что скрипт или ассистент отличит успех от отказа без догадок.
Редактирование .env без раскрытия его содержимого
Ассистенты плохо справляются с файлами .env по конкретной причине: панель скрывает секреты во всём, что выдаёт наружу, поэтому ассистент, который прочитал .env, изменил одну строку и записал файл целиком, заменил бы каждый пароль на заглушку. Поэтому у ссылки, которая может действовать, есть отдельный инструмент только для записи в файлы .env*. Он принимает имена ключей, которые нужно задать или удалить, вносит изменение на стороне панели, сохраняет все остальные байты и возвращает только имена ключей. Вы можете сказать ассистенту «задай DATABASE_URL вот это значение», и ничего об остальном содержимом файла он не получит. Общие правила о том, что вообще стоит хранить в этом файле, описаны в переменных окружения и секретах.
Cursor: контекст в репозитории и ссылки#
Cursor - это редактор со встроенным агентом. Он работает с кодом в вашем репозитории, и ему полезнее дать не описание работающего сервера, а правила сервера: какой порт занимать, как сервер запускается, какая версия среды выполнения используется.
Если ваш сервер разворачивается из GitHub (только строки приложений, см. развёртывание Node-приложения из GitHub), включите на вкладке GitHub пункт «Keep AI context in the repository». Тогда GitHub App панели откроет pull request, который добавит:
.renode/server.md, файл, которым владеет панель и прямо об этом говорит;- помеченный блок в
AGENTS.md; - помеченный блок в
CLAUDE.md.
Cursor, Claude Code, Copilot и Codex читают эти файлы сами, поэтому агент, открытый в репозитории, знает, как работает сервер, и никому не нужно ничего вставлять. В AGENTS.md и CLAUDE.md заменяется только текст между маркерами, а всё, что вы написали вокруг них, остаётся нетронутым:
Your own notes for agents stay here.<!-- renode:start -->(the panel's block - replaced on each refresh)<!-- renode:end -->Несколько свойств, которые стоит знать:
- Панель никогда не пушит в вашу ветку деплоя. Она коммитит только в собственную ветку
renode/ai-contextи открывает pull request; вливаете его вы. Пуши в эту ветку никогда не запускают деплой. - Публичный репозиторий получает правила без подробностей: ни адреса, ни хоста базы данных, ни имён пользователей, ни доменов, ни значений переменных. Всё, что GitHub явно не назвал приватным, считается публичным.
- Обновление происходит не чаще чем раз в десять минут и только если содержимое действительно изменилось, так что pull request'ами вас не завалит. Кнопка Update now на вкладке GitHub запускает обновление принудительно.
- Если выключить функцию, pull request закрывается, а ветка удаляется. То, что вы уже влили, она не трогает.
Ссылку доступа можно вставить и в чат Cursor, как в любой другой ассистент. Агент Cursor умеет выполнять команды в терминале, поэтому со ссылкой, которая может действовать, он может использовать примеры curl из документа ссылки - и Cursor спрашивает подтверждение перед запуском команды, если вы не сказали ему иначе. Оставьте это подтверждение включённым. Логика та же, что в наших заметках об AI-агентах и серверах: агент предлагает, вы читаете команду, и только потом она выполняется.
Настройка без ключей: нечего копировать#
В панели по-прежнему есть классические API-ключи (вида ptlc_ в разделе Account -> API Keys), и на MCP-эндпоинте они по-прежнему работают. Но ключ нужно создать, скопировать, вставить, и потом он живёт, пока кто-нибудь не вспомнит его удалить. Ни одному из AI-путей он не нужен.
- Ссылка доступа сама по себе является учётными данными, ограниченными одним сервером и одной целью, и срок её действия истекает сам.
- Контексту в репозитории не нужны вообще никакие учётные данные на стороне ассистента.
- MCP-подключение входит через OAuth.
MCP-эндпоинт - https://panel.renode.space/api/client/mcp. Добавьте этот URL как есть в ассистент, поддерживающий удалённый MCP; для Claude Code это одна команда:
$ claude mcp add --transport http renode https://panel.renode.space/api/client/mcpАссистент откроет в браузере страницу согласия панели (на английском или грузинском, в зависимости от языка вашего аккаунта). Вы подтверждаете один раз и выбираете две вещи: какие серверы (все ваши или выборочно) и уровень. Files разрешает чтение и редактирование файлов и работу с консолью. Manage добавляет запуск, остановку и перезапуск. Ни один из уровней не даёт доступа к базам данных, backups, расписаниям, пользователям, настройкам запуска и настройкам аккаунта. «Все мои серверы» означает серверы, которыми вы владеете или на которых вы субпользователь с неистёкшим доступом.
После этого ассистент сам поддерживает свой доступ. Токены доступа живут час и обновляются в фоне; токен обновления живёт 30 дней и продлевается при использовании, так что ассистент, которым вы пользуетесь раз в месяц, не станет спрашивать снова. Если когда-либо будет повторно предъявлен уже использованный токен - признак украденной копии, - весь доступ отзывается целиком.
У ссылки, которая может действовать, есть собственный MCP-адрес - URL ссылки с /mcp на конце, который вставляется в Claude.ai как пользовательский коннектор прямо в таком виде:
$ claude mcp add --transport http renode-link https://panel.renode.space/ai/rnai_.../mcpРазница в том, что OAuth-подключение привязано к вашему аккаунту и выбранным серверам и живёт, пока им пользуются, а MCP-адрес ссылки привязан к одному серверу и умирает вместе со ссылкой.
Продление срока и ротация#
Длительность ссылки никто не выбирает, и на сервере нет списка, который нужно чистить. Ссылка поддерживает себя, пока ею пользуются, и истекает, когда о ней забыли.
| Ссылка | Умирает без использования через | Жёсткий предел |
|---|---|---|
| Для чтения | 7 дней | 90 дней с создания |
| С действиями | 24 часа | 30 дней с создания |
Каждое успешное использование - открытие страницы, HTTP-вызов, MCP-вызов - снова отодвигает срок до полного окна бездействия. Предел никогда не сдвигается, так что даже ссылка, которой пользуются постоянно, в конце концов закончится, и вы создадите новую. Ссылка с действиями короткая намеренно: учётные данные, пережившие беседу, для которой их создали, - это те, что кто-нибудь найдёт в логе чата через месяц, а те, которыми ещё пользуются, по определению всё ещё в этой беседе.
Ротация заменяет удаление. Новая ссылка для того же сервера и той же цели отзывает вашу предыдущую в том же действии, поэтому повторное нажатие Connect AI - это способ заменить ссылку, которую вы вставили куда-то зря. Страховкой служат ограничения: не больше пяти активных ссылок на сервер, из которых не больше двух могут действовать. Создание шестой, или третьей с действиями, закрывает самую старую.
Ссылка также перестаёт работать в тот момент, когда создавший её человек теряет доступ к серверу. Удалите субпользователя или дождитесь, пока истечёт его доступ с ограничением по времени, и все созданные им ссылки умрут вместе с ним - помнить об их существовании не нужно. Приостановленный сервер не отвечает ни на одну ссылку.
Любой отказ выглядит одинаково: обычная ошибка 404. Истекла, превысила предел, отозвана, заменена, сервер приостановлен, создатель удалён - ассистент не может отличить одно от другого, как и любой, у кого оказалась утёкшая копия. Заголовок страницы предупреждает ассистента, что ссылка истекает при бездействии, поэтому нормальный ассистент скажет вам, что ссылка истекла, а не станет выдумывать причину.
Страница Connected AI и отзыв доступа#
Account -> Connected AI (/account/ai) - единственное место, где видно всё, что вы раздали. Там два списка.
Connected assistants перечисляет всех ассистентов, которых вы подтвердили через OAuth: имя (а у некоторых клиентов ещё и хост, который его опубликовал), когда вы его подтвердили, когда им пользовались в последний раз, какие серверы он охватывает и на каком уровне. У каждого есть кнопка Disconnect. Отключённый ассистент теряет доступ сразу; чтобы снова им пользоваться, подключите его заново и подтвердите в браузере.
Share links you made перечисляет все активные ссылки, которые вы создали, на любых серверах: сервер, «Read only» или «Can act», когда ссылка истекает, сколько раз её открывали и сколько действий она выполнила, и когда ею пользовались в последний раз. У каждой есть кнопка Revoke. Отозванная ссылка перестаёт работать сразу на всех дверях - страница, её MCP-адрес и её HTTP API.
Для отзыва не нужно никаких прав на самом сервере. Если ваш доступ к серверу сократили, но ваша ссылка всё ещё в списке, вы всё равно можете её отозвать: забирая назад то, что выдали, вы только уменьшаете доступ.
Когда этим стоит пользоваться:
- Вы вставили ссылку с действиями в беседу, которой могут поделиться или которую могут экспортировать. Отзовите её.
- Счётчик «opened» больше, чем вы ожидаете. Отзовите ссылку и создайте новую - свежая ссылка всё равно заменяет старую.
- Вы перестали пользоваться ассистентом. Отключите его, а не ждите 30 дней, пока он истечёт.
- Кто-то ушёл из команды. Удаление субпользователя уже убивает его ссылки, но проверьте и список в своём аккаунте.
Предупреждение под панелью говорит то же самое коротко: ссылка с действиями перестаёт работать, если ею не пользоваться сутки, а раньше её можно отключить из Account -> Connected AI.
Чего ассистент никогда не увидит#
Каждый байт, уходящий через ссылку, промпт или MCP-эндпоинт, проходит через редактор секретов с тремя слоями. По имени: у любой переменной с именем вроде TOKEN, PASSWORD, KEY, SECRET, AUTH или SALT значение скрывается. По форме: ключи GitHub, Slack, OpenAI и AWS, JWT, пароли внутри URL и длинные случайные на вид строки скрываются независимо от названия. По значению: настоящие секреты сервера и пароли баз данных собираются и вычищаются из готового вывода, что ловит пароль, вставленный в переменную с названием NOTES. Пароли баз данных в вывод не попадают вообще.
Честная формулировка такова: пароли и токены скрываются, но это не значит, что ассистент никогда не сможет увидеть секрет. Редактирование - это сеть, а не обещание. Если вы выведете секрет в консоль в каком-то непредусмотренном формате или будете хранить его в файле, который открывает ссылка с действиями, исходите из того, что он может дойти до ассистента. Храните секреты в переменных окружения и .env и никогда не печатайте их в логах. Руководство по консоли и статья как читать консоль стоит посмотреть, если ваше приложение печатает конфигурацию при запуске.
Если что-то не работает#
Ссылка возвращает 404. Она истекла, достигла предела, была отозвана, была заменена более новой ссылкой для той же цели, либо сервер приостановлен, либо вы потеряли доступ. Создайте новую из панели; оживить старую нельзя, а 404 намеренно не говорит, в чём причина.
Ассистент говорит, что открыл ссылку, но описывает не тот сервер или выдумывает детали. Возможно, он вообще не загружал страницу и отвечал наугад. Попросите его процитировать первую строку страницы. Если не получится, откройте ссылку сами и вставьте текст.
Ассистент читает файлы на одном сервере, но не на другом. Ссылка для чтения никогда не возвращает содержимое файлов, а на любой ссылке проверка прав выполняется для того, кто её создал. Если ссылку создал субпользователь без доступа к файлам, то и у ссылки его нет.
Действие отклонено из-за лимита запросов. Ссылка превысила 60 запросов, 20 действий или 6 действий с питанием за минуту. Подождите минуту и разберитесь, почему так вышло: ассистент, перезапускающий сервер шесть раз в минуту, ничего не чинит.
Запись в файл отклонена. Проверьте, что это текст, меньше 1 МБ и не внутри .git/. Удаление и переименование через ссылки недоступны вообще; делайте это в файловом менеджере.
Cursor, похоже, не знает правил сервера. Pull request с контекстом должен быть влит в ветку, которая открыта в Cursor. Проверьте на GitHub pull request из renode/ai-context и нажмите Update now на вкладке GitHub, если вы что-то меняли за последние десять минут.
FAQ#
Может ли ChatGPT перезапустить мой сервер по ссылке?
Только если в этой беседе он умеет отправлять запросы POST или подключаться по MCP. Открытие ссылки - это чтение, и оно ничего не меняет. Ассистент, который умеет только просматривать страницы, прочитает ссылку с действиями и скажет вам, что выполнить, вместо того чтобы выполнять это сам.
Нужно ли создавать API-ключ для всего этого?
Нет. Ссылки доступа, OAuth-подключение и контекст в репозитории работают без него. Классические API-ключи ptlc_ по-прежнему работают на MCP-эндпоинте, если вы их предпочитаете, но тогда удалить ключ после работы придётся вам самим.
Сколько живёт ссылка доступа?
Ссылка для чтения живёт 7 дней после последнего использования, но не дольше 90 дней с создания. Ссылка с действиями живёт 24 часа после последнего использования, но не дольше 30 дней. Использование сбрасывает таймер бездействия; предел не сбрасывает ничто.
Может ли ссылка удалить мои файлы или базу данных?
Нет. Никакая ссылка не может удалять или переименовывать файлы, переустанавливать сервер, трогать базы данных и их пароли, менять backups, расписания, пользователей или настройки запуска, а также читать данные SFTP и API-ключи.
Что будет с моими ссылками, если я уберу коллегу?
Каждая созданная им ссылка перестанет работать при следующем использовании, потому что при каждом вызове проверяется, что у создателя всё ещё есть доступ к серверу. Его OAuth-подключения по той же причине теряют этот сервер.
Запускает ли RE:NODE саму AI-модель?
Нет. Мы не запускаем никаких моделей. Панель лишь создаёт страницу, инструменты и правила доступа, которыми пользуется ваш собственный ассистент.


