Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help


title: “Here.Now — Publish static sites to {slug}” sidebar_label: “Here.Now” description: “Publish static sites to {slug}”

{/* 此页面由 website/scripts/generate-skill-docs.py 根据技能对应的 SKILL.md 文件自动生成。请直接编辑源文件 SKILL.md,而非此页面。 */}

Here.Now

可将静态网站发布到 {slug}.here.now,同时将私有文件存储在云盘 Drives 中,以便在不同智能体之间传递。

技能元数据

来源可选 —— 通过 hermes skills install official/productivity/here-now 安装
路径optional-skills/productivity/here-now
版本1.15.3
开发者here.now
许可协议MIT
支持平台macos、linux
标签here.nowherenowpublishdeployhostingstatic-sitewebshareURLdrivestorage

参考:完整的 SKILL.md 文件

:::info 以下是当触发该技能时 Hermes 会加载的完整技能定义。当技能处于激活状态时,智能体看到的指令即为此内容。
::

here.now

here.now 允许智能体发布网站,并将私有文件存储在云盘 Drives 中。

该技能可用于完成两项任务:

  • 网站发布:将网站及文件发布到 {slug}.here.now 地址。
  • 文件存储:将智能体的私有文件存储在云盘文件夹中。

当前文档

在回答有关 here.now 的功能、特性或工作流程的问题之前,请先阅读当前文档:

https://here.now/docs

建议在以下情况下阅读文档:

  • 对话中首次涉及 here.now 相关内容时
  • 用户询问某项操作的执行方法时
  • 用户询问哪些功能可用、受支持或被推荐使用时
  • 在告知用户某项功能不受支持之前

以下主题需要参考最新文档(不可仅依赖本地的技能说明文本):

  • 云盘及文件共享功能
  • 自定义域名
  • 支付及相关机制
  • 分支功能
  • 代理路由与服务变量 |链接|与|链接|
  • 限制与配额设置
  • 单页应用路由
  • 错误处理与解决方案
  • 功能可用性

如果文档内容与实际 API 行为存在差异,请以实际 API 行为为准。

若文档加载失败或超时,则继续依据本地的技能说明以及实际 API/脚本的输出结果进行操作。对于正在进行的操作,建议优先遵循实际 API 的行为规范。

系统要求

  • 必需的二进制工具:curlfilejq
  • 可选的环境变量:`$
PUBLISH="${HERMES_SKILL_DIR}/scripts/publish.sh"
bash "$PUBLISH" {file-or-dir} --client hermes

会输出该网站的在线地址(例如:https://bright-canvas-a7k2.here.now/)。

其内部处理流程分为三步:创建/更新 -> 上传文件 -> 完成配置。只有当“完成配置”步骤成功后,网站才会正式上线。

若未使用 API 密钥,则会创建一个匿名网站,且该网站在 24 小时后失效。 使用已保存的 API 密钥,则可创建永久性的网站。

文件结构: 对于 HTML 网站,请将 index.html 文件放置在要发布的目录的根目录中,而非子目录内。该目录的内容即构成网站的根目录。例如,应在存在 my-site/index.htmlmy-site/ 目录下进行发布——切勿发布包含 my-site/ 的上级文件夹。

您也可以直接发布不包含 HTML 格式的原始文件。单个文件会自动生成丰富的预览器(支持图片、PDF、视频、音频格式);多个文件则会自动生成带文件夹导航功能的目录列表以及图片画廊。

更新现有网站

PUBLISH="${HERMES_SKILL_DIR}/scripts/publish.sh"
bash "$PUBLISH" {file-or-dir} --slug {slug} --client hermes

在更新匿名站点时,该脚本会自动从 .herenow/state.json 中加载 claimToken。如需覆盖此设置,可传递 --claim-token {token} 参数。

进行需要身份验证的更新时,则必须使用已保存的 API 密钥。

使用驱动器

当用户希望为智能体文件提供私有云存储空间时,可使用驱动器:这些文件包括文档、上下文、内存数据、计划方案、资源文件、媒体资料、研究内容、代码,以及任何无需以网站形式公开即可长期保存的内容。

每个已登录账户都拥有一个名为 “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

在代理之间传递任务时,请使用带作用域的 Drive 令牌。若收到包含 herenow_drive 的共享块,需将其 token 作为 Authorization: Bearer <token> 的值用于调用 api_base,同时遵循现有的 pathPrefix 规则,并在写入操作时保留 ETags。当 pathPrefix 设置为 null 时表示拥有对整个 Drive 的访问权限。若该技能支持 drive.sh,则优先使用它;否则请直接调用列出的 API 操作。

API 密钥存储

发布脚本会从以下来源读取 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)提交到版本控制系统中。

获取 API 密钥

若要从匿名(24小时有效)账户升级为永久账户,请执行以下操作:

  1. 询问用户的电子邮件地址。
  2. 请求一个一次性登录码:
curl -sS https://here.now/api/auth/agent/request-code \
  -H "content-type: application/json" \
  -d '{"email": "user@example.com"}'
  1. 告诉用户:“请前往您的收件箱查看此处发送的登录验证码,然后将其粘贴到这里。”
  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

状态文件

在每次创建或更新站点后,脚本都会将相关数据写入工作目录下的 .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"
    }
  }
}

在创建或更新站点之前,您可以查看该文件以获取之前的站点标识符。请将 .herenow/state.json 视为仅用于内部缓存的文件。切勿将该本地文件路径作为 URL 使用,也不应将其作为认证模式、有效期或声明地址的权威来源。

应向用户说明的内容

对于已发布的站点:

  • 始终提供当前脚本运行生成的 siteUrl
  • 查看脚本标准错误输出中的 publish_result.* 行内容,以确定认证模式。
  • publish_result.auth_mode=authenticated 时,告知用户该站点为永久性存储,已保存至其账户中,无需提供声明地址。
  • publish_result.auth_mode=anonymous 时,告知用户该站点24 小时后失效。若 publish_result.claim_url 不为空且以 https:// 开头,可提供该声明地址以便用户永久保存。同时需提醒用户,声明令牌仅会生成一次且无法找回。
  • 绝对不要建议用户通过查看 .herenow/state.json 来获取声明地址或认证状态。

对于 Drive 功能:

  • 不要将 Drive 文件描述为公开 URL。
  • 告知用户,除非使用带权限限制的令牌进行共享,否则 Drive 内容为私有。
  • 当需要与其他代理共享访问权限时,建议使用 pathPrefix 范围较窄且有效期较短的权限令牌。

publish.sh 参数说明

参数描述
--slug {slug}更新现有站点而非新建
--claim-token {token}为匿名更新场景覆盖声明令牌
--title {text}查看器标题(非 HTML 站点使用)
--description {text}查看器描述
--ttl {seconds}设置有效期(仅适用于已认证账号)
--client {name}用于归属标识的代理名称(例如 hermes
--base-url {url}API 基础 URL(默认值:https://here.now
--allow-nonherenow-base-url允许向非默认的 --base-url 发送认证信息
--api-key {key}覆盖 API 密钥(优先使用凭证文件)
--spa启用单页应用路由(对未知路径返回 index.html)
--forkable允许他人对该站点进行 fork 操作

除 publish.sh 之外的功能

对于 Drive 操作,可使用 drive.sh 或 Drive API。如需进行更广泛的账户及站点管理——包括删除、元数据管理、密码设置、支付处理、域名管理、用户名管理、链接管理、变量配置、代理路由设置、站点 fork 操作、复制等功能——请参阅最新文档:

https://here.now/docs

完整文档地址:https://here.now/docs