Here Now
Публикует сайты на {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
Ниже приведено полное определение навыка, которое Hermes Agent загружает при активации этого навыка. Именно эти инструкции видит агент, когда навык активен.
here.now
here.now даёт агентам возможность публиковать сайты и хранить приватные файлы в облачных Дисках.
Два сценария использования:
- Sites: публикация сайтов и файлов по адресу
{slug}.here.now. - Drives: хранение приватных файлов агента в облачных папках.
Current docs
Перед ответом на вопросы о возможностях, функциях или рабочих процессах here.now — читай актуальную документацию:
Читай документацию:
- при первом взаимодействии с here.now в рамках разговора
- всякий раз, когда пользователь спрашивает, как что-то сделать
- когда пользователь интересуется, что поддерживается или рекомендуется
- перед тем как сообщить пользователю об отсутствии какой-либо функции
Темы, требующие проверки по актуальной документации (не полагайся только на локальный текст навыка):
- Drives и общий доступ к Drive
- кастомные домены
- платежи и платное ограничение доступа
- форкинг
- прокси-маршруты и переменные сервиса
- хендлы и ссылки
- лимиты и квоты
- SPA-роутинг
- обработка ошибок и их устранение
- доступность функций
Если документация расходится с поведением живого API — доверяй живому API.
Если запрос документации завершился ошибкой или тайм-аутом, продолжай работу с локальным навыком и выводом живого API/скрипта. Для активных операций предпочитай поведение живого API.
Requirements
- Необходимые бинарники:
curl,file,jq - Опциональная переменная окружения:
$HERENOW_API_KEY - Опциональная переменная токена Drive:
$HERENOW_DRIVE_TOKEN - Опциональный файл учётных данных:
~/.herenow/credentials - Вспомогательные пути навыка:
${HERMES_SKILL_DIR}/scripts/publish.sh— публикация сайтов${HERMES_SKILL_DIR}/scripts/drive.sh— приватное хранилище Drive
Create a site
PUBLISH="${HERMES_SKILL_DIR}/scripts/publish.sh"
bash "$PUBLISH" {file-or-dir} --client hermes
Выводит живой URL (например, https://bright-canvas-a7k2.here.now/).
Под капотом — трёхшаговый процесс: create/update → upload files → finalize. Сайт не становится доступным, пока finalize не завершится успешно.
Без API-ключа создаётся анонимный сайт со сроком жизни 24 часа. С сохранённым API-ключом сайт постоянный.
Структура файлов: для HTML-сайтов помести index.html в корень публикуемой директории, а не во вложенную папку. Содержимое директории становится корнем сайта. Например, публикуй my-site/, в которой лежит my-site/index.html — не нужно публиковать родительскую папку, содержащую my-site/.
Можно также публиковать файлы без HTML. Одиночный файл получает расширенный просмотрщик (изображения, PDF, видео, аудио). Несколько файлов — автосгенерированный листинг с навигацией по папкам и галереей изображений.
Update an existing site
PUBLISH="${HERMES_SKILL_DIR}/scripts/publish.sh"
bash "$PUBLISH" {file-or-dir} --slug {slug} --client hermes
При обновлении анонимных сайтов скрипт автоматически подтягивает claimToken из .herenow/state.json. Передай --claim-token {token}, чтобы переопределить это значение.
Аутентифицированное обновление требует сохранённого API-ключа.
Use a Drive
Drive нужен, когда пользователь хочет приватное облачное хранилище для файлов агента: документы, контекст, память, планы, ассеты, медиа, исследования, код — всё, что должно сохраняться, не публикуясь как сайт.
У каждого авторизованного аккаунта есть Drive по умолчанию с именем My Drive.
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
Для передачи данных между агентами используй токены с ограниченной областью видимости. Если получен блок herenow_drive для общего доступа, используй его token как Authorization: Bearer <token> к api_base, учитывай pathPrefix, если он задан, и сохраняй ETags при записи. pathPrefix равный null означает полный доступ к Drive. Если навык доступен — предпочитай drive.sh; иначе вызывай нужные API-операции напрямую.
API key storage
Скрипт публикации ищет API-ключ из следующих источников (побеждает первое совпадение):
- Флаг
--api-key {key}(только для CI/скриптинга — в интерактивном режиме избегай) - Переменная окружения
$HERENOW_API_KEY - Файл
~/.herenow/credentials(рекомендуется для агентов)
Чтобы сохранить ключ, запиши его в файл учётных данных:
mkdir -p ~/.herenow && echo "{API_KEY}" > ~/.herenow/credentials && chmod 600 ~/.herenow/credentials
ВАЖНО: получив API-ключ, сохрани его немедленно — выполни команду выше самостоятельно. Не проси пользователя делать это вручную. В интерактивных сессиях не передавай ключ через CLI-флаги (например, --api-key); файл учётных данных — предпочтительный способ хранения.
Никогда не коммить учётные данные и локальные файлы состояния (~/.herenow/credentials, .herenow/state.json) в систему контроля версий.
Getting an API key
Чтобы перейти от анонимных сайтов (24 ч) к постоянным:
- Спроси пользователя его адрес электронной почты.
- Запроси одноразовый код для входа:
curl -sS https://here.now/api/auth/agent/request-code \
-H "content-type: application/json" \
-d '{"email": "user@example.com"}'
- Скажи пользователю: “Check your inbox for a sign-in code from here.now and paste it here.”
- Проверь код и получи API-ключ:
curl -sS https://here.now/api/auth/agent/verify-code \
-H "content-type: application/json" \
-d '{"email":"user@example.com","code":"ABCD-2345"}'
- Сохрани полученный
apiKeyсамостоятельно (не поручай это пользователю):
mkdir -p ~/.herenow && echo "{API_KEY}" > ~/.herenow/credentials && chmod 600 ~/.herenow/credentials
State file
После каждого создания или обновления сайта скрипт записывает данные в .herenow/state.json в рабочей директории:
{
"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"
}
}
}
Перед созданием или обновлением сайтов можно проверить этот файл на наличие ранее использованных slug-ов.
Воспринимай .herenow/state.json исключительно как внутренний кэш.
Никогда не выдавай путь к этому файлу как URL и не используй его как источник истины для режима аутентификации, срока истечения или claim URL.
What to tell the user
Для опубликованных сайтов:
- Всегда сообщай
siteUrlиз текущего запуска скрипта. - Читай строки
publish_result.*из stderr скрипта, чтобы определить режим аутентификации. - При
publish_result.auth_mode=authenticated: сообщи пользователю, что сайт постоянный и сохранён в его аккаунте. Claim URL не нужен. - При
publish_result.auth_mode=anonymous: предупреди пользователя, что сайт истекает через 24 часа. Поделись claim URL (еслиpublish_result.claim_urlне пустой и начинается сhttps://), чтобы пользователь мог сохранить его навсегда. Предупреди, что claim-токены возвращаются только один раз и не могут быть восстановлены. - Не указывай пользователю проверять
.herenow/state.jsonв поисках claim URL или статуса аутентификации.
Для Drives:
- Не описывай файлы на Drive как публичные URL.
- Сообщи пользователю, что содержимое Drive приватно, если не предоставлен токен с ограниченной областью видимости.
- При передаче доступа другому агенту предпочитай токен с узким
pathPrefixи коротким TTL.
publish.sh options
| Флаг | Описание |
|---|---|
--slug {slug} | Обновить существующий сайт вместо создания нового |
--claim-token {token} | Переопределить claim-токен для анонимных обновлений |
--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 | Разрешить другим форкать этот сайт |
Beyond publish.sh
Для операций с Drive используй drive.sh или Drive API. Для управления аккаунтом и сайтами в более широком смысле — удаление, метаданные, пароли, платежи, домены, хендлы, ссылки, переменные, прокси-маршруты, форкинг, дублирование и многое другое — смотри актуальную документацию:
Полная документация: https://here.now/docs