here-now

here-now

here.now 让智能体在几秒钟内将网站和文件发布到实时 URL。发布 HTML、文档、图片、PDF、视频和静态文件到 {slug}.here.now 或自定义域名的实时 URL。当被要求“发布这个”、“托管这个”、“部署这个”、“在网上分享这个”、“制作一个网站”、“把这个放到网上”、“创建一个网页”、“生成一个 URL”、“构建一个聊天机器人”、“给这个网站加密码保护”、“让这个网站私密”或“只与特定人群分享这个网站”时使用。here.now 还包含 Drives,即私有云文件夹,智能体可以在其中存储文件、与其他智能体共享文件,并在会话和工具之间延续——当被要求“保存到我的 Drive”、“稍后存储这个”、“写入云存储”或“与另一个智能体共享文件夹”时使用。

35Star
0Fork
更新于 2026/7/11
SKILL.md
readonly只读
name
here-now
description

here.now 让智能体在几秒钟内将网站和文件发布到实时 URL。 发布 HTML、文档、图片、PDF、视频和静态文件到 {slug}.here.now 或自定义域名的实时 URL。当被要求“发布 这个”、“托管这个”、“部署这个”、“在网上分享这个”、“制作一个 网站”、“把这个放到网上”、“创建一个网页”、“生成一个 URL”、 “构建一个聊天机器人”、“给这个网站加密码保护”、“让这个网站 私密”或“只与特定人群分享这个网站”时使用。here.now 还 包含 Drives,即私有云文件夹,智能体可以在其中存储文件、 与其他智能体共享文件,并在会话和工具之间延续—— 当被要求“保存到我的 Drive”、“稍后存储这个”、“写入云存储” 或“与另一个智能体共享文件夹”时使用。

here.now

技能版本:1.17.0

here.now 让智能体在几秒钟内将网站和文件发布到实时 URL。

核心原语是 Site:发布一个文件或文件夹,即可在 {slug}.here.now 或自定义域名上获得一个实时 URL。每个 Site 都有访问控制:公开链接(默认)、密码或受限的仅邀请访问。

here.now 还包含 Drives——用于智能体文件的私有云文件夹(见下文“使用 Drive”)。

要安装或更新(推荐):npx skills add heredotnow/skill --skill here-now -g

对于仓库固定/项目本地安装,运行相同命令但不带 -g

当前文档

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

https://here.now/docs

阅读文档:

  • 在对话中首次涉及 here.now 相关交互时
  • 当用户询问如何做某事时
  • 当用户询问哪些是可能、支持或推荐的时候
  • 在告诉用户某个功能不受支持之前

需要当前文档的主题(不要仅依赖本地技能文本):

  • Site 访问控制(密码和受限访问)
  • Drives 和 Drive 共享
  • 自定义域名
  • Site Data
  • 公开个人资料
  • 代理路由和服务变量
  • 限制和配额
  • SPA 路由
  • 所有者 Site 搜索
  • Site 分析
  • 错误处理和修复
  • 功能可用性

如果文档和实时 API 行为不一致,以实时 API 行为为准。

如果文档获取失败或超时,继续使用本地技能和实时 API/脚本输出。对于正在进行的操作,优先使用实时 API 行为。

要求

  • 必需二进制文件:curlfilejq
  • 可选环境变量:$HERENOW_API_KEY
  • 可选 Drive 令牌变量:$HERENOW_DRIVE_TOKEN
  • 可选凭据文件:~/.herenow/credentials
  • 捆绑的辅助脚本:
    • ./scripts/publish.sh 用于发布站点
    • ./scripts/drive.sh 用于私有 Drive 存储

创建站点

./scripts/publish.sh {文件或目录}

