treg

官方

一个MCP服务器和一个密钥即可访问3,700多个按调用付费的API:SEO和反向链接、人物和公司信息丰富、社交、广告、抓取、图像和视频生成。远程访问地址为https://treg.to/mcp/v2/(OAuth)或自托管。

你可以用 Treg MCP 做什么?

  • 按任务搜索工具目录 — 让你的助手根据工具的功能查找端点,例如“查找工作邮箱”,并在调用前查看其参数和价格。
  • 无需提供商密钥即可调用目录端点 — 通过 treg 自有密钥或经过验证的公共路由运行目录中的端点,费用按次从团队余额中扣除;匿名调用则免费。
  • 注册并调用自己的工具 — 提供带有已存储密钥的上游 base_url,或提供 stripe、gh、vercel 等供应商 CLI,并通过服务端注入凭据来调用。
  • 安装并共享技能 — 注册包含密钥和工具的 SKILL.md 配方,然后将共享技能安装到代理中,使其调用通过 treg 进行。
  • 查看余额和凭据状态 — 查询剩余额度和近期支出,或检查已注册的凭据是否仍然有效。

托管 MCP 服务器

npx add-mcp 'https://treg.to/mcp/v2/'

可安装到 Claude Code、Codex、Cursor 等客户端

文档

Treg(面向工具的 OpenRouter)

treg — the tool catalog for your agent

面向智能体工具,而非模型的 OpenRouter。 只需让智能体指向一个基础 URL 并使用一个令牌, 它就能完成工作:汇集了众多提供商的数千个精选端点——SEO 和反向链接、 社交媒体和趋势、个人与公司信息补充、广告、抓取、图像和视频生成—— 按次计费,低至一美分, 无需注册提供商账号。此外,你的团队自己的密钥、技能和 CLI 也可供每位队友的 智能体调用,凭据始终留在服务器上。

描述任务,而不是工具。 你不必知道哪家供应商提供反向链接数据,也不必 在他们那里开设账号。搜索你想做的事,查看价格,然后调用即可。

为 Superdesign 团队打造,现已上线 treg.to——任何人都可以自行托管。

为什么要做它

智能体完成实际工作所需的工具,往往藏在没人会为了单次任务购买的订阅服务后面—— Semrush $139/mo、Moz $99/mo、Crunchbase $99/mo、Apollo $59/seat——也可能被注册门槛挡住, 或者根本没有公开 API(仅限邀请、仅限合作伙伴、仅限通过应用审核)。treg 提供这些账号, 并按次收取不足一美分的费用。

两类工具,一个令牌

  • 目录——treg 可以使用自己的密钥提供的外部端点,或通过无需提供商密钥的已验证公开 路由提供的端点。使用自有密钥的调用从团队预付余额中扣费;匿名调用免费。无需拥有提供商账号。 新验证账号在创建符合条件的团队时,可一次性获得 $1.00 免费额度。
  • 你自己的工具——队友注册的任何工具:付费 API 账号、OAuth 连接、供应商 CLI、一个 SKILL.md。你自己的密钥始终优先于 treg 的密钥,这些调用永远不会计量收费。

第二部分使用以下术语:

  • 工具 = 注册表使用组织凭据代你调用的内容。分为两类:
    • 端点——上游 base_url + 凭据绑定(每个绑定都会向请求注入一个密钥;一个请求可以携带多个密钥,例如 OAuth bearer 和 developer-token 标头)。
    • CLI——使用注入的凭据运行的供应商二进制文件(stripe、gh、vercel 等)。
  • 技能 / bundle = 配方(SKILL.md)+ 其密钥 + 其工具,一并注册。

唯一规则:代理只转发上游请求,不对上游进行建模,并且在服务器端注入身份验证 ——因此即使上游 API 发生变化也能正常工作,调用方也无需持有密钥。


第 1 部分 · 使用注册表

