treg

oficial

Un servidor MCP y una clave para más de 3,700 APIs de pago por llamada: SEO y backlinks, enriquecimiento de personas y empresas, redes sociales, anuncios, scraping, generación de imágenes y videos. Remoto en https://treg.to/mcp/v2/ (OAuth) o autoalojado.

¿Qué puedes hacer con Treg MCP?

  • Busca en el catálogo de herramientas por tarea — Pídele a tu asistente que encuentre un endpoint según lo que hace, por ejemplo, «buscar un correo electrónico de trabajo», y consulta sus parámetros y precio antes de llamarlo.
  • Llama a endpoints del catálogo sin claves del proveedor — Ejecuta un endpoint del catálogo con la clave propia de treg o mediante una ruta pública verificada; el coste se carga al saldo del equipo por llamada o es gratis si se usa de forma anónima.
  • Registra y llama a tus propias herramientas — Comparte un base_url upstream con un secreto almacenado, o una CLI de proveedor como stripe, gh o vercel, y llámala con la credencial inyectada en el servidor.
  • Instala y comparte skills — Registra una receta SKILL.md junto con sus secretos y herramientas; luego instala una skill compartida en un agente para que sus llamadas pasen por treg.
  • Consulta el saldo y el estado de las credenciales — Pregunta cuánto crédito queda y cuál ha sido el gasto reciente, o comprueba si las credenciales registradas siguen funcionando correctamente.

Servidor MCP alojado

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

Se instala en Claude Code, Codex, Cursor y más

Documentación

Treg (OpenRouter para herramientas)

treg — the tool catalog for your agent

OpenRouter, pero para herramientas de agentes en lugar de modelos. Dirige un agente a una sola URL base con un solo token y podrá hacer el trabajo: un catálogo seleccionado de miles de endpoints de muchos proveedores — SEO y backlinks, redes sociales y tendencias, enriquecimiento de personas y empresas, anuncios, scraping, generación de imágenes y vídeos — con precios por llamada, desde un céntimo, sin registrarse con ningún proveedor. Además, las claves, habilidades y CLIs de tu propio equipo, disponibles para los agentes de todos los compañeros sin que las credenciales salgan nunca del servidor.

Pide la tarea, no la herramienta. No necesitas saber qué proveedor vende datos de backlinks ni tener una cuenta con él. Busca lo que quieres hacer, consulta el precio y llámalo.

Creado para el equipo de Superdesign, disponible en treg.to — cualquiera puede alojarlo por su cuenta.

Por qué existe

Las herramientas que un agente necesita para el trabajo real están detrás de suscripciones que nadie contrata para una sola ejecución — Semrush $139/mo, Moz $99/mo, Crunchbase $99/mo, Apollo $59/seat — detrás de muros de registro o sin ninguna API pública (invite-only, partner-only, app-review-only). treg mantiene esas cuentas y cobra fracciones de céntimo por llamada.

Dos tipos de herramientas, un token

  • El catálogo — endpoints externos que treg puede ofrecer con su propia clave o mediante una ruta pública verificada que no necesita clave del proveedor. Las llamadas con clave propia usan el saldo prepagado del equipo; las llamadas anónimas son gratuitas. No hace falta tener una cuenta con el proveedor. Las cuentas verificadas nuevas reciben $1.00 gratis una vez, al crear un equipo que cumpla los requisitos.
  • Tus propias herramientas — cualquier herramienta que haya registrado un compañero: una cuenta de API de pago, una conexión OAuth, una CLI de proveedor, un SKILL.md. Tu propia clave siempre tiene prioridad sobre la de treg, y esas llamadas nunca se contabilizan.

El vocabulario de la segunda parte:

  • herramienta = algo que el registro llama por ti con la credencial de la organización. Hay dos tipos:
    • endpoint — un base_url upstream + vinculaciones de credenciales (cada vinculación inyecta un secreto en la solicitud; una solicitud puede llevar varios, por ejemplo, un bearer OAuth y un encabezado developer-token).
    • CLI — un binario de proveedor (stripe, gh, vercel, ...) que se ejecuta con la credencial inyectada.
  • skill / bundle = una receta (SKILL.md) + sus secretos + sus herramientas, registradas en conjunto.

La única regla: el proxy retransmite, nunca modela el upstream e inyecta la autenticación en el servidor — así sigue funcionando aunque cambie la API upstream y quienes llaman nunca tienen las claves.