输出实时 URL(例如 https://bright-canvas-a7k2.here.now/)。

底层是一个三步流程:创建/更新 -> 上传文件 -> 完成。站点在完成成功之前不会上线。

没有 API 密钥时,这会创建一个 匿名站点,24 小时后过期。
使用保存的 API 密钥时,站点是永久的。

文件结构: 对于 HTML 站点,将 index.html 放在要发布的目录的根目录下,而不是子目录中。目录的内容将成为站点根目录。例如,发布 my-site/,其中 my-site/index.html 存在——不要发布包含 my-site/ 的父文件夹。

您也可以发布没有 HTML 的原始文件。单个文件会获得一个丰富的自动查看器(图片、PDF、视频、音频)。多个文件会获得自动生成的目录列表,带有文件夹导航和图片库。

更新现有站点

./scripts/publish.sh {文件或目录} --slug {slug}

脚本在更新匿名站点时会自动从 .herenow/state.json 加载 claimToken。传递 --claim-token {token} 以覆盖。

认证更新需要保存的 API 密钥。

登录用户还有公开个人资料。智能体可以帮助用户在个人资料上显示或隐藏站点,并通过 https://here.now/docs#profile 上记录的 API 管理个人资料设置。

Site 访问控制

一个 Site 一次使用一种访问模式:

  • anyone_with_link(默认):任何拥有 URL 的人都可以查看。
  • password:访问者必须输入共享密码。
  • restricted:仅邀请;只有经过验证的电子邮件地址或所有者允许的电子邮件域才能查看。

使用 GET/PATCH /api/v1/publish/{slug}/access 管理访问(密码通过元数据端点)。受限访问需要已声明的 Site。PATCH 会替换整个允许列表——读取、合并然后写入。在处理访问控制之前,请阅读当前文档:

https://here.now/docs#access-control

使用 Drive

当用户想要用于智能体文件的私有云存储时使用 Drive:文档、上下文、记忆、计划、资产、媒体、研究、代码以及任何其他不应作为网站发布但需要持久化的内容。

每个登录账户都有一个名为 My Drive 的默认 Drive。

./scripts/drive.sh default
./scripts/drive.sh ls My Drive
./scripts/drive.sh put My Drive notes/today.md --from ./notes/today.md
./scripts/drive.sh cat My Drive notes/today.md
./scripts/drive.sh share My Drive --perms write --prefix notes/ --ttl 7d

使用作用域 Drive 令牌进行智能体间交接。如果您收到一个 herenow_drive 共享块,请使用其 token 作为 Authorization: Bearer <token> 针对 api_base,在存在 pathPrefix 时尊重它,并在写入时保留 ETag。pathPrefixnull 表示完全 Drive 访问。如果技能可用,优先使用 ./scripts/drive.sh;否则直接调用列出的 API 操作。

客户端归属

传递 --client 以便 here.now 可以按智能体跟踪可靠性:

./scripts/publish.sh {文件或目录} --client cursor

这会在发布 API 调用时发送 X-HereNow-Client: cursor/publish-sh
如果省略,脚本会发送一个回退值。

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. 告诉用户:“请检查您的收件箱,查找来自 here.now 的登录码,并在此处粘贴。”
  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"
    }
  }
}

在创建或更新站点之前,您可以检查此文件以查找先前的 slug。
.herenow/state.json 仅视为内部缓存。
切勿将此本地文件路径呈现为 URL,也切勿将其用作认证模式、过期时间或声明 URL 的真实来源。

告诉用户什么

对于已发布的站点:

  • 始终分享当前脚本运行中的 siteUrl
  • 从脚本 stderr 读取并遵循 publish_result.* 行以确定认证模式。
  • publish_result.auth_mode=authenticated 时:告诉用户该站点是 永久的 并已保存到他们的账户。不需要声明 URL。
  • publish_result.auth_mode=anonymous 时:告诉用户该站点 24 小时后过期。分享声明 URL(如果 publish_result.claim_url 非空且以 https:// 开头),以便他们可以永久保留。警告声明令牌仅返回一次且无法恢复。
  • 切勿告诉用户检查 .herenow/state.json 以获取声明 URL 或认证状态。

对于 Drives:

  • 不要将 Drive 文件描述为公共 URL。
  • 告诉用户 Drive 内容是私有的,除非使用作用域令牌共享。
  • 当与其他智能体共享访问权限时,优先使用具有狭窄 pathPrefix 和短 TTL 的作用域令牌。

publish.sh 选项

标志 描述
--slug {slug} 更新现有站点而不是创建
--claim-token {token} 覆盖匿名更新的声明令牌
--title {text} 查看器标题(非 HTML 站点)
--description {text} 查看器描述
--ttl {seconds} 设置过期时间(仅限认证用户)
--client {name} 用于归属的智能体名称(例如 cursor
--base-url {url} API 基础 URL(默认:https://here.now
--allow-nonherenow-base-url 允许向非默认 --base-url 发送认证
--api-key {key} API 密钥覆盖(优先使用凭据文件)
--spa 启用 SPA 路由(为未知路径提供 index.html)

超越 publish.sh

对于 Drive 操作,使用 ./scripts/drive.sh 或 Drive API。对于更广泛的账户和站点管理——Site Data、搜索、分析、个人资料、删除、元数据、访问控制、域名、变量、代理路由、复制等——请参阅当前文档:

https://here.now/docs

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