访问 treg.to(托管于 Render)——控制面板、 登录页面以及下方所有 URL 都位于此处。

快速入门

流程与控制面板中的 Getting started 指南相同:

# 1. install the CLI — also points it at the registry
curl -fsSL https://treg.to/install.sh | sh

# 2. sign in (GitHub default · --email for a one-time code · --token for agents/CI)
treg login

# 3. do something useful immediately — no key, nothing registered
treg catalog search "backlinks for a domain"     # find a tool by what it DOES
treg call tikhub.tiktok.user.profile --query uniqueId=tiktok
treg balance                                     # exactly what that cost

# (or `treg onboard` for the guided walkthrough)

Fish Audio 提供 S2.1 Pro 语音、公开语音发现和私有语音克隆。 语音输出为二进制 stdout,因此请将其重定向到文件。已发现语音的 _id 或团队语音 ID 是 TTS reference_id;在 treg 的 Fish 账号上创建的语音是持久的团队资源:

treg call fishaudio.tts.s2-1-pro --method POST --header model=s2.1-pro \
  --data '{"text":"Hello from treg","format":"mp3"}' > speech.mp3
treg call fishaudio.voices.discover --query self=false --query licensed=false --query language=en
treg resources list --provider fishaudio --kind voice

使用你自己的 Fish 密钥时,请求仍是无限制、不计量收费的上游转发,账号边界由 Fish 管理。

目录工具的输入由 treg catalog get <id> 描述。标记为 strict_query 的工具会拒绝未声明或重复的查询参数、不支持的值以及请求正文。每个已声明的单值参数只发送一次;行数等参数(例如 limit)必须是未超过规定上限的整数:执行此验证的工具会返回 400 catalog_parameter_invalid,指出参数名称,且不会扣费。

你的令牌会在每次调用中标识你的身份(X-Treg-Token 标头),并且所有工具共用同一个令牌。 查看团队共享的内容:treg tool ls · 检查凭据状态:treg health。

或将其安装为 Claude Code 插件

/plugin marketplace add superdesigndev/treg
/plugin install treg@treg

安装 treg 技能和 treg 工具,无需令牌或配置。运行 /mcp,选择 treg 并登录;随后即可使用这些工具。其他智能体:npx skills add superdesigndev/treg -s treg (或查看工作流技能了解其他内容)。 参见 docs/CLAUDE-PLUGIN.md。MiniMax Code / MiniMax Agent 用户:同一 技能也可通过 MiniMax Plugin Marketplace 安装(docs/MINIMAX-PLUGIN.md)。

工作流技能

现成的配方,由智能体端到端运行,每次调用都通过 treg:

技能智能体可以做什么
treg在目录中查找并调用任意工具,以及你自己的工具
web-access当智能体自带的网页工具不够用时,无需本地抓取工具即可读取实时网页:先免费搜索和读取页面,再为社交媒体、商店、评论、地图和论文选择合适的平台任务;某个供应商失败时,treg 会切换到下一个供应商
lead-signals根据公开信号(投诉、职位变动、招聘、融资、工具采用情况)寻找有购买意向的客户,并监控相关主题、竞争对手或账号列表(treg.to/leads-signals)
recruit将 LinkedIn 招聘信息转化为排序后的候选人名单:从招聘信息提取标准、搜索人员、筛选并说明理由、用一句话说明每位候选人的匹配原因;在每位候选人的支出上限内提供引用证据(帖子、GitHub、演讲、任职时间、职位变动),然后核验个人邮箱和电话,并生成运行文件,记录每位候选人的数量、证据和供应商调用记录
make-ugc制作 AI UGC 视频:热门开场、主持人、口播视频、字幕(treg.to/ugc)
jev-memory为 Claude Code 添加记忆:一种 Claude Code 模组,由 Jev 在每轮结束后评估每条提示,并保留你长期适用的偏好;可直接安装现成版本,也可通过一条提示构建(该模组)