Parte 1 · Usar el registro

Visita treg.to (alojado en Render): allí están el panel, el inicio de sesión y todas las URL que aparecen a continuación.

Inicio rápido

El mismo flujo que en la guía Getting started del panel:

# 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 ofrece voz S2.1 Pro, descubrimiento de voces públicas y clonación privada de voces. El audio se envía por stdout en formato binario, así que redirígelo a un archivo. El _id de una voz descubierta o el ID de una voz del equipo es el reference_id de TTS; las voces creadas en la cuenta de Fish de treg son recursos duraderos del equipo:

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

Con tu propia clave de Fish, las solicitudes siguen siendo una retransmisión upstream sin restricciones ni medición, y Fish controla los límites de la cuenta.

Las entradas de las herramientas del catálogo se describen mediante treg catalog get <id>. Las herramientas marcadas como strict_query rechazan parámetros de consulta no declarados o repetidos, valores no admitidos y cuerpos de solicitud. Envía cada parámetro declarado de valor único una sola vez, y un recuento de filas como limit como número entero dentro del máximo indicado: una herramienta que aplica estas reglas responde con un 400 catalog_parameter_invalid que indica el parámetro, y no se cobra nada.

Tu token te identifica en cada llamada (encabezado X-Treg-Token) y es el mismo para todas las herramientas. Descubre lo que ha compartido tu equipo: treg tool ls · comprueba el estado de las credenciales: treg health.

O instálalo como plugin de Claude Code

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

Instala la skill de treg y las herramientas de treg sin token ni configuración. Ejecuta /mcp, elige treg e inicia sesión; las herramientas aparecerán después. Para otros agentes: npx skills add superdesigndev/treg -s treg (o consulta Workflow skills para ver las demás). Consulta docs/CLAUDE-PLUGIN.md. Los usuarios de MiniMax Code / MiniMax Agent pueden usar la misma skill, disponible en MiniMax Plugin Marketplace (docs/MINIMAX-PLUGIN.md).

Workflow skills

Recetas listas para usar que tu agente ejecuta de principio a fin; todas las llamadas pasan por treg:

SkillLo que puede hacer tu agente
tregEncontrar y llamar cualquier herramienta del catálogo, además de tus propias herramientas
web-accessCuando las herramientas web propias de tu agente no bastan, consultar la web en directo sin scrapers locales: primero búsquedas y lecturas de páginas gratuitas; después, el trabajo adecuado en plataformas sociales, tiendas, reseñas, mapas y artículos académicos, con treg recurriendo al siguiente proveedor si uno falla
lead-signalsEncontrar compradores interesados a partir de señales públicas (quejas, cambios de empleo, contrataciones, financiación, adopción de herramientas) y monitorizar un tema, competidor o lista de cuentas para encontrarlos (treg.to/leads-signals)
recruitConvertir una oferta de empleo de LinkedIn en una lista de candidatos ordenada: criterios extraídos de la oferta, búsqueda de personas, filtros con motivos, una línea sobre por qué encaja cada persona, pruebas citadas (publicaciones, GitHub, charlas, antigüedad, cambio de empleo) dentro de un límite de gasto por candidato y, después, un correo electrónico personal y un teléfono verificados, con un archivo de ejecución que incluye recuentos, pruebas y el historial de proveedores por candidato
make-ugcCrear vídeos UGC con IA: ganchos de tendencia, un presentador, clips de personas hablando a cámara y subtítulos (treg.to/ugc)
jev-memoryDar memoria a Claude Code: un mod de Claude Code en el que Jev evalúa cada prompt después del turno y conserva tus preferencias duraderas; se instala listo para usar o se crea a partir de un solo prompt (el mod)

