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 — читай актуальную документацию:

→ https://here.now/docs

Читай документацию:

  • при первом взаимодействии с 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-ключ из следующих источников (побеждает первое совпадение):

  1. Флаг --api-key {key} (только для CI/скриптинга — в интерактивном режиме избегай)
  2. Переменная окружения $HERENOW_API_KEY
  3. Файл ~/.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 ч) к постоянным:

  1. Спроси пользователя его адрес электронной почты.
  2. Запроси одноразовый код для входа:
curl -sS https://here.now/api/auth/agent/request-code \
  -H "content-type: application/json" \
  -d '{"email": "user@example.com"}'
  1. Скажи пользователю: “Check your inbox for a sign-in code from here.now and paste it here.”
  2. Проверь код и получи API-ключ:
curl -sS https://here.now/api/auth/agent/verify-code \
  -H "content-type: application/json" \
  -d '{"email":"user@example.com","code":"ABCD-2345"}'
  1. Сохрани полученный 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

Полная документация: https://here.now/docs

перевод и редактура:

обновлено

⌕ ESC