install.sh 只安装 treg,并在一行中列出其他技能;登录并完成首次调用后,智能体会向你提供这些技能。使用 sh -s -- --skills lead-signals,recruit(或 --skills all)指定所需技能;选择加入的 jev-memory 和 rea-growth 永远不会包含在其中。在 Claude Code 中,每项技能也都是 treg 市场中的独立插件:/plugin install recruit@treg,或从 /plugin 中选择。若要将它们添加到现有智能体中(使用 skills.sh CLI):

npx skills add superdesigndev/treg                        # every public skill
npx skills add superdesigndev/treg --skill lead-signals   # just one
treg skill bootstrap --skills all                         # the installer's set, with the treg CLI you already have

工作流技能运行于 treg,因此请先完成设置(参见上方的快速入门,或让智能体访问 treg.to/llms.txt)。

Claude.ai 连接器

Claude Connectors Directory 中的入口为 https://treg.to/mcp/v2/。它只提供精选目录端点,不包含图像、视频或音频生成,并将读取调用与写入调用分开,以便 Claude 获得准确的安全信号。现有的 /mcp/ 入口仍可用于目录端点、团队自有工具和导入的技能。有关边界和实现方式,请参阅 MCP 和 OAuth 架构; 有关发布门槛,请参阅提交操作手册。

调用你没有密钥的工具

目录按端点的用途分类:关键词和排名跟踪、反向链接和权威度、 AI 可见度、趋势和发现、社交媒体发布、个人与公司信息补充、广告 管理和创意、效果衡量。

treg catalog                                    # every platform, busiest first
treg catalog search "find a work email"         # by the job, not the vendor
treg catalog search --new                       # tools added in the last 30 days, newest first
treg catalog get hunter.people.email.find       # params, PRICE, example response
treg call hunter.people.email.find --query domain=reddit.com --query full_name="Alexis Ohanian"

目录调用的服务方式——按顺序尝试以下凭据:

  1. 你的团队为该提供商注册了自己的工具 → 使用该工具和密钥;
  2. 你的团队为该提供商存储了密钥 → 通过虚拟工具注入;
  3. 两者都没有,但端点有已验证的公开路由 → 无需提供商密钥,免费;
  4. 否则 → 使用 treg 自己的密钥,从团队预付余额中扣费。

匿名价格以调用方不发送提供商凭据标头为前提。透明转发会保留调用方标头,因此调用方提供的提供商密钥可以使用该密钥对应的额度。你自己的凭据始终优先于 treg 的凭据,因此连接你已经付费使用的密钥后,这些调用不会消耗余额,也不会重复扣费。对于 treg 没有公布价格的端点,系统会拒绝调用,而不是免费提供服务——系统会提示你连接自己的密钥。如果多个提供商都能提供同一项能力,treg catalog search 会并列显示它们及其价格;由你选择——treg 不会擅自替你选择提供商,也不会在提供商之间自动故障转移。(如果 treg 自己的某个提供商账号额度用尽,treg 可能会通过其自有的中继账号提供同一个端点,并在响应中披露;团队可以选择退出。)你可以选择启用的例外是:treg.<capability> 路由端点,treg 会替你选择提供商并告知其名称。对于常见任务(抓取网页、网页搜索、Google 结果、查找邮箱),请从路由端点开始,例如 treg.web.extract 或 treg.web.search,而不是选择你记得名称的某个提供商。在 treg.people.email.find 和 treg.people.phone.find 上,X-Treg-Route-Verify: true 还会在同一次调用中核验找到的地址或电话号码,并单独收费,同时说明核验结果。

treg balance          # credit left, calls in flight, recent spend
treg topup            # add funds, or set up automatic top-ups

余额不足时会返回 HTTP 402 error: insufficient_balance,其中包含 balance_micro、estimated_cost_micro 和 topup_url, 让智能体无需阅读说明文字即可采取相应操作。

