| name | here-now |
| description | `here.now` 允许代理在云驱动器中发布网站并存储私有文件。通过 `Sites` 功能,可以将 HTML、文档、图片、PDF、视频和静态文件发布到 `{slug}.here.now` 或自定义域名下的实时 URL。`Drives` 则作为私有云文件夹,代理可以在此存储文件(包括文档、计划、资产、媒体、代码等),并与其他代理共享这些文件,确保数据在会话和工具之间保持同步。当需要执行以下操作时,可以使用 `here.now`:发布内容、托管文件、在网页上共享内容、创建网站、将文件上传到云端、生成 URL、构建聊天机器人、将文件保存到自己的云驱动器中、稍后使用这些文件、将文件写入云存储、与其他代理共享文件夹,或使用自己的 `here.now` 云驱动器。 |
here.now
技能版本:1.15.3
here.now 允许代理在云驱动器中发布网站并存储私有文件。
您可以使用 here.now 完成以下两项任务:
- 发布网站:将网站和文件发布到
{slug}.here.now。
- 存储文件:将代理的私有文件存储在云驱动器中。
安装或更新(推荐使用): npx skills add heredotnow/skill --skill here-now -g
对于通过仓库链接或本地安装的情况,请省略 -g 参数。
当前文档
在回答关于 here.now 的功能、特性或工作流程的问题之前,请先阅读当前文档:
→ https://here.now/docs
以下情况下请阅读文档:
- 在首次使用 here.now 时
- 当用户询问如何操作时
- 当用户询问某些功能是否可用或被支持时
- 在告知用户某个功能不受支持之前
需要查阅当前文档的主题(不要仅依赖本地文档):
- 驱动器及驱动器共享
- 自定义域名
- 支付与支付权限控制
- 分支功能
- 代理路由与服务变量
- 文件处理与链接
- 限制与配额
- 单页应用(SPA)路由
- 错误处理与修复
- 功能可用性
如果文档内容与实时 API 行为不一致,请以实时 API 行为为准。
如果文档加载失败或超时,请继续使用本地技能及实时 API/脚本输出。在操作过程中,优先参考实时 API 的行为。
必需条件
- 必需的二进制文件:
curl、file、jq
- 可选环境变量:
$HERENOW_API_KEY
- 可选驱动器令牌变量:
$HERENOW_DRIVE_TOKEN
- 可选凭据文件:
~/.herenow/credentials
- 配置的辅助脚本:
./scripts/publish.sh 用于发布网站
./scripts/drive.sh 用于私有文件存储
创建网站
./scripts/publish.sh {file-or-dir}
脚本会输出网站的实时 URL(例如:https://bright-canvas-a7k2.here.now/)。
内部实现分为三个步骤:创建/更新 → 上传文件 → 完成发布。只有当更新操作成功完成,网站才会正式上线。
如果没有 API 密钥,创建的网站为匿名网站,有效期为 24 小时;使用保存的 API 密钥后,网站将永久保存。
文件结构:对于 HTML 网站,请将 index.html 文件放在发布的目录根目录下,不要放在子目录中。目录的所有内容将成为网站的根目录。例如,如果 my-site/index.html 存在,则发布 my-site/;不要发布包含 my-site/ 的父目录。
您也可以直接发布原始文件(无需 HTML 格式)。单个文件会自动生成丰富的查看器(支持图片、PDF、视频、音频格式);多个文件会生成包含文件夹导航和图片库的目录列表。
更新现有网站
./scripts/publish.sh {file-or-dir} --slug {slug}
在更新匿名网站时,脚本会自动从 .herenow/state.json 文件中加载 claimToken。您可以通过 --claim-token {token} 参数覆盖该令牌。
进行身份验证后的更新需要使用保存的 API 密钥。
使用驱动器
当用户需要为代理文件(如文档、上下文数据、计划、资产、媒体、代码等)提供私有云存储空间时,可以使用驱动器。每个登录账户都有一个名为 My 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
在代理之间传递文件时,请使用带有权限范围的驱动器令牌。如果您收到 herenow_drive 共享信息,请使用其 token,并在请求 API 时设置 Authorization: Bearer <token>。如果存在 pathPrefix,请确保将其包含在请求中;写入文件时请保留 ETags。pathPrefix 为 null 表示全驱动器访问权限。如果支持该功能,建议使用 ./scripts/drive.sh;否则请直接调用相应的 API 操作。
客户端标识
使用 --client 参数,以便 here.now 能够追踪每个代理的使用情况:
./scripts/publish.sh {file-or-dir} --client cursor
在调用发布 API 时,该参数会发送 X-HereNow-Client: cursor/publish-sh 标头。如果省略此参数,脚本会使用默认值。
API 密钥的存储
发布脚本从以下来源读取 API 密钥(优先选择第一个匹配的来源):
--api-key {key} 参数(仅用于持续集成/脚本环境,避免在交互式使用中使用)
$HERENOW_API_KEY 环境变量
~/.herenow/credentials 文件(推荐使用)
要保存 API 密钥,请将其写入凭据文件:
mkdir -p ~/.herenow && echo "{API_KEY}" > ~/.herenow/credentials && chmod 600 ~/.herenow/credentials
重要提示:收到 API 密钥后,请立即保存它——请自行执行上述命令。切勿让用户手动操作。在交互式会话中,不要通过命令行参数(如 --api-key)传递密钥;建议使用凭据文件进行存储。
切勿将凭据文件或本地状态文件(~/.herenow/credentials、.herenow/state.json)提交到版本控制系统中。
获取 API 密钥
要将匿名网站升级为永久网站,请按照以下步骤操作:
- 向用户索取他们的电子邮件地址。
- 向用户请求一次性登录代码:
curl -sS https://here.now/api/auth/agent/request-code \
-H "content-type: application/json" \
-d '{"email": "user@example.com"}'
- 告诉用户:“请查看您的收件箱,查找来自 here.now 的登录代码,并将其粘贴到这里。”
- 验证代码并获取 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
状态文件
每次创建或更新网站后,脚本会向工作目录下的 .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。
- 阅读脚本标准输出(stderr)中的
publish_result.* 行以确定身份验证模式。
- 当
publish_result.auth_mode=authenticated 时,告知用户网站是永久保存的,并已保存在用户的账户中(无需提供共享链接)。
- 当
publish_result.auth_mode=anonymous 时,告知用户网站将在 24 小时后过期,并提供共享链接(如果 publish_result.claim_url 不为空且以 https:// 开头),以便用户可以永久保存该链接。请注意,共享令牌仅提供一次,无法重新获取。
- 切勿 告诉用户通过查看
.herenow/state.json 来获取共享链接或身份验证状态。
对于驱动器:
- 不要将驱动器文件作为公共 URL 提供给用户。
- 告诉用户,除非使用带有权限范围的令牌,否则驱动器内容是私有的。
- 在与其他代理共享访问权限时,建议使用具有特定
pathPrefix 和较短有效期的令牌。
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 | 启用单页应用路由(未知路径时返回 index.html) |
--forkable | 允许其他代理复制当前网站 |
更详细的操作说明
有关驱动器操作的更多信息,请使用 ./scripts/drive.sh 或直接调用 Drive API。关于账户和网站管理的更多内容(如删除、元数据管理、密码设置、域名配置、文件链接、变量管理、代理路由、分支功能等),请参阅当前文档:
→ https://here.now/docs
完整文档:https://here.now/docs