install.sh instala solo treg y menciona las demás en una línea; tu agente te las ofrece después de iniciar sesión y de la primera llamada. Indica cuáles quieres con sh -s -- --skills lead-signals,recruit (o --skills all; las opciones voluntarias jev-memory y rea-growth nunca forman parte de ese conjunto). En Claude Code, cada una también está disponible como plugin independiente en el marketplace de treg: /plugin install recruit@treg, o selecciónalas en /plugin. Para añadirlas a un agente existente (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

Las workflow skills se ejecutan en treg, así que configúralo primero (con el Inicio rápido anterior o dirigiendo tu agente a treg.to/llms.txt).

Conector de Claude.ai

La superficie de Claude Connectors Directory es https://treg.to/mcp/v2/. Solo expone endpoints seleccionados del catálogo, sin generación de imágenes, vídeos ni audio, y separa las llamadas de lectura de las de escritura para que Claude reciba señales de seguridad precisas. La superficie existente /mcp/ sigue disponible para endpoints del catálogo, herramientas del equipo e skills importadas. Consulta la arquitectura de MCP y OAuth para conocer los límites y la implementación, y el manual de publicación para conocer los requisitos de lanzamiento.

Llamar a una herramienta para la que no tienes clave

El catálogo se organiza según lo que hacen los endpoints: seguimiento de palabras clave y posiciones, backlinks y autoridad, visibilidad en IA, tendencias y descubrimiento, publicación en redes sociales, enriquecimiento de personas y empresas, gestión de anuncios y creatividad, medición.

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"

Cómo se atiende una llamada del catálogo — la jerarquía de credenciales, en orden:

  1. tu equipo registró su propia herramienta para ese proveedor → esa herramienta, esa clave;
  2. tu equipo guardó un secreto para el proveedor → se inyecta mediante una herramienta virtual;
  3. ninguna de las anteriores y el endpoint tiene una ruta pública verificada → sin clave del proveedor, gratis;
  4. en caso contrario → la clave propia de treg, con cargo al saldo prepagado del equipo.

El precio anónimo presupone que quien llama no envía un encabezado de credenciales del proveedor. La retransmisión fiel conserva los encabezados de quien llama, así que una clave del proveedor enviada por quien llama puede usar los créditos de esa clave. Tu propia credencial siempre tiene prioridad sobre la de treg, así que conectar una clave que ya pagas hace que esas llamadas no consuman saldo, en lugar de duplicar el gasto. Si treg no tiene un precio publicado para un endpoint, se rechaza en vez de ofrecerse gratis: se te indica que conectes tu propia clave. Cuando varios proveedores ofrecen una misma capacidad, treg catalog search los muestra uno al lado del otro con sus precios; tú eliges: treg no selecciona ni cambia de proveedor en silencio por ti. (Si se agota la cuenta propia de treg con un proveedor, puede ofrecer el mismo endpoint mediante una cuenta de retransmisión propiedad de treg, que se indica en la respuesta; un equipo puede excluirse de esta opción). La excepción a la que puedes optar: endpoints enrutados treg.<capability>, donde treg elige el proveedor por ti y lo indica. Para tareas habituales (scraping de una página, búsqueda web, resultados de Google, encontrar un correo electrónico), empieza con el endpoint enrutado, como treg.web.extract o treg.web.search, en lugar de elegir un proveedor que recuerdes por su nombre. En treg.people.email.find y treg.people.phone.find, X-Treg-Route-Verify: true también verifica la dirección o el número encontrados en la misma llamada, con un cargo independiente, e indica el resultado de la verificación.

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

Si no hay saldo, se devuelve un HTTP 402 error: insufficient_balance que incluye balance_micro, estimated_cost_micro y un topup_url, para que un agente pueda actuar sin tener que leer texto explicativo.

Enrich Arena está en /enrich-arena, fuera del panel. Compara las respuestas de enriquecimiento según el coste y la velocidad de cada proveedor, vota por la mejor respuesta con un solo clic o sigue una cascada secuencial. También participan proveedores asíncronos compatibles con la capacidad; Arena gestiona internamente el envío y las consultas de estado. La navegación es pública; para enviar solicitudes hay que iniciar sesión, y los intentos facturables usan los créditos de tu equipo. Consulta la guía de Arena.

Web Arena compara proveedores de Web Search, Web Fetch y Sitemap en /web-arena. Las llamadas de Battle seleccionan proveedores para la misma entrada; Waterfall los prueba en orden. La clasificación en directo combina las tasas de aciertos y los tiempos de respuesta de llamadas directas a proveedores con los resultados de calidad verificados de Web Arena en un periodo móvil de 30 días. Las páginas se abren cuando la función está habilitada. Consulta la guía de Web Arena.

Compartir y usar tus propias herramientas

La opción que no requiere pensar: dirige treg a un proyecto y averiguará qué se puede compartir:

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 analiza el .env (comparando las claves con unos 80 proveedores conocidos), todos los subdirectorios de skills y las CLIs del catálogo instaladas. Hay tres tipos de elementos que se pueden añadir al registro; así se comparte y se usa cada uno:

1. Endpoints (API HTTP)

Compartir — una URL upstream que se puede llamar con una clave guardada, o importar en bloque desde un .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

Usar — la forma nativa para agentes: crea la solicitud upstream real y añade el prefijo del proxy. treg resuelve la herramienta por host, inyecta la credencial y retransmite fielmente todo lo demás (tu X-Treg-Token se elimina antes de que la solicitud llegue al upstream):

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>

O usa la abreviatura de CLI — y treg calls para el registro de auditoría:

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

2. CLIs

Compartir — automático: treg upload detecta las CLIs del catálogo instaladas (stripe, gh, vercel, …) y las registra; una skill del catálogo que solo contiene una receta de CLI (por ejemplo, stripe-cli) también se convierte automáticamente en ejecutable.

Usar — treg run ejecuta la CLI del proveedor con la credencial de la organización inyectada, así que nunca tienes que guardar la clave ni iniciar sesión:

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

--local (predeterminado) se ejecuta en tu máquina. La ejecución de CLI en el servidor (--server) está deshabilitada globalmente. treg runs es el registro de auditoría.

3. Skills

Compartir — una skill es una capacidad completa (receta SKILL.md + sus secretos + sus herramientas), registrada en conjunto para que todo el equipo use la misma skill, mantenida en un solo lugar:

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

Usar — incorpora cualquier skill compartida a tu agente; sus llamadas a la API pasan por treg con tu token, así que la clave permanece en el servidor y nunca se incluye en la skill:

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

Registro manual — cuando las heurísticas no logran identificar una herramienta

# 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

Consulta todas las opciones de cada comando: USAGE.md. El CLI y su instalador envían datos de uso anónimos a PostHog al usar treg.to (sin argumentos ni credenciales). Desactívalo con TREG_TELEMETRY=0 o DO_NOT_TRACK=1. Consulta detalles de analítica.

Equipos

Una cuenta puede tener hasta 10 equipos. Unirse a otros equipos como miembro no cuenta para este límite.

Todo está dentro del ámbito de una org: un token = una membresía de (user, org), y cada secreto, herramienta y skill pertenece a la org activa. Roles: 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+)