Enrich Arena 位于 /enrich-arena,不在控制面板中。比较各供应商的信息补充结果及其成本和速度, 一键投票选出最佳答案,或查看按顺序执行的瀑布流。兼容该能力的异步提供商也可参与;Arena 会在内部处理提交和轮询。浏览公开开放;提交需要登录,计费尝试会使用团队额度。参见 Arena 指南。

Web Arena 在 /web-arena 比较 Web Search、Web Fetch 和 Sitemap 提供商。 Battle 会使用选定的提供商处理相同输入;Waterfall 会按顺序尝试这些提供商。 实时排行榜结合了直接提供商调用的命中率和响应时间,以及 Web Arena 在滚动 30 天窗口内经核验的质量结果。启用该功能后即可访问相关页面。参见 Web Arena 指南。

共享和使用你自己的工具

最省心的方式——让 treg 检查一个项目,并自动判断哪些内容可以共享:

treg scan     # read-only preview: the keys, skills & CLIs upload would register
treg upload   # register them (encrypted server-side); idempotent, --replace to update

treg upload 会扫描 .env(将密钥与约 80 个已知提供商进行匹配)、每个技能子目录以及已安装的目录 CLI。注册表中有三类内容——以下是共享和使用每一类的方法:

1. 端点(HTTP API)

共享——注册一个可使用已存储密钥调用的上游 URL,或从 .env 批量导入:

treg secret add STRIPE_KEY --value sk_live_123
treg add stripe --base-url https://api.stripe.com --secret STRIPE_KEY

treg upload env --select openai,stripe,resend     # or straight from the .env

使用——面向智能体的方式:构建真实的上游请求,并在前面加上代理前缀。 treg 会根据主机解析工具、注入凭据,并忠实转发其余内容 (你的 X-Treg-Token 会在上游收到请求前被移除):

Real request:   GET https://api.intercom.io/conversations?per_page=5
Through treg:   GET https://treg.to/call/https://api.intercom.io/conversations?per_page=5
                    header:  X-Treg-Token: <your token>

也可以使用 CLI 简写——并使用 treg calls 查看审计日志:

treg call intercom conversations --query per_page=5
treg call stripe v1/balance

2. CLI

共享——自动完成:treg upload 会检测已安装的目录 CLI(stripe、gh、vercel、……) 并注册它们;仅包含配方的目录 CLI 技能(例如 stripe-cli)也会自动变为可运行技能。

使用——treg run 会注入组织凭据后执行供应商 CLI,因此你无需持有密钥或登录:

treg run stripe -- get /v1/balance
treg run gh -- pr list

--local(默认)会在你的机器上运行。全局已禁用服务器端 CLI 执行(--server)。 treg runs 是审计日志。

3. 技能

共享——技能是一项完整能力(SKILL.md 配方 + 其密钥 + 其工具), 将它们一并注册,让整个团队使用同一技能,并在一个地方统一维护:

treg upload skills --dir ~/.claude/skills --all   # register a folder of skills in one pass

使用——将任意共享技能拉取到你的智能体中;其 API 调用会通过带有你令牌的 treg 进行, 因此密钥会留在服务器上,而不会出现在技能中:

treg skill install seo-blog-writer      # writes into ./.claude/skills/  (--all for the library)

手动注册——启发式方法无法识别工具时

# multi-credential tool (e.g. google-ads: OAuth bearer + a developer-token header)
treg tool add google-ads --base-url https://googleads.googleapis.com \
  --bind "secret=<oauth-id>,injector=oauth" \
  --bind "secret=<dev-id>,name=developer-token,format={secret}"

# one skill, step by step
treg skill init --dir ./my-skill          # drafts treg.json (guesses base_url, finds secrets)
treg skill add  --dir ./my-skill          # registers recipe + secrets + tool, atomically

# OAuth via the browser (mints the first token, treg holds it and auto-refreshes)
treg oauth connect gsc --client-secret client_secret.json \
  --scopes https://www.googleapis.com/auth/webmasters.readonly

