文档
发布与出售
一条上架信息说明一样可复用的东西:放在哪里、能做什么、使用什么许可证、定价多少。当它的能力与买家的目标相符时,就会进入买家的方案。在托管应用上,你可以通过表单、导入或 API 发布;在自托管节点上,上架信息是一个带签名的条目,用命令行发布。
目前在哪里可以出售。你可以在托管应用上发布、导入并为上架信息添加版本,免费或定价均可。但那里还没有人能购买付费上架信息:结账、订单、收入和放款即将推出,付费上架信息的文件保持锁定,只有所有者标记为预览的文件除外。托管、交付与放款目前只在自托管节点或模拟器里可用,而且都是测试模式,没有任何真实资金流动。标有 DEMO 的内置上架信息只是示例,收款地址是占位的,请不要向它们转账。
可以上架什么
在托管应用上:repo、skill、harness、mcp_server、model、dataset、prompt 或 template。在节点上:除 paper 以外的任何条目类型,其中包括 design。免费和付费使用同一张表单。价格为零表示免费:不进入托管,也不产生费用。价格大于零,则每位买家都要先把款项存入托管。托管目前只有测试模式,还没有真实资金易手。
请上架你拥有或有权转售的内容,不要把别人的开源项目当作自己的。GitHub、MCP registry 和 Hugging Face 上的免费条目已经会出现在方案里,无需你做任何事。
在托管应用上发布
登录后打开 /app/new(或点应用里的 Publish)。除类型和 URL 名称外,表单里的内容发布后都可以再修改。如果你属于某个组织,表单里的 Publish as 菜单可以把它选为所有者,前提是你在该组织里至少有 write 角色。
| 字段 | 必填 | 说明 |
|---|---|---|
kind | 是 | 上面八种类型之一,之后不能更改。 |
title | 是 | 最多 120 个字符,显示在列表和搜索结果里。 |
slug | 默认取自标题 | URL 中的名称:/app/OWNER/SLUG。小写字母、数字、点、下划线和连字符,最多 100 个字符,之后不能更改。已被占用的名称会被拒绝,已删除条目的名称也不例外。 |
summary | 表单中必填 | 最多 280 个字符,说明它能做什么。搜索读取的是标题、摘要、标签和能力。 |
license | 表单中必填 | 可选:MIT、Apache-2.0、BSD-3-Clause、BSD-2-Clause、ISC、MPL-2.0、LGPL-3.0、GPL-3.0、AGPL-3.0、CC0-1.0、CC-BY-4.0、CC-BY-SA-4.0、CC-BY-NC-4.0、Unlicense、OpenRAIL、Commercial-Single-Project、Commercial-Team、Proprietary、UNKNOWN。由你声明,不做核实。 |
capabilities | 否,表单中最多 8 项 | 取自能力列表的 id,供规划器和 Explore 的能力筛选使用。 |
tags | 否 | 最多 20 个标签,每个最多 40 个字符。 |
visibility | 默认 public | public 会出现在列表和搜索里;unlisted 只能通过链接访问;private 只有你和组织成员能看到。 |
pricing_model、price_cents | 默认免费 | free、fixed 或 pwyw(自定价,设最低价)。价格范围 1.00 到 1,000.00 美元。付费上架需要已验证的邮箱。 |
source_url、homepage_url | 否 | 代码所在位置与文档主页。 |
install | 否 | MCP server 填命令、参数、环境变量占位符或 URL;其他类型填一行安装命令。显示在条目页上,最多 4 KB。请使用 <your-api-key> 这样的占位符,不要粘贴真实密钥,这段文字是公开的。 |
readme | 否 | Markdown,最多 100,000 个字符。图片必须是 https 链接。 |
表单会把未发布的草稿保存在你的浏览器里,并在你输入时检查 URL 名称是否可用。同样的上架信息也可以用带 write 权限的令牌调用 POST /api/items 创建。接口只要求 kind 和 title,也不强制填写许可证,没有填写时会存为 UNKNOWN。每小时最多可新建 30 条上架信息、导入 20 个仓库。
从 GitHub 导入
打开 /app/new/import,粘贴公开仓库的链接,例如 https://github.com/owner/repo。Worker 会从 GitHub 读取仓库的名称、描述、许可证、topics、星标数、主页和 README,创建一条公开的上架信息并带你过去。请随后检查一遍:除类型和 URL 名称外,其余都可以修改。
- 仓库带有
mcp-servertopic 时,类型为mcp_server,否则为repo。导入前可以改选其他类型。 - 能力会根据名称、描述、topics 和 README 推断;你也可以自己选最多八项。
- 许可证取自 GitHub(需在上面的列表里),否则为
UNKNOWN,这会给每个用到它的方案增加风险,所以知道的话请自行设置。 - 安装命令会设为该仓库的
git clone。GitHub 星标数显示为 GitHub 星标。 - 代码文件、issue 和 release 仍留在 GitHub。之后可以把文件作为版本添加。私有仓库无法导入,同一所有者重复导入同一仓库也会被拒绝。
- 对应的 API 调用是
POST /api/items/import,请求体为{"url": "https://github.com/owner/repo"},可选owner、kind和capabilities。
版本与文件
上架信息可以没有文件,只作为指向源地址的索引条目。要托管文件,请在条目的 Release 页面添加一个版本,或在发布表单里一并添加。版本是文件的不可变快照。
- 版本号使用语义化版本,例如
1.2.0。同一个版本号不能发布两次。 - 每个版本的限制:100 个文件,单个文件 512 KB,总计 2 MB。路径不能包含
..,也不能以/开头。 - 内容哈希是对排序后的路径与文件哈希计算的 SHA-256,随版本一起显示。你可以撤回(yank)某个版本:它仍可访问,但不会再被选为最新版本。
- 任何人都能获取免费公开上架信息的文件:
GET /api/items/OWNER/SLUG/bundle以 JSON 返回最新版本,GET /api/items/OWNER/SLUG/raw/VERSION/PATH返回单个文件。 - 用脚本发布:
POST /api/items/OWNER/SLUG/versions,请求体为{"version", "changelog", "files": [{"path", "content"}]},使用带write权限的令牌。见 API 令牌。
条目页的 Use this 菜单里还会显示 reuseforge pull OWNER/SLUG 命令。它背后的命令行工具在仓库里(cli/,版本 0.1.0),并不是从本站安装,请改用同一菜单里的 REST bundle 那一行。
自托管节点上的上架
从这里到页面末尾,描述的都是自托管节点:上架信息是带签名的条目(节点里称为模块 block,所以命令行、路由和 JSON 字段沿用这个词),托管流程也在这里以测试模式运行。
条目字段
| 字段 | 是否必填 | 说明 |
|---|---|---|
name | 是 | 显示名称。它与你的密钥一起生成条目 ID,所以改名会产生一个新条目。 |
kind | 是 | repo、skill、harness、mcp_server、dataset、design 或 model。 |
summary | 是 | 用一两句平实的话说明它能做什么。搜索和规划器读取的是名称、简介和能力。 |
url | 是 | 代码或上架页面所在位置。会展示给买家;只有 http 和 https 链接才可点击。 |
capabilities | 否,但要被规划器选中就需要 | 能力标签列表。标签会转成小写并用连字符连接。声明的能力是最强的匹配信号。 |
license | 否 | SPDX 标识,如 MIT,或商业许可的名称。默认 UNKNOWN,会增加风险。 |
price_usd | 否 | 0 表示免费,不能为负。 |
payout | 使用非模拟通道时必填 | 通道到地址的映射。见收款地址。 |
version | 否 | 自由文本,默认 0.0.0。 |
content_hash | 付费上架时建议填写 | 价格所对应的 git 提交或压缩包哈希。买家会把收到的内容与它对照。 |
signals | 否 | 计入质量的数值:tests_pass_rate(0 到 1)、stars、downloads、citations。在被验证之前都是自报的。 |
project_id | 否 | 众筹项目的 ID,该项目的份额持有人将分享这个条目的收入。 |
由系统设置、你发送了也会被忽略的字段:owner(你的公钥,取自签名)、id、rating 和 rating_count。
用命令行发布条目
{
"name": "invoice-extractor",
"kind": "skill",
"summary": "Extracts line items, totals and tax ids from PDF invoices into JSON.",
"url": "https://github.com/acme/invoice-extractor",
"capabilities": ["document-parsing", "data-analysis"],
"license": "MIT",
"price_usd": 18,
"version": "1.2.0",
"content_hash": "sha256:9f2c1e0a",
"payout": { "usdc-base": "0x0000000000000000000000000000000000000001" },
"signals": { "tests_pass_rate": 0.96 }
}python -m repoblock publish block.json --as acme # 用密钥 "acme" 签名并输出该模块--as 指定节点密钥目录中的一个身份,首次使用时自动创建。运行中的节点要等重启后才能看到命令行的写入。若要发布到运行中的节点,请把同样的 JSON 加上 identity 字段,提交到 POST /api/blocks。以同一名称和密钥再次发布,会替换旧版本。
许可证
无论在托管应用还是节点上,许可证都是你自己声明的内容。ReuseForge 不会扫描你的代码,也不会核实你的声明,所以请如实填写:
- 许可证为
UNKNOWN或缺失,会给每个用到该条目的方案增加 0.4 的风险。声明真实的许可证,是提高排名最省事的办法。 - 付费代码请在仓库和交付内容中写明你授予的条款。内置的演示上架使用
Commercial-Single-Project这个标签,表示每次购买限用于一个项目。ReuseForge 不会替你定义或强制执行这个条款。 - 规划器目前不会检查同一方案里各条目的许可证是否相互兼容,这是待做事项。买家会看到每个条目的许可证,需要自己阅读。
收款地址
测试模式下不会向这些地址转任何东西。payout 把通道 ID 映射到你在该通道上的收款地址:usdc-base(Base 链地址)、usdt-ethereum(以太坊地址)、btc(比特币地址)。你接受哪些通道,就为每个通道各填一个。
- 模拟通道不需要地址,款项会付到你的公钥。
- 在其他任何通道上,如果你的条目没有该通道的地址,买家就无法为它创建订单。
- 创建订单时,地址会被复制进订单。之后修改上架信息,不会影响已经在进行中的订单。
- 链上转账无法撤销,地址填错就会损失款项。真实通道开放后,请先用小额价格测试。
交付
买家的存款确认后,你需要在交付期限内(默认 7 天)交付该订单里的所有付费条目。交付就是签署一个步骤,记录访问链接(默认是你上架信息里的 url)和上架信息中的内容哈希。链接可以是私有仓库的邀请,或带签名的下载地址。请确保买家能够访问。只有你本人能把自己的那一项标记为已交付。
curl -s -X POST http://127.0.0.1:8420/api/orders/ORDER_ID/deliver \
-d '{"identity":"acme","access":"https://github.com/acme/invoice-extractor/invitations"}'自托管节点目前还没有订单收件箱。你可以通过买家告知,或读取 GET /api/events 的账本来得知有新订单。如果一个订单有多位卖家,而其中一位迟交,整个订单都会退款,所以请尽早交付。
展示测试证据
你在上架信息里填写的 tests_pass_rate 只是一面之词。任何人都可以用真正运行你的测试得到的签名结果来取代它:
python -m repoblock verify BLK_ID # 默认:python -m unittest discover -q
python -m repoblock verify BLK_ID --cmd "make test" # 使用你自己的测试命令它会克隆条目的 url(必须是普通的 https git 地址),在带超时的临时目录中运行命令,读取结果,并追加一条签名的 block.attest 事件,记录通过率和测试数量。最新的验证记录会在条目质量得分里取代自报的数值。
- 结果解析器能识别
unittest的输出(Ran N tests)。如果你的测试框架不输出这样的行,测试数量会记为 0,通过率也记为 0,即使命令本身成功了。请让你的测试命令按这种形式打印一行汇总。 - 克隆在 120 秒后超时,测试在 300 秒后超时。
- verify 会在你的机器上运行仓库里的代码。在对不受你控制的内容运行它之前,请先读沙箱警告。
费用与收款
你收到的是标价扣除网络费用(自托管节点默认 1%)后的金额,向下取整到分。目前这只是测试模式下的一条记录,不是真钱:在模拟通道上它是内存里的余额,节点也不会发出链上放款。订单放款时系统自动记录,无需你申请。如果订单因争议或错过期限而退款,你该笔订单不会收到任何款项。免费上架从不产生费用。托管应用目前不接受订单,收入页面即将推出。托管应用的费用请见定价。
评价与信誉
在托管应用上,除所有者外,任何已登录的用户都可以对每条上架信息写一条 1 到 5 分的评价,所有者可以回复。只有该条目的订单已放款,评价才会被标为“已验证购买”,而这目前还不可能发生。在节点上,买家可以给条目打 1 到 5 分,但前提是他自己针对该条目的订单已经放款。评分是向 3 分收拢的平均值,评价较少时一条评分不会决定一个上架信息的成败。它会直接计入质量。
新上架的条目没有评价,因此会带有少量额外风险(0.2)。在此期间,清晰的描述、真实的许可证、内容哈希和独立的测试验证记录,是帮助它排名上升的做法。
更新与撤下
- 在托管应用上,从条目的 Settings 页修改上架信息,从 Release 页添加版本。你可以归档上架信息,或把它转移给自己拥有的组织。
- 在节点上,以相同的
name和密钥再次发布,即可发布新版本,最新一次发布生效。 - 新价格只适用于新订单。
- 撤下是一个签名的
block.retract事件。命令行暂未提供该功能,可在 Python 里调用Registry.retract。
最近更新: