On this page Публикуйте статические сайты на {slug}.here.now и храните личные файлы в облачных дисках для передачи между агентами.
Метаданные навыка¶
| Источник | Опционально — установка: hermes skills install official/productivity/here-now |
| Путь | optional-skills/productivity/here-now |
| Версия | 1.15.3 |
| Автор | here.now |
| Лицензия | MIT |
| Платформы | macos, linux |
| Теги | here.now, herenow, publish, deploy, hosting, static-site, web, share, URL, drive, storage |
Справочник: полный SKILL.md¶
info Ниже приведено полное определение навыка, которое Hermes загружает при его активации. Это те инструкции, которые видит агент, когда навык активен.
here.now¶
here.now позволяет агентам публиковать веб-сайты и хранить личные файлы в облачных дисках.
Используйте here.now для двух задач:
* Сайты: публикация веб-сайтов и файлов по адресу {slug}.here.now.
* Диски: хранение личных файлов агента в облачных папках.
Текущая документация¶
Прежде чем отвечать на вопросы о возможностях, функциях или сценариях работы here.now, прочтите актуальную документацию: → https://here.now/docs Читайте документацию: * при первом взаимодействии, связанном с here.now, в рамках разговора * каждый раз, когда пользователь спрашивает, как что-то сделать * каждый раз, когда пользователь спрашивает, что возможно, поддерживается или рекомендуется * прежде чем сообщить пользователю, что функция не поддерживается
Темы, требующие актуальной документации (не полагайтесь только на локальный текст навыка): * Диски и общий доступ к дискам * собственные домены * платежи и платёжные шлюзы * форкинг * прокси-маршруты и сервисные переменные * хендлы и ссылки * лимиты и квоты * SPA-маршрутизация * обработка ошибок и исправление проблем * доступность функций
Если документация и поведение живого API расходятся, доверяйте поведению живого API. Если загрузка документации не удалась или истекло время ожидания, продолжайте работу с локальным навыком и выводом живого API/скриптов. Для активных операций предпочитайте поведение живого API.
Требования¶
- Необходимые бинарные файлы:
curl,file,jq - Опциональная переменная окружения:
$HERENOW_API_KEY - Опциональная переменная токена диска:
$HERENOW_DRIVE_TOKEN - Опциональный файл учётных данных:
~/.herenow/credentials - Пути к вспомогательным скриптам навыка:
${HERMES_SKILL_DIR}/scripts/publish.shдля публикации сайтов${HERMES_SKILL_DIR}/scripts/drive.shдля личного облачного хранилища
Создание сайта¶
[code]
PUBLISH="${HERMES_SKILL_DIR}/scripts/publish.sh"
bash "$PUBLISH" {file-or-dir} --client hermes
[/code]
Выводит рабочий URL (например, https://bright-canvas-a7k2.here.now/).
Под капотом это трёхшаговый процесс: создать/обновить -> загрузить файлы -> финализировать. Сайт не становится доступным, пока финализация не завершится успешно.
Без API-ключа создаётся анонимный сайт, который истекает через 24 часа. С сохранённым API-ключом сайт является постоянным.
Структура файлов: Для HTML-сайтов размещайте index.html в корне публикуемой директории, а не во вложенной папке. Содержимое директории становится корнем сайта. Например, публикуйте my-site/, где существует my-site/index.html — не публикуйте родительскую папку, содержащую my-site/.
Вы также можете публиковать отдельные файлы без HTML. Для отдельных файлов отображается расширенное авто-представление (изображения, PDF, видео, аудио). Для нескольких файлов создаётся автоматически сгенерированный список директорий с навигацией по папкам и галереей изображений.
Обновление существующего сайта¶
[code]
PUBLISH="${HERMES_SKILL_DIR}/scripts/publish.sh"
bash "$PUBLISH" {file-or-dir} --slug {slug} --client hermes
[/code]
Скрипт автоматически загружает claimToken из .herenow/state.json при обновлении анонимных сайтов. Передайте --claim-token {token}, чтобы переопределить.
Авторизованные обновления требуют сохранённого API-ключа.
Использование диска¶
Используйте диск, когда пользователю нужно личное облачное хранилище для файлов агента: документов, контекста, памяти, планов, ресурсов, медиа, исследований, кода и всего остального, что должно сохраняться без публикации в виде веб-сайта.
У каждой учётной записи есть диск по умолчанию с названием My Drive.
[code]
DRIVE="${HERMES_SKILL_DIR}/scripts/drive.sh"
bash "$DRIVE" default
bash "$DRIVE" ls "My Drive"
bash "$DRIVE" put "My Drive" notes/today.md --from ./notes/today.md
bash "$DRIVE" cat "My Drive" notes/today.md
bash "$DRIVE" share "My Drive" --perms write --prefix notes/ --ttl 7d
[/code]
Используйте ограниченные токены дисков для передачи между агентами. Если вы получили блок общего доступа herenow_drive, используйте его token как Authorization: Bearer <token> для api_base, учитывайте pathPrefix при его наличии и сохраняйте ETags при записи. pathPrefix со значением null означает полный доступ к диску. Если навык доступен, предпочитайте drive.sh; в противном случае вызывайте указанные операции API напрямую.
Хранение API-ключа¶
Скрипт публикации читает API-ключ из следующих источников (первый подходящий):
1. Флаг --api-key {key} (только для CI/скриптов — избегайте при интерактивном использовании)
2. Переменная окружения $HERENOW_API_KEY
3. Файл ~/.herenow/credentials (рекомендуется для агентов)
Чтобы сохранить ключ, запишите его в файл учётных данных: [code] mkdir -p ~/.herenow && echo "{API_KEY}" > ~/.herenow/credentials && chmod 600 ~/.herenow/credentials
[/code]
ВАЖНО: После получения API-ключа сохраните его немедленно — выполните указанную выше команду самостоятельно. Не просите пользователя выполнять её вручную. Избегайте передачи ключа через флаги CLI (например, --api-key) в интерактивных сессиях; файл учётных данных является предпочтительным способом хранения.
Никогда не сохраняйте учётные данные или локальные файлы состояния (~/.herenow/credentials, .herenow/state.json) в системе контроля версий.
Получение API-ключа¶
Чтобы перейти от анонимных (24ч) к постоянным сайтам: 1. Спросите у пользователя его адрес электронной почты. 2. Запросите одноразовый код для входа:
[code]
curl -sS https://here.now/api/auth/agent/request-code \
-H "content-type: application/json" \
-d '{"email": "user@example.com"}'
[/code] 3. Сообщите пользователю: «Проверьте свой почтовый ящик — вы получили код входа от here.now. Вставьте его сюда.» 4. Проверьте код и получите API-ключ:
[code]
curl -sS https://here.now/api/auth/agent/verify-code \
-H "content-type: application/json" \
-d '{"email":"user@example.com","code":"ABCD-2345"}'
[/code]
5. Сохраните полученный apiKey самостоятельно (не просите пользователя это делать):
[code] mkdir -p ~/.herenow && echo "{API_KEY}" > ~/.herenow/credentials && chmod 600 ~/.herenow/credentials
[/code]
Файл состояния¶
После каждого создания/обновления сайта скрипт записывает данные в .herenow/state.json в рабочей директории:
[code]
{
"publishes": {
"bright-canvas-a7k2": {
"siteUrl": "https://bright-canvas-a7k2.here.now/",
"claimToken": "abc123",
"claimUrl": "https://here.now/claim?slug=bright-canvas-a7k2&token=abc123",
"expiresAt": "2026-02-18T01:00:00.000Z"
}
}
}
[/code]
Перед созданием или обновлением сайтов вы можете проверить этот файл, чтобы найти предыдущие слаг-имена. Относитесь к .herenow/state.json только как к внутреннему кешу. Никогда не указывайте этот локальный путь к файлу как URL и никогда не используйте его как источник истины для режима авторизации, срока действия или URL подтверждения.
Что сообщать пользователю¶
Для опубликованных сайтов:
* Всегда показывайте siteUrl из текущего запуска скрипта.
* Читайте и следуйте строкам publish_result.* из stderr скрипта для определения режима авторизации.
* Когда publish_result.auth_mode=authenticated: сообщите пользователю, что сайт постоянный и сохранён в его учётной записи. URL подтверждения не требуется.
* Когда publish_result.auth_mode=anonymous: сообщите пользователю, что сайт истекает через 24 часа. Предоставьте URL подтверждения (если publish_result.claim_url не пуст и начинается с https://), чтобы пользователь мог сохранить сайт навсегда. Предупредите, что токены подтверждения выдаются только один раз и не могут быть восстановлены.
* Никогда не предлагайте пользователю просматривать .herenow/state.json для получения URL подтверждения или информации об авторизации.
Для дисков:
* Не описывайте файлы диска как общедоступные URL.
* Сообщите пользователю, что содержимое диска является личным, если не был предоставлен доступ с помощью ограниченного токена.
* При предоставлении доступа другому агенту предпочитайте ограниченный токен с узким pathPrefix и коротким TTL.
Параметры publish.sh¶
Флаг| Описание
|--- |---
--slug {slug}| Обновить существующий сайт вместо создания нового
--claim-token {token}| Переопределить токен подтверждения для анонимных обновлений
--title {text}| Заголовок просмотрщика (для не-HTML сайтов)
--description {text}| Описание просмотрщика
--ttl {seconds}| Установить срок действия (только для авторизованных)
--client {name}| Имя агента для атрибуции (например, hermes)
--base-url {url}| Базовый URL API (по умолчанию: https://here.now)
--allow-nonherenow-base-url| Разрешить отправку авторизации на нестандартный --base-url
--api-key {key}| Переопределение API-ключа (предпочитайте файл учётных данных)
--spa| Включить SPA-маршрутизацию (отдавать index.html для неизвестных путей)
--forkable| Разрешить другим форкать этот сайт
За пределами publish.sh¶
Для операций с дисками используйте drive.sh или Drive API. Для более широкого управления учётной записью и сайтами — удаление, метаданные, пароли, платежи, домены, хендлы, ссылки, переменные, прокси-маршруты, форкинг, дублирование и другое — см. текущую документацию:
→ https://here.now/docs
Полная документация: https://here.now/docs
* Метаданные навыка
* Справочник: полный SKILL.md
* Текущая документация
* Требования
* Создание сайта
* Обновление существующего сайта
* Использование диска
* Хранение API-ключа
* Получение API-ключа
* Файл состояния
* Что сообщать пользователю
* Параметры publish.sh
* За пределами publish.sh