每条命令的完整选项:USAGE.md。 CLI 及其安装程序在使用 treg.to(无参数或凭据)时,会向 PostHog 发送匿名使用数据。 使用 TREG_TELEMETRY=0 或 DO_NOT_TRACK=1 可禁用。 参见分析详情。

团队

一个账户最多可拥有 10 个团队。作为成员加入其他团队不计入此限制。

所有内容都限定在一个 org 中:一个令牌 = 一个 (user, org) 成员身份,每个密钥、工具 和技能都属于当前激活的 org。角色:owner / admin / member / viewer。

treg org create "Acme"                        # make a team, become owner
treg org invite teammate@acme.com             # invite by email (pick role + tool access)
treg org join <code>                          # accept an invite (sign in as the invited email first)
treg org ls | use <slug> | members            # switch orgs, see the roster
treg org access <member> --tools a,b          # per-member tool access (admin+)

团队所有者可以在控制面板的 Team → SSO 标签页中启用企业 SSO。WorkOS 会连接公司的 身份提供商;所有者可以邀请 IT 管理员完成设置。员工可以在任何登录对话框中输入工作邮箱,或使用团队的直接登录链接。treg 保留其团队角色和 API 密钥。Directory Sync 计划会移除已停用员工的团队访问权限。参见 企业 SSO 设置。

深入了解

  • 反馈: treg feedback submit friction "The pagination example is unclear." 分享问题或建议时,请勿包含私人信息。参见反馈说明。

  • 评价: treg review CALL_ID useful 使用受邀目录调用的结果后,为其评分;not_sure 即可。请勿包含私人数据,并继续完成任务。

  • USAGE.md — 完整的 treg CLI 参考。

  • /llms.txt:面向代理的入口,采用 llms.txt 格式:介绍 treg、各类代理的设置方法、搜索-读取-调用循环及相关规则,并提供指向 /skill.md(操作指南)的链接,涵盖其他所有内容。

  • 控制面板:treg.to — 完整的 CRUD、引导式 教程(Help → Tutorial),以及可复制的代理设置说明。

  • API — CLI 执行的所有操作都是普通 HTTP 请求;交互式 OpenAPI 文档位于 /docs。 代理端点为 /call/{...};所有端点都需要 X-Treg-Token 请求头。


第 2 部分 · 自托管与开发

本地运行

一条命令(需要 tmux + uv;会自行同步 venv):

scripts/dev-local.sh up        # server on http://localhost:18790, dev-safe settings

该命令会在 tmux 中运行服务器并启用热重载,使用独立的 sqlite 数据库(treg-dev.db),以及电子邮件 OTP 开发模式(登录验证码会显示在页面上——无需邮件发送器)。日常使用:

scripts/dev-local.sh cli login   # sandboxed CLI: never touches your real ~/.treg/config.json
scripts/dev-local.sh logs        # server output          · status / restart / down
scripts/dev-local.sh reset       # wipe the dev DB + CLI sandbox for a fresh start

或者直接运行服务器,不使用 tmux:

bash scripts/build-dashboard.sh # Node 22.12+ and npm; build the Dashboard
uv sync                        # create the venv from uv.lock (pulls the server deps for dev)
uv run python -m treg upgrade  # prepare schema + run idempotent release tasks without serving
uv run python -m treg          # serve on 0.0.0.0:18790 (add --reload for dev)
uv run python -m treg keygen   # print a fresh Fernet key for TREG_SECRET_KEY

**安装服务器(非从源码运行):**基础软件包仅包含 CLI。要运行注册表,请安装服务器扩展包 —— pip install "tools-registry[server]" —— 它会添加 FastAPI、数据库驱动和加密功能。单独安装 pip install tools-registry 只会提供用于 与现有注册表通信的 treg 命令。

官方托管服务位于 treg.to。其生产拓扑和实时设置维护在私有的运维手册中。

