🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

智能体工具目录 superdesigndev/treg

DeepSeek Harness
superdesigndev0 天前有提交已提供中文文档扫描:含敏感能力

OpenRouter 智能体工具,社区入口:https://discord.gg/6mQYYfFMAn

71.2/100
综合分
7,014
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add superdesigndev/treg
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · market
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 0 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包treg-dsh(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/28 11:39:44

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 1 处,展示前 1 条)
  • 读取本地文件
    dsh/index.js:67
    const content = await readFile(SKILL_BODY_URL, { encoding: 'utf8', signal })
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

1 张 · 点击查看大图

功能亮点

  • 智能体工具调用

README

由 DeepSeek 最新模型翻译生成
Treg(面向工具的 OpenRouter) treg — 你的智能体所用的工具目录 OpenRouter,但换成了智能体工具,而不是模型。 把智能体指向一个 base URL、配一个 token,它就能干活:一份精选目录,覆盖多家服务商的数千个端点 —— SEO 与外链、社交与趋势、人物与公司信息补全、广告、抓取、图像与视频生成 —— 按调用计费,低至一分钱,无需向服务商注册。再加上你自己团队的密钥、技能和命令行工具,每位队友的智能体都能调用,而凭据始终不离开服务器。 按任务去找,而不是按工具去找。 你不需要知道哪家厂商卖外链数据,也不需要在他们那里开账号。搜你想做的事,看清价格,直接调用。 为 Superdesign 团队打造,线上地址 treg.to —— 任何人都可以自托管。 为什么要有它 智能体干实际工作所需的工具,往往卡在没人会为单次运行买单的订阅后面 —— Semrush $139/mo、Moz $99/mo、Crunchbase $99/mo、Apollo $59/seat —— 或者卡在注册墙后面,或者干脆没有公开 API(仅限邀请、仅限合作伙伴、仅限应用审核)。treg 持有这些账号,按每次调用几分钱计费。 两类工具,一个 token - 目录 —— 外部端点,treg 用自己的密钥提供服务,或走已验证的公开路由,无需服务商密钥。
展开完整文档(README 剩余 1 节)
Treg(面向工具的 OpenRouter)

treg — 你的智能体所用的工具目录

OpenRouter,但换成了智能体工具,而不是模型。 把智能体指向一个 base URL、配一个 token,它就能干活:一份精选目录,覆盖多家服务商的数千个端点 —— SEO 与外链、社交与趋势、人物与公司信息补全、广告、抓取、图像与视频生成 —— 按调用计费,低至一分钱,无需向服务商注册。再加上你自己团队的密钥、技能和命令行工具,每位队友的智能体都能调用,而凭据始终不离开服务器。

按任务去找,而不是按工具去找。 你不需要知道哪家厂商卖外链数据,也不需要在他们那里开账号。搜你想做的事,看清价格,直接调用。

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

为什么要有它

智能体干实际工作所需的工具,往往卡在没人会为单次运行买单的订阅后面 —— Semrush $139/mo、Moz $99/mo、Crunchbase $99/mo、Apollo $59/seat —— 或者卡在注册墙后面,或者干脆没有公开 API(仅限邀请、仅限合作伙伴、仅限应用审核)。treg 持有这些账号,按每次调用几分钱计费。

两类工具,一个 token

- 目录 —— 外部端点,treg 用自己的密钥提供服务,或走已验证的公开路由,无需服务商密钥。自带密钥的调用使用团队预付费余额;匿名调用免费。无需在服务商处开账号。新验证的账号在创建符合条件的团队时,一次性获得 $1.00 免费额度。
- 你自己的工具 —— 队友注册的任何东西:付费 API 账号、OAuth 连接、厂商命令行工具、SKILL.md。你自己的密钥永远优先于 treg 的,这些调用也从不计量。

后半部分的术语:

- 工具(tool) = 注册表用组织的凭据替你调用的东西。分两类:
- 端点(endpoint) —— 上游 base_url + 凭据绑定(每个绑定把一个密钥注入请求;一个请求可以携带多个绑定,例如一个 OAuth bearer 和一个 developer-token 请求头)。
- 命令行工具(CLI) —— 厂商二进制(stripe、gh、vercel……),运行时注入凭据。
- 技能 / 包(skill / bundle) = 一份配方(SKILL.md)+ 它的密钥 + 它的工具,一起注册。

唯一一条规则: 代理只转发,不对上游做建模,并且在服务端注入认证 —— 所以它能扛住上游 API 变更,调用方也永远不持有密钥。

第一部分 · 使用注册表

访问 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 registeredbash 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 账号下创建的音色是持久的团队资源: bash
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 key 时,请求走不受限制、不计量的上游中转,账号边界由 Fish 管理。

目录工具的输入用 treg catalog get <id> 查看。标记为 strict_query 的工具会拒绝未声明或重复的查询参数、不支持的值和请求体。

你的 token 在每次调用中标识你的身份(X-Treg-Token 请求头),所有工具共用同一个 token。查看团队共享了什么:treg tool ls · 检查凭据健康:treg health。

