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)

面向智能体工具,而非模型的 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"
目录调用的服务方式——按顺序尝试以下凭据:
- 你的团队为该提供商注册了自己的工具 → 使用该工具和密钥;
- 你的团队为该提供商存储了密钥 → 通过虚拟工具注入;
- 两者都没有,但端点有已验证的公开路由 → 无需提供商密钥,免费;
- 否则 → 使用 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— 完整的tregCLI 参考。 -
/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_URL | sqlite+aiosqlite:///./treg.db | 数据库 URL(开发环境使用 SQLite,生产环境使用 Postgres) |
TREG_READ_DATABASE_URL | (empty) | 可选的 SQLite / PostgreSQL 读取数据源;为空时复用主数据源。需要调用方主动启用;现有查询不变。参见读取数据源设置。 |
TREG_SECRET_KEY | (empty) | 用于静态加密密钥的 Fernet 密钥;为空时会生成临时密钥(重启后密钥将无法保留) |
TREG_PUBLIC_URL | https://treg.to | treg 的公开基础 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_ONLY | true | 默认仅显示 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_USD | 0 | 每个 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_PENDING | instagram-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_HOPS | 1 | 未提供该请求头时:取从右侧数第 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_MODE | observe | observe 会记录每次结果但不改变任何行为;enforce 会拒绝缺少或无效令牌的验证码请求,在 Cloudflare 无法响应时不授予注册额度,并且只有通过检查的新 GitHub/Google 用户才会获得注册额度 |
TREG_TURNSTILE_SOCIAL | true | false 会跳过新地址首次使用 GitHub/Google 登录时的检查,此时用户会像未启用组件时一样获得注册额度;电子邮件入口不受影响 |
TREG_TURNSTILE_HOSTNAMES | (empty) | 以逗号分隔的主机名,令牌必须在这些主机上完成验证;为空时使用 TREG_PUBLIC_URL 主机(及其已知别名) |
TREG_ADMIN_TOKEN | (empty) | 跨租户 super-admin bearer;授权访问所有 /admin/* 端点。为空时禁用环境变量路径(只有 is_superadmin 用户可以访问 /admin)。请使用足够长且保密的值。 |
TREG_EMAIL_DEV_MODE | false | 为 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.py | relay() — 用一个函数实现完整产品:忠实的流式代理 |
injectors.py | 认证形式的衔接层:env、cli_auth、secret_file、oauth 将密钥放入请求头/查询参数 |
oauth.py | 令牌有效性(单航班刷新)+ 连接流程(授权 URL、代码交换) |
health.py | 凭据健康状况:刷新 OAuth、探测工具,并通过 webhook 通知出现问题的资源所有者 |
convert.py | 将技能目录构建为可注册的捆绑清单 |
api.py | API — 唯一的核心;CLI + 技能是它的轻量客户端 |
cli.py | treg CLI |
models.py | SQLModel 表:Org、User、Membership、Invite、Secret、Tool、Bundle、PendingOAuth、CallRecord |
crypto.py config.py db.py audit.py | Fernet 加密 + 令牌 · 设置 · 异步数据库 · 延迟审计写入器 |
4 种认证形式(每个绑定 injector):env(纯字符串 / API 密钥)· secret_file(
JSON 令牌文件,提取其中一个字段)· oauth(JSON OAuth 令牌,可刷新时自动刷新)·
cli_auth(从 CLI 的密钥链中提取的材料)。
忠实中继契约:代理只会更改以下三项,其他内容均原样传递:
- 逐跳传输标头(按每一跳重新生成),
- treg 自身的控制与边缘转发标头(
x-treg-token、x-treg-org、ngrok-skip-browser-warning、x-forwarded-*、via、……)以及 treg 的会话 Cookie — 全部剥离, 绝不泄漏到上游, - 注入的凭据。
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 保持现有权限不变。有关多个固定对象、
迁移和重放行为,请参阅多租户契约。