配置

环境变量(前缀为 TREG_,从 .env 读取):

变量默认值用途
TREG_DATABASE_URLsqlite+aiosqlite:///./treg.db数据库 URL(开发环境使用 SQLite,生产环境使用 Postgres)
TREG_READ_DATABASE_URL(empty)可选的 SQLite / PostgreSQL 读取数据源;为空时复用主数据源。需要调用方主动启用;现有查询不变。参见读取数据源设置。
TREG_SECRET_KEY(empty)用于静态加密密钥的 Fernet 密钥;为空时会生成临时密钥(重启后密钥将无法保留)
TREG_PUBLIC_URLhttps://treg.totreg 的公开基础 URL,用于构建 OAuth 回调 URI
TREG_SESSION_SECRET(empty)用于签署控制面板会话 Cookie;未设置时回退到 TREG_SECRET_KEY。生产环境请设置真实值
TREG_GITHUB_CLIENT_ID / _SECRET(empty)GitHub OAuth 登录(回调 <public_url>/auth/github/callback);为空时隐藏按钮
TREG_GOOGLE_CLIENT_ID / _SECRET(empty)Google OAuth 登录(重定向 <public_url>/auth/google/callback);为空时隐藏按钮
TREG_WORKOS_API_KEY / _CLIENT_ID / _WEBHOOK_SECRET(empty)WorkOS 企业 SSO;按企业 SSO 设置中的说明配置回调和签名目录 Webhook
TREG_ENTERPRISE_SSO_BUNDLE_ONLYtrue默认仅显示 SSO + Directory Sync 计划;设为 false 可同时提供两种月度计划。
TREG_ENTERPRISE_SSO_BUNDLE_PRICE_ID / TREG_ENTERPRISE_SSO_ONLY_PRICE_ID(empty)与 TREG_STRIPE_SECRET_KEY 属于同一账户的可复用月度 Stripe Price ID;未设置或不可用的 Price 会隐藏对应计划。Stripe Price 提供显示金额和 Checkout 收费金额。
TREG_ENTERPRISE_SSO_BUNDLE_MIN_PRICE_USD / TREG_ENTERPRISE_SSO_ONLY_MIN_PRICE_USD0每个 Stripe 月度 Price 可选的整美元最低金额;低于此金额的价格会被隐藏,并在 Checkout 时拒绝。
TREG_INSTAGRAM_CLIENT_ID / _SECRET(empty)用于直接 Instagram Login 的 Instagram App ID 和密钥(重定向 <public_url>/oauth/callback)
TREG_META_CLIENT_ID / _SECRET(empty)用于 Facebook Pages、Meta Ads 和可选 Instagram page-tools 的 Meta 应用凭据
TREG_OAUTH_REVIEW_PENDINGinstagram-login,page-messages以逗号分隔的注册表审核密钥,其功能必须保持受限;托管服务的审核状态由私下维护。
TREG_RESEND_API_KEY / TREG_EMAIL_FROM(empty)通过 Resend 发送事务性邮件(OTP 验证码 + 邀请);发件人必须是 Resend 已验证的发件人
TREG_BLOCKED_EMAIL_DOMAINS(empty)以逗号分隔的电子邮件域名;在所有注册/登录入口和团队创建时拒绝这些域名(包括子域名,不区分大小写)。为空表示不屏蔽任何域名——代码中不附带任何列表
TREG_CLIENT_IP_HEADER(empty)仅由你的边缘节点设置的请求头,用作所有每 IP 限制的客户端地址(Cloudflare 后方的 cf-connecting-ip)
TREG_TRUSTED_PROXY_HOPS1未提供该请求头时:取从右侧数第 X-Forwarded-For 个条目(由离客户端最近的代理追加);客户端直接连接时使用 0。第一个条目由客户端写入,绝不可信
TREG_RATE_LIMIT_EXEMPT_IPS(empty)以逗号分隔的地址或 CIDR 网段,可豁免所有每 IP 限制(例如经授权的安全测试、监控探测);每邮箱、每用户和部署级限制仍然适用。条目格式错误会导致启动失败
TREG_REQUIRED_EXTENSIONS(empty)以逗号分隔的策略扩展(treg.extensions 入口点),必须已安装,否则启动失败。treg.to 通过此方式运行私有滥用防护策略扩展;它只能收紧限制(策略扩展)
TREG_TURNSTILE_SITE_KEY / _SECRET(empty)在所有电子邮件登录表单以及新地址首次使用 GitHub/Google 登录时启用 Cloudflare Turnstile;任一项为空即关闭。站点密钥会在 /captcha.js 中提供,密钥仅会发送到 siteverify
TREG_TURNSTILE_MODEobserveobserve 会记录每次结果但不改变任何行为;enforce 会拒绝缺少或无效令牌的验证码请求,在 Cloudflare 无法响应时不授予注册额度,并且只有通过检查的新 GitHub/Google 用户才会获得注册额度
TREG_TURNSTILE_SOCIALtruefalse 会跳过新地址首次使用 GitHub/Google 登录时的检查,此时用户会像未启用组件时一样获得注册额度;电子邮件入口不受影响
TREG_TURNSTILE_HOSTNAMES(empty)以逗号分隔的主机名,令牌必须在这些主机上完成验证;为空时使用 TREG_PUBLIC_URL 主机(及其已知别名)
TREG_ADMIN_TOKEN(empty)跨租户 super-admin bearer;授权访问所有 /admin/* 端点。为空时禁用环境变量路径(只有 is_superadmin 用户可以访问 /admin)。请使用足够长且保密的值。
TREG_EMAIL_DEV_MODEfalse为 true 时,/auth/email/start 会在响应中返回 OTP(无需邮件发送器)——仅限开发/本地环境,绝不可用于生产环境。
TREG_KV_URL(empty)供所有工作进程共享的键值存储(Redis 协议),用于需要跨进程一致的计数器,目前用于每团队的审核邀请额度。为空时使用进程内回退方案,适用于单工作进程

本地开发无需设置 .env ——所有设置都有可用的默认值(临时密钥、sqlite)。

**⚠️ 迁移或重新部署前请备份以下内容:**Fernet 密钥(TREG_SECRET_KEY)和 数据库(生产环境为 Postgres;本地 sqlite 运行时为 treg.db)。如果丢失 Fernet 密钥,所有 已存储的密钥都将无法恢复。

架构

**/call 的请求流程:**解析工具(按 URL 主机名 + 最长的 base_url 前缀,或按名称)→ 解密其密钥 → 应用每个绑定的注入器 → 将请求流式传输到上游 → 以即发即弃方式写入 审计记录。基础设施中继会传输字节,不包含业务逻辑。调用应用会缓冲需要结算或所有权证明的 响应,最多 8 MiB;更大的响应会返回 502,不收费,而不是返回被截断的成功响应。内嵌媒体的端点(Gemini 图像) 会声明 spooled_response:其计量答案会改为读取到临时文件,根据报告的用量结算,然后完整中继。无需正文 证据的授权免费最终下载会完整流式传输,自有密钥和自有工具的响应也一样。