或者把它安装为 Claude Code 插件

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

安装 treg 技能和 treg 的工具,无需 token,也无需配置。运行 /mcp,选择 treg 并登录;之后工具就会出现。其他智能体:npx skills add superdesigndev/treg -s treg(其余技能见 Workflow skills)。参见 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 mod,Jev 在每轮对话后评判提示词,保留你的长期偏好,可安装现成版本,也可用一条提示词构建(the mod) |

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 命令行): bash
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 可见性、趋势与发现、发布到社交平台、人员与公司信息补全、广告管理与创意、效果衡量。
bash
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 服务商。
对战模式为同一输入调用选定的服务商;瀑布流按顺序依次尝试。实时排行榜把直接调用服务商的命中率和响应时间,与经过校验的 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 按 host 找到对应工具,注入凭据,其余内容原样转发(你的 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>

也可以用命令行简写;审计日志看 treg calls:

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

2. CLI

分享:自动完成。treg upload 会检测已安装的目录 CLI(stripe、gh、vercel 等)并注册它们;只有 recipe 的目录 CLI 技能(例如 stripe-cli)也会自动变成可运行。

使用:treg run 执行厂商 CLI 时注入组织的凭据,所以你既不用持有密钥,也不用登录:

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

--local(默认)在你的机器上运行。服务端执行 CLI(--server)已全局禁用。如果想在整个会话里都这样用,treg shell start 会打开一个子 shell,其中每个已注册的 CLI 都自动注入凭据,你照常敲 stripe、gh 等命令即可;exit 退出后恢复原状。审计日志看 treg runs。

3. 技能

分享:技能是一整套能力(SKILL.md recipe + 它的密钥 + 它的工具),一起注册,整个团队跑同一个技能,只在一处维护:

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

使用:把共享技能拉进你的智能体;它的 API 调用带着你的 token 走 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。

使用 treg.to 时(不带参数、不带凭据),命令行会向 PostHog 发送匿名命令用量。
设置 TREG_TELEMETRY=0 或 DO_NOT_TRACK=1 可关闭。
详见分析数据说明。

团队

一个账号最多可拥有 10 个团队。以成员身份加入其他团队不计入这个上限。

所有内容都归属到某个 org:一个 token 对应一条 (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 --email you@acme.com # accept an invite (creates you if new)
treg org ls | use <slug> | members # switch orgs, see the roster
treg org access <member> --tools a,b # per-member tool access (admin+)

团队 owner 可在仪表盘的 Team → SSO 标签页启用企业 SSO。WorkOS 负责对接公司的身份服务商;owner 可以邀请 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 命令行完整参考。
- /llms.txt:智能体入口,采用 llms.txt 格式:treg 是什么、各类智能体如何设置、搜索-读取-调用循环与规则,并附上 /skill.md 的链接,其余内容都在那份操作指南里。
- 仪表盘:treg.to —— 完整的增删改查、分步教程(Help → Tutorial),以及可复制的智能体设置说明。
- API —— 命令行做的每件事都是普通 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

安装后运行服务器(不是从源码跑): 基础包只有命令行。要运行注册中心,请安装 server extra —— 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 | (空) | 可选的 SQLite / PostgreSQL 读数据源;留空则复用主数据源。需要调用方主动启用;现有查询不受影响。参见读数据源配置。 |
| TREG_SECRET_KEY | (空) | 用于静态加密密钥的 Fernet 密钥;留空 → 生成临时密钥(密钥在重启后不保留) |
| TREG_PUBLIC_URL | https://treg.to | treg 的公开基础地址,用于拼接 OAuth 回调 URI |
| TREG_SESSION_SECRET | (空) | 为仪表盘会话 cookie 签名;留空时回退到 TREG_SECRET_KEY。生产环境请设置真实值 |
| TREG_GITHUB_CLIENT_ID / _SECRET | (空) | GitHub OAuth 登录(回调 <public_url>/auth/github/callback);留空则隐藏按钮 |
| TREG_GOOGLE_CLIENT_ID / _SECRET | (空) | Google OAuth 登录(重定向 <public_url>/auth/google/callback);留空则隐藏按钮 |
| TREG_WORKOS_API_KEY / _CLIENT_ID / _WEBHOOK_SECRET | (空) | 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 | (空) | 可复用的月度 Stripe Price ID,须与 TREG_STRIPE_SECRET_KEY 属于同一账户;未设置或不可用的 Price 会隐藏对应套餐。显示金额与 Checkout 扣款均由 Stripe 的 Price 提供。 |
| TREG_ENTERPRISE_SSO_BUNDLE_MIN_PRICE_USD / TREG_ENTERPRISE_SSO_ONLY_MIN_PRICE_USD | 0 | 每个月度 Stripe Price 的可选整数美元最低价;低于该价格的套餐会被隐藏,并在 Checkout 时拒绝。 |
| TREG_INSTAGRAM_CLIENT_ID / _SECRET | (空) | 用于直接 Instagram 登录的 Instagram App ID 与 secret(重定向 <public_url>/oauth/callback) |
| TREG_META_CLIENT_ID / _SECRET | (空) | 用于 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 验证码 + 邀请);From 必须是 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_REQUIRED_EXTENSIONS | (empty) | 逗号分隔的策略扩展(treg.extensions 入口点),必须安装,否则启动失败。treg.to 就这样运行一个私有的滥用策略扩展;它只能收紧限制(策略扩展) |
| TREG_TURNSTILE_SITE_KEY / _SECRET | (empty) | 每个邮箱登录表单上的 Cloudflare Turnstile;任一为空即关闭。站点密钥通过 /captcha.js 下发,密钥只发往 siteverify |
| TREG_TURNSTILE_MODE | observe | observe 记录每次结果,不做任何改变;enforce 在 token 缺失或无效时拒绝验证码,Cloudflare 无法应答时不给注册信用 |
| TREG_TURNSTILE_HOSTNAMES | (empty) | 逗号分隔的主机名,token 必须在其上完成验证;留空 = TREG_PUBLIC_URL 的主机(及其已知别名) |
| TREG_ADMIN_TOKEN | (empty) | 跨租户 超级管理员 bearer;授权所有 /admin/ 端点。留空则禁用环境变量路径(只有 is_superadmin 用户能访问 /admin)。保持足够长且保密。 |
| TREG_EMAIL_DEV_MODE | false | 为 true 时,/auth/email/start 在响应里返回 OTP(无需邮件发送器)—— 仅限开发/本地,绝不要用于生产。 |
| TREG_KV_URL | (空)* | 共享键值存储(Redis 协议),用于存放每个 worker 都必须一致认同的计数器,目前是每个团队的评审邀请预算。留空 = 进程内回退,单 worker 够用 |

本地开发不需要 .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 把密钥放进 header/query |
| oauth.py | token 新鲜度(单飞刷新)+ 连接流程(同意 URL、code 交换) |
| health.py | 凭据健康:刷新 oauth、探测工具、对任何损坏项的负责人发 webhook |
| convert.py | 把技能目录脚手架成可注册的 bundle 清单 |
| api.py | API —— 唯一的大脑;命令行 + 技能都是它之上的瘦客户端 |
| cli.py | treg 命令行 |
| models.py | SQLModel 表:Org、User、Membership、Invite、Secret、Tool、Bundle、PendingOAuth、CallRecord |
| crypto.py config.py db.py audit.py | Fernet 加密 + token · 配置 · 异步数据库 · 延迟审计写入器 |

4 种认证形态(按绑定的 injector 区分):env(纯字符串 / API key)· secret_file(JSON token 文件,取其中一个字段)· oauth(JSON OAuth token,可刷新时自动刷新)· cli_auth(从命令行工具钥匙串里取出凭据)。

忠实转发约定: 代理只改动三样东西,其余全部原样透传:

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

OAuth:拿到首个 token 的三种方式: 手动上传(放入 token.json)· 自动刷新(token 带 refresh_token + 客户端凭据时,treg 会一直保持新鲜,你不用重新上传)· 托管连接流程(treg oauth connect → 浏览器授权 → treg 自己捕获 token)。

Health checks: give a tool an optional probe ({method, path, expect_status}); a periodic run
(on demand or via cron) validates every credential, refreshes OAuth, and webhooks the owner of any
that break.

Deep design lives in docs/context/ (per-subsystem fragments).

Tests

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

Coverage: proxy walking-skeleton, all injector shapes, per-user auth + CRUD + audit, skill composer,
URL-passthrough + faithful relay, OAuth refresh + connect flow, health checks, treg run/shell,
upload/scan, orgs + invites, the dashboard API, CLI.

Contributing & docs

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

Per-subsystem design docs are fragments in docs/context/, each citing its src/treg/
sources. Working in this repo with an AI agent? The /tools-registry-context skill loads the
right fragment for what you're touching and keeps the docs in sync — run /tools-registry-context sync before pushing.

Roadmap: MCP support · finer permission tiers · at-rest key-management hardening · possible Loopni merge.

License

Apache 2.0 with additional terms (LICENSE): use it freely — including commercially, inside your own organization (self-hosting your own registry is encouraged). The restriction: don't redistribute the code to third parties as a competing hosted/managed registry service without written
permission (jason@superdesign.dev). Using the hosted treg.to API inside your own product —
with pass-through billing via X-Treg-Meta and usage/by-tag — is allowed without permission; that's calling our API, not redistributing our software.

Pinned customer read scopes

For a restricted customer agent, treg org agent-new bot --pin customer=cust_A enforces attribution
and scopes call/run history, archived results and shared-provider async ownership to that pin.
Foreign or unattributed ids return 404; an unpinned operator keeps the org-wide view and shared
balance. BYOK account access and public media URLs retain their existing permissions. See the
multi-tenancy contract
for multiple pins, migration and replay behavior.
预览分享卡片长什么样 ↓superdesigndev/treg
分享 · DeepSeek Harness Hub
superdesigndev/treg

OpenRouter 智能体工具,社区入口:https://discord.gg/6mQYYfFMAn

回到顶部