Los propietarios de equipos pueden habilitar el SSO empresarial desde la pestaña Team → SSO del panel. WorkOS conecta el proveedor de identidad de la empresa; los propietarios pueden invitar a su administrador de TI para completar la configuración. Los empleados pueden introducir su correo electrónico laboral en cualquier diálogo de inicio de sesión o usar el enlace directo de inicio de sesión del equipo. treg conserva los roles del equipo y las claves de API. El plan Directory Sync elimina el acceso al equipo de los empleados desactivados. Consulta configuración del SSO empresarial.

Profundizar

  • Comentarios: treg feedback submit friction "The pagination example is unclear." Comparte problemas o sugerencias sin información privada. Consulta instrucciones para enviar comentarios.

  • Reseñas: treg review CALL_ID useful Valora una llamada del catálogo a la que te hayan invitado después de usar su resultado; not_sure está bien. Omite los datos privados y continúa con la tarea.

  • USAGE.md — la referencia completa del CLI de treg.

  • /llms.txt: el punto de entrada para agentes, en el formato llms.txt: qué es treg, configuración para cada tipo de agente, el ciclo de búsqueda-lectura-llamada y las reglas, con enlaces a /skill.md, la guía operativa, para todo lo demás.

  • El panel en treg.to — CRUD completo, un tutorial guiado (Ayuda → Tutorial) e instrucciones de configuración copiables para tus agentes.

  • La API — todo lo que hace el CLI es HTTP simple; la documentación interactiva de OpenAPI está en /docs. El endpoint del proxy es /call/{...}; todos los endpoints requieren el encabezado X-Treg-Token.


Parte 2 · Autoalojamiento y desarrollo

Ejecución local

Un solo comando (requiere tmux + uv; sincroniza el entorno virtual por sí mismo):

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

Esto ejecuta el servidor en tmux con recarga en caliente, su propia base de datos sqlite (treg-dev.db) y el modo de desarrollo de OTP por correo electrónico (los códigos de inicio de sesión se muestran en la página; no se necesita un remitente de correo). Para el día a día:

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