模块映射(src/treg/):

模块作用
proxy.pyrelay() — 用一个函数实现完整产品:忠实的流式代理
injectors.py认证形式的衔接层:env、cli_auth、secret_file、oauth 将密钥放入请求头/查询参数
oauth.py令牌有效性(单航班刷新)+ 连接流程(授权 URL、代码交换)
health.py凭据健康状况:刷新 OAuth、探测工具,并通过 webhook 通知出现问题的资源所有者
convert.py将技能目录构建为可注册的捆绑清单
api.pyAPI — 唯一的核心;CLI + 技能是它的轻量客户端
cli.pytreg CLI
models.pySQLModel 表:Org、User、Membership、Invite、Secret、Tool、Bundle、PendingOAuth、CallRecord
crypto.py config.py db.py audit.pyFernet 加密 + 令牌 · 设置 · 异步数据库 · 延迟审计写入器

4 种认证形式(每个绑定 injector):env(纯字符串 / API 密钥)· secret_file( JSON 令牌文件,提取其中一个字段)· oauth(JSON OAuth 令牌,可刷新时自动刷新)· cli_auth(从 CLI 的密钥链中提取的材料)。

忠实中继契约:代理只会更改以下三项,其他内容均原样传递:

  1. 逐跳传输标头(按每一跳重新生成),
  2. treg 自身的控制与边缘转发标头(x-treg-token、x-treg-org、 ngrok-skip-browser-warning、x-forwarded-*、via、……)以及 treg 的会话 Cookie — 全部剥离, 绝不泄漏到上游,
  3. 注入的凭据。

OAuth,获取首个令牌的三种方式: 手动上传(放入一个 token.json)· 自动刷新(如果令牌包含 refresh_token + 客户端凭据,treg 会保持其有效,你无需 重新上传)· 托管连接流程(treg oauth connect → 浏览器授权 → treg 自行捕获 令牌)。

**健康检查:**为工具提供可选探测器({method, path, expect_status});定期运行 (按需或通过 cron)会验证每项凭据、刷新 OAuth,并通过 webhook 通知任何出现问题的资源所有者。

详细设计见 docs/context/(各子系统的片段)。

测试

uv run --with pytest-xdist pytest -n auto -q   # daily local default (same shape as CI)
uv run --frozen python -m pytest -q            # serial: debugging one test, or order

覆盖范围:代理基础骨架、所有注入器形式、按用户认证 + CRUD + 审计、技能组合器、 URL 直通 + 忠实中继、OAuth 刷新 + 连接流程、健康检查、treg run/shell、 上传/扫描、组织 + 邀请、仪表板 API、CLI。

贡献与文档

treg/
├── src/treg/            # the package (api, cli, proxy, injectors, oauth, health, convert, models, …)
│   └── web/             # dashboard, landing, tutorial, llms.txt, skill.md, install.sh
├── tests/               # pytest suite (CI + local default: pytest-xdist -n auto)
├── docs/
│   └── context/         # design fragments (codemap system) + generated index
├── USAGE.md             # full treg CLI reference
└── pyproject.toml

各子系统的设计文档是 docs/context/ 中的片段,每个片段都会引用其 src/treg/* 来源。在此仓库中使用 AI 代理?/tools-registry-context 技能会根据你正在处理的内容加载 相应片段,并保持文档同步 — 推送前运行 /tools-registry-context sync。

**路线图:**支持 MCP · 更细粒度的权限层级 · 加强静态密钥管理 · 可能与 Loopni 合并。

许可证

Apache 2.0 附加条款(LICENSE):可自由使用 — 包括商业用途, 也可用于你自己的组织(鼓励自行托管注册表)。限制:未经书面许可(jason@superdesign.dev),不得将代码 重新分发给第三方,作为竞争性的托管/管理型注册表服务。未经许可,在你自己的产品中使用托管的 treg.to API — 通过 X-Treg-Meta 和 usage/by-tag 进行透传计费 — 是允许的; 这是调用我们的 API,而不是重新分发我们的软件。

固定客户读取范围

对于受限的客户代理,treg org agent-new bot --pin customer=cust_A 会强制执行归属标记, 并将调用/运行历史、归档结果以及共享提供方的异步所有权限定在该固定对象范围内。 外部或未标记归属的 ID 会返回 404;未固定的操作员仍可查看整个组织范围,并使用共享余额。 BYOK 账户访问权限和公开媒体 URL 保持现有权限不变。有关多个固定对象、 迁移和重放行为,请参阅多租户契约。