O ejecuta el servidor directamente, sin 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

Instalación para ejecutar un servidor (no desde el código fuente): el paquete base solo incluye el CLI. Para ejecutar un registro, instala el extra del servidor — pip install "tools-registry[server]" — que añade FastAPI, los controladores de bases de datos y el cifrado. pip install tools-registry por sí solo solo proporciona el comando treg para comunicarse con un registro existente.

El servicio oficial alojado está disponible en treg.to. La topología de producción y la configuración activa se mantienen en el manual privado del operador.

Configuración

Variables de entorno (prefijo TREG_, se leen de .env):

VarPredeterminadoPropósito
TREG_DATABASE_URLsqlite+aiosqlite:///./treg.dbURL de la base de datos (SQLite para desarrollo, Postgres en producción)
TREG_READ_DATABASE_URL(vacío)Fuente de datos opcional de lectura SQLite / PostgreSQL; si está vacía, se reutiliza la principal. Requiere que los clientes la habiliten; las consultas existentes no cambian. Consulta configuración de la fuente de datos de lectura.
TREG_SECRET_KEY(vacío)Clave Fernet para los secretos almacenados; si está vacía → se genera una clave efímera (los secretos no sobrevivirán a un reinicio)
TREG_PUBLIC_URLhttps://treg.toURL base pública de treg, usada para crear el URI de devolución de llamada de OAuth
TREG_SESSION_SECRET(vacío)Firma la cookie de sesión del panel; recurre a TREG_SECRET_KEY. Establece un valor real en producción
TREG_GITHUB_CLIENT_ID / _SECRET(vacío)Inicio de sesión con OAuth de GitHub (devolución de llamada <public_url>/auth/github/callback); si está vacío, se oculta el botón
TREG_GOOGLE_CLIENT_ID / _SECRET(vacío)Inicio de sesión con OAuth de Google (redirección <public_url>/auth/google/callback); si está vacío, se oculta el botón
TREG_WORKOS_API_KEY / _CLIENT_ID / _WEBHOOK_SECRET(vacío)SSO empresarial de WorkOS; configura la devolución de llamada y el webhook de directorio firmado como se describe en configuración del SSO empresarial
TREG_ENTERPRISE_SSO_BUNDLE_ONLYtrueMuestra solo el plan SSO + Directory Sync de forma predeterminada; establece false para ofrecer ambos planes mensuales.
TREG_ENTERPRISE_SSO_BUNDLE_PRICE_ID / TREG_ENTERPRISE_SSO_ONLY_PRICE_ID(vacío)ID de precios mensuales reutilizables de Stripe en la misma cuenta que TREG_STRIPE_SECRET_KEY; si un precio no está configurado o no es válido, se oculta su plan. El precio de Stripe determina el importe mostrado y el cargo de Checkout.
TREG_ENTERPRISE_SSO_BUNDLE_MIN_PRICE_USD / TREG_ENTERPRISE_SSO_ONLY_MIN_PRICE_USD0Mínimo opcional en dólares enteros para cada precio mensual de Stripe; los precios inferiores se ocultan y se rechazan en Checkout.
TREG_INSTAGRAM_CLIENT_ID / _SECRET(vacío)ID y secreto de la aplicación de Instagram para el inicio de sesión directo de Instagram (redirección <public_url>/oauth/callback)
TREG_META_CLIENT_ID / _SECRET(vacío)Credenciales de la aplicación Meta para Facebook Pages, Meta Ads y page-tools opcional de Instagram
TREG_OAUTH_REVIEW_PENDINGinstagram-login,page-messagesClaves de revisión del registro, separadas por comas, cuyas capacidades deben permanecer restringidas; el estado de revisión del servicio alojado se mantiene de forma privada.
TREG_RESEND_API_KEY / TREG_EMAIL_FROM(vacío)Correo electrónico transaccional mediante Resend (códigos OTP e invitaciones); el remitente debe estar verificado en Resend
TREG_BLOCKED_EMAIL_DOMAINS(vacío)Dominios de correo electrónico separados por comas que se rechazan en todas las pantallas de registro e inicio de sesión y al crear equipos (incluye subdominios, sin distinguir mayúsculas de minúsculas). Vacío bloquea ninguno: el código no incluye ninguna lista
TREG_CLIENT_IP_HEADER(vacío)Encabezado que solo puede establecer tu perímetro, usado como dirección del cliente para cada límite por IP (cf-connecting-ip detrás de Cloudflare)
TREG_TRUSTED_PROXY_HOPS1Sin ese encabezado: la entrada X-Forwarded-For a esta cantidad de saltos desde la DERECHA (la que añadió tu proxy más cercano); 0 cuando los clientes se conectan directamente. Nunca se confía en la primera entrada, escrita por el cliente
TREG_RATE_LIMIT_EXEMPT_IPS(vacío)Direcciones o bloques CIDR separados por comas exentos de todos los límites por IP (una prueba de seguridad autorizada, una sonda de monitorización); siguen aplicándose los límites por correo electrónico, por usuario y de toda la implementación. Una entrada mal formada impide el inicio
TREG_REQUIRED_EXTENSIONS(vacío)Extensiones de políticas separadas por comas (puntos de entrada treg.extensions) que deben estar instaladas; de lo contrario, el inicio falla. treg.to ejecuta así una extensión privada de políticas contra el abuso; solo puede imponer restricciones (extensiones de políticas)
TREG_TURNSTILE_SITE_KEY / _SECRET(vacío)Cloudflare Turnstile en todos los formularios de inicio de sesión por correo electrónico y en el primer inicio de sesión de GitHub/Google desde una dirección nueva; si cualquiera está vacío = desactivado. La clave del sitio se sirve en /captcha.js; el secreto solo llega a siteverify
TREG_TURNSTILE_MODEobserveobserve registra cada resultado y no cambia nada; enforce rechaza un código si falta un token o no es válido, no concede crédito de registro si Cloudflare no responde y solo concede crédito de registro a un usuario nuevo de GitHub/Google si la comprobación se supera
TREG_TURNSTILE_SOCIALtruefalse omite la comprobación en el primer inicio de sesión de GitHub/Google desde una dirección nueva, que entonces recibe crédito de registro como si no hubiera widget; la pantalla de correo electrónico no cambia
TREG_TURNSTILE_HOSTNAMES(vacío)Hosts separados por comas en los que debe resolverse un token; vacío = el host TREG_PUBLIC_URL (y sus alias conocidos)
TREG_ADMIN_TOKEN(vacío)Token bearer de superadministrador entre inquilinos; autoriza todos los endpoints /admin/*. Vacío desactiva la ruta de entorno (solo los usuarios is_superadmin acceden a /admin). Mantenlo largo y secreto.
TREG_EMAIL_DEV_MODEfalseSi es true, /auth/email/start devuelve el OTP en su respuesta (no se necesita un remitente de correo): solo para desarrollo/local, nunca en producción.
TREG_KV_URL(vacío)Almacén compartido de clave-valor (protocolo Redis) para contadores en los que deben coincidir todos los workers; actualmente, el presupuesto de invitaciones a revisiones por equipo. Vacío = alternativa en proceso, adecuada para un solo worker

No se necesita .env para el desarrollo local: todos los ajustes tienen un valor predeterminado funcional (clave efímera, sqlite).

⚠️ Haz una copia de seguridad antes de mover o volver a implementar: la clave Fernet (TREG_SECRET_KEY) y la base de datos (Postgres en producción; treg.db para una ejecución local con sqlite). Si pierdes la clave Fernet, todos los secretos almacenados serán irrecuperables.

Arquitectura

Flujo de solicitudes para /call: resolver la herramienta (por host de URL + el prefijo base_url más largo, o por nombre) → descifrar sus secretos → aplicar el inyector de cada vinculación → transmitir al servidor de origen → registrar la auditoría sin esperar. El relay de infraestructura transmite bytes sin lógica de negocio. La aplicación de llamadas almacena en búfer las respuestas que requieren liquidación o pruebas de propiedad, hasta 8 MiB; las respuestas más grandes devuelven un 502 sin cobrar, en lugar de un éxito truncado. Los endpoints que incluyen contenido multimedia (imágenes de Gemini) declaran spooled_response: su respuesta con medición se lee en un archivo temporal, se liquida según el uso informado y se retransmite completa. Las descargas finales gratuitas autorizadas que no requieren pruebas en el cuerpo se transmiten completas, al igual que las respuestas con claves propias y herramientas propias.

Mapa de módulos (src/treg/):

MóduloFunción
proxy.pyrelay() — todo el producto en una función: un proxy de streaming fiel
injectors.pyel punto de unión de los esquemas de autenticación: env, cli_auth, secret_file, oauth colocan un secreto en un encabezado o parámetro de consulta
oauth.pyvigencia del token (actualización de vuelo único) + flujo de conexión (URL de consentimiento, intercambio de código)
health.pyestado de las credenciales: actualizar OAuth, sondear herramientas, enviar un webhook al propietario de cualquier elemento que falle
convert.pyconvertir un directorio de habilidades en un manifiesto de paquete que se pueda registrar
api.pyla API — el único cerebro; CLI + habilidad son clientes ligeros que la usan
cli.pyla CLI de treg
models.pytablas de SQLModel: Org, User, Membership, Invite, Secret, Tool, Bundle, PendingOAuth, CallRecord
crypto.py config.py db.py audit.pycifrado Fernet + tokens · configuración · DB asíncrona · escritor de auditoría diferido

Los 4 esquemas de autenticación (por vinculación injector): env (cadena simple / clave de API) · secret_file (un archivo de token JSON, extraer un campo) · oauth (un token OAuth JSON, se actualiza automáticamente si admite actualización) · cli_auth (material extraído del llavero de una CLI).

Contrato de retransmisión fiel: el proxy altera solo tres cosas; todo lo demás se transmite literalmente:

  1. encabezados de transporte salto a salto (se vuelven a derivar en cada salto),
  2. encabezados de control y reenvío perimetral propios de treg (x-treg-token, x-treg-org, ngrok-skip-browser-warning, x-forwarded-*, via, …) y la cookie de sesión de treg: se eliminan todos y nunca se filtran al upstream,
  3. las credenciales inyectadas.

OAuth, tres formas de obtener el primer token: carga manual (sube un token.json) · actualización automática (si el token incluye refresh_token + credenciales de cliente, treg lo mantiene actualizado y nunca tienes que volver a subirlo) · flujo de conexión alojado (treg oauth connect → consentimiento en el navegador → treg captura el token directamente).

Comprobaciones de estado: asigna a una herramienta un sondeo opcional ({method, path, expect_status}); una ejecución periódica (a petición o mediante cron) valida todas las credenciales, actualiza OAuth y envía un webhook al propietario de cualquiera que falle.

El diseño detallado está en docs/context/ (fragmentos por subsistema).

Pruebas

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

Cobertura: esqueleto funcional del proxy, todas las formas de inyección, autenticación por usuario + CRUD + auditoría, compositor de habilidades, paso directo de URL + retransmisión fiel, actualización de OAuth + flujo de conexión, comprobaciones de estado, treg run/shell, carga/análisis, organizaciones + invitaciones, API del panel, CLI.

Contribuciones y documentación

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

Los documentos de diseño por subsistema son fragmentos en docs/context/; cada uno cita sus fuentes src/treg/*. ¿Trabajas en este repositorio con un agente de IA? La habilidad /tools-registry-context carga el fragmento adecuado para lo que estás modificando y mantiene la documentación sincronizada: ejecuta /tools-registry-context sync antes de enviar los cambios.

Hoja de ruta: compatibilidad con MCP · niveles de permisos más detallados · refuerzo de la gestión de claves en reposo · posible fusión con Loopni.

Licencia

Apache 2.0 con términos adicionales (LICENSE): úsalo libremente, incluso con fines comerciales y dentro de tu propia organización (se recomienda alojar tu propio registro). La restricción: no redistribuyas el código a terceros como un servicio de registro alojado/gestionado que compita sin autorización por escrito (jason@superdesign.dev). Se permite usar la API alojada de treg.to dentro de tu propio producto, con facturación de transferencia mediante X-Treg-Meta y usage/by-tag, sin autorización; eso es llamar a nuestra API, no redistribuir nuestro software.

Ámbitos de lectura fijados para clientes

Para un agente de cliente restringido, treg org agent-new bot --pin customer=cust_A aplica la atribución y limita el historial de llamadas/ejecuciones, los resultados archivados y la propiedad asíncrona de proveedores compartidos a ese pin. Los identificadores ajenos o sin atribución devuelven 404; un operador sin pin conserva la vista de toda la organización y el saldo compartido. El acceso a cuentas BYOK y las URL de medios públicos mantienen sus permisos actuales. Consulta el contrato de multitenencia para obtener información sobre varios pins, la migración y el comportamiento de reproducción.