treg
공식MCP 서버 하나와 키 하나로 3,700개 이상의 건별 과금 API를 이용할 수 있습니다: SEO 및 백링크, 개인 및 기업 정보 보강, 소셜, 광고, 스크래핑, 이미지 및 비디오 생성. 원격(https://treg.to/mcp/v2/, OAuth) 또는 자체 호스팅으로 사용 가능합니다.
Treg MCP(으)로 무엇을 할 수 있나요?
- 도구 카탈로그 검색 — 어시스턴트에게 기능 기준으로 도구를 찾아달라고 요청하세요(예: "도메인에 대한 백링크 검색"). 공급업체를 가격과 함께 나란히 비교할 수 있습니다.
- 공급자 키 없이 도구 호출 — 어시스턴트가
treg call hunter.people.email.find같은 카탈로그 엔드포인트를 호출하여 사람이나 회사 정보를 보강하도록 하세요. 호출당 잔액에서 차감됩니다. - 주입된 자격 증명으로 벤더 CLI 실행 — 어시스턴트에게
treg run stripe -- get /v1/balance또는treg run gh -- pr list같은 명령을 실행하도록 요청하세요. API 키를 직접 보유할 필요가 없습니다. - 자체 도구 등록 및 공유 — 어시스턴트에게
treg scan으로 프로젝트를 스캔하도록 지시한 다음,.env키, 스킬, CLI를 업로드하여 팀 전체가 사용할 수 있게 하세요. - 워크플로 스킬 설치 및 실행 — 어시스턴트에게
lead-signals같은 준비된 스킬을 가져와 구매 의향이 있는 고객을 찾게 하거나,make-ugc로 AI UGC 영상을 처음부터 끝까지 제작하게 하세요. - 팀 및 액세스 관리 — 어시스턴트에게 조직을 만들거나, 팀원을 초대하거나,
treg org create및treg org access같은 명령으로 특정 도구에 대한 멤버 액세스 범위를 설정하도록 요청하세요.
호스팅형 MCP 서버
npx add-mcp 'https://treg.to/mcp/v2/'Claude Code, Codex, Cursor 등에 설치됩니다
문서
Treg (도구용 OpenRouter)

모델 대신 에이전트 도구를 위한 OpenRouter. 에이전트를 하나의 기본 URL과 하나의 토큰으로 연결하면 작업을 수행할 수 있습니다: 다양한 제공업체의 수천 개 엔드포인트로 구성된 큐레이션 카탈로그 — SEO 및 백링크, 소셜 및 트렌드, 인물 및 회사 인리치먼트, 광고, 스크래핑, 이미지 및 비디오 생성 — 호출당 1센트부터 과금되며, 제공업체 가입이 필요 없습니다. 또한 팀의 자체 키, 스킬, CLI도 포함되어, 자격 증명이 서버를 벗어나지 않고 모든 팀원의 에이전트가 호출할 수 있습니다.
도구가 아닌 작업을 요청하세요. 백링크 데이터를 판매하는 업체가 어디인지 알 필요도, 해당 업체의 계정을 보유할 필요도 없습니다. 수행하려는 작업을 검색하고, 가격을 확인하고, 호출하세요.
Superdesign 팀을 위해 제작되었으며, treg.to에서 운영 중입니다 — 누구나 자체 호스팅할 수 있습니다.
존재 이유
실제 작업에 필요한 에이전트 도구는 한 번 실행하려고 구매하는 사람이 없는 구독 뒤에 숨어 있습니다 — Semrush 월 $139, Moz 월 $99, Crunchbase 월 $99, Apollo 좌석당 $59 — 가입 장벽 뒤에 있거나, 공개 API가 전혀 없는 경우(초대 전용, 파트너 전용, 앱 검토 전용)도 있습니다. treg는 이러한 계정을 보유하고 호출당 1센트 미만으로 청구합니다.
두 종류의 도구, 하나의 토큰
- 카탈로그 — treg가 자체 키 또는 제공업체 키가 필요 없는 검증된 공개 경로를 통해 제공할 수 있는 외부 엔드포인트. 자체 키 호출은 팀의 선불 잔액을 사용하며, 익명 호출은 무료입니다. 제공업체 계정이 필요 없습니다. 새로 검증된 계정은 적격 팀을 만들 때 $1.00 무료 크레딧을 한 번 받습니다.
- 자체 도구 — 팀원이 등록한 모든 것: 유료 API 계정, OAuth 연결, 벤더 CLI,
SKILL.md. 자체 키는 항상 treg의 키보다 우선하며, 해당 호출은 계량되지 않습니다.
두 번째 부분의 용어:
- 도구 = 레지스트리가 조직의 자격 증명으로 대신 호출하는 것. 두 종류가 있습니다:
- 엔드포인트 — 업스트림
base_url+ 자격 증명 바인딩 (각 바인딩은 요청에 하나의 비밀을 주입합니다; 요청은 여러 개를 포함할 수 있습니다, 예: OAuth 베어러 및developer-token헤더). - CLI — 자격 증명이 주입된 상태로 실행되는 벤더 바이너리 (
stripe,gh,vercel, ...).
- 엔드포인트 — 업스트림
- 스킬 / 번들 = 레시피 (
SKILL.md) + 해당 비밀 + 해당 도구(들)를 함께 등록한 것.
하나의 규칙: 프록시는 업스트림을 중계만 하고 모델링하지 않으며, 서버 측에서 인증을 주입합니다 — 따라서 업스트림 API 변경에도 견디고 호출자는 키를 보유하지 않습니다.
파트 1 · 레지스트리 사용하기
treg.to (Render에서 호스팅)를 방문하세요 — 대시보드, 로그인, 아래의 모든 URL이 여기에 있습니다.
빠른 시작
대시보드의 시작하기 가이드와 동일한 흐름:
# 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로 표시된 도구는 선언되지 않았거나 반복된 쿼리 매개변수, 지원되지 않는 값 및 요청 본문을 거부합니다.
토큰은 모든 호출에서 사용자를 식별하며 (X-Treg-Token 헤더) 모든 도구에 대해 동일합니다. 팀이 공유한 것을 발견하세요: treg tool ls · 자격 증명 상태 확인: treg health.
또는 Claude Code 플러그인으로 설치
/plugin marketplace add superdesigndev/treg
/plugin install treg@treg
토큰이나 구성 없이 설치됩니다. 스킬은 treg:treg로 로드되며, 첫 실행 시 에이전트를 나머지 과정 — CLI, 로그인, 그 다음 treg mcp install — 으로 안내하여 명령줄 및 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 | 카탈로그의 모든 도구와 자체 도구를 찾아 호출 |
lead-signals | 공개 신호(불만, 이직, 채용, 자금 조달, 도구 채택)에서 시장 내 구매자를 찾고 주제, 경쟁사 또는 계정 목록을 모니터링 (treg.to/leads-signals) |
make-ugc | AI UGC 비디오 제작: 트렌드 훅, 발표자, talking-head 클립, 자막 (treg.to/ugc) |
install.sh가 모두 설치합니다. 대신 기존 에이전트에 추가하려면 (skills.sh CLI):
npx skills add superdesigndev/treg # every public skill
npx skills add superdesigndev/treg --skill lead-signals # just one
treg skill bootstrap # same 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 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가 제공업체를 선택하고 이름을 지정합니다.
treg balance # credit left, calls in flight, recent spend
treg topup # add funds, or set up automatic top-ups
잔액 부족은 balance_micro, estimated_cost_micro 및 topup_url를 포함하는 HTTP 402로 표시되므로 에이전트가 문구를 읽지 않고 조치할 수 있습니다.
Enrich Arena는 대시보드 외부의 /enrich-arena에 있습니다. 각 벤더의 비용과 속도로 인리치먼트 답변을 비교하고, 한 번의 클릭으로 최상의 답변에 투표하거나 순차 워터폴을 시청하세요. 기능 호환 비동기 제공업체도 참여합니다; Arena는 제출 및 폴링을 내부적으로 처리합니다. 탐색은 공개이며, 제출은 로그인이 필요하고, 청구 가능한 시도는 팀의 크레딧을 사용합니다. 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
treg run --server agentmail-cli inboxes list # runs on the registry server: the key never reaches you
--local (기본값)은 사용자 머신에서 실행됩니다; --server는 레지스트리에서 실행되고 출력을 스트리밍합니다. 전체 세션의 경우 treg shell start는 등록된 모든 CLI가 자동으로 주입되는 하위 셸을 엽니다 — stripe, gh, …을 평소처럼 사용하면 됩니다; exit는 되돌립니다. 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개의 팀을 소유할 수 있습니다. 다른 팀에 멤버로 참여하는 것은 이 제한에 포함되지 않습니다.
모든 것은 조직 범위로 지정됩니다: 토큰 = (user, org) 멤버십이며, 모든 비밀, 도구, 스킬은 활성 조직에 속합니다. 역할: 소유자 / 관리자 / 멤버 / 뷰어.
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> --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+)
더 깊이 알아보기
-
피드백:
treg feedback submit friction "The pagination example is unclear."개인 정보 없이 문제나 제안을 공유하세요. 피드백 지침 참조. -
리뷰:
treg review CALL_ID useful초대된 카탈로그 호출의 결과를 사용한 후 평가하세요;not_sure도 괜찮습니다. 개인 데이터를 생략하고 작업을 계속하세요. -
USAGE.md— 전체tregCLI 참조. -
/llms.txt— 에이전트 온보딩 파일: 호출 프로토콜, 발견, 인증, CLI, 스킬. 한 번의 가져오기로 에이전트가 전체 레지스트리를 학습합니다. -
대시보드 treg.to — 전체 CRUD, 안내 튜토리얼 (도움말 → 튜토리얼), 에이전트용 복사 가능한 설정 지침.
-
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 DB (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 | DB URL(개발용 SQLite, 프로덕션용 Postgres) |
TREG_READ_DATABASE_URL | (비어 있음) | 선택적 SQLite / PostgreSQL 읽기 데이터 소스; 비어 있으면 기본 데이터 소스를 재사용합니다. 호출자가 명시적으로 선택해야 하며 기존 쿼리는 변경되지 않습니다. 읽기 데이터 소스 설정 참조. |
TREG_SECRET_KEY | (비어 있음) | 저장된 비밀번호용 Fernet 키; 비어 있으면 임시 키가 생성됩니다(재시작 시 비밀번호가 유지되지 않음) |
TREG_PUBLIC_URL | https://treg.to | treg의 공개 기본 URL, OAuth 콜백 URI 생성에 사용 |
TREG_SESSION_SECRET | (비어 있음) | 대시보드 세션 쿠키에 서명합니다. 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_INSTAGRAM_CLIENT_ID / _SECRET | (비어 있음) | Instagram 앱 ID 및 비밀번호(직접 Instagram 로그인용, 리디렉션 <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 | (비어 있음) | Resend를 통한 트랜잭션 이메일(OTP 코드 + 초대); 보낸 사람은 Resend에서 검증된 발신자여야 합니다 |
TREG_BLOCKED_EMAIL_DOMAINS | (비어 있음) | 모든 가입/로그인 및 팀 생성 시 거부되는 쉼표로 구분된 이메일 도메인(하위 도메인 포함, 대소문자 구분 안 함). 비어 있으면 차단되지 않음 — 코드에 목록이 포함되지 않음 |
TREG_ADMIN_TOKEN | (비어 있음) | 테넌트 간 슈퍼 관리자 베어러; 모든 /admin/* 엔드포인트를 승인합니다. 비어 있으면 환경 변수 경로가 비활성화됩니다(is_superadmin 사용자만 /admin에 도달). 길고 비밀로 유지하세요. |
TREG_EMAIL_DEV_MODE | false | true이면 /auth/email/start가 응답에 OTP를 반환합니다(메일 발신자 불필요) — 개발/로컬 전용, 프로덕션에서는 절대 안 됩니다. |
TREG_KV_URL | (비어 있음) | 모든 작업자가 동의해야 하는 카운터용 공유 키-값 저장소(Redis 프로토콜), 현재는 팀별 검토 초대 예산. 비어 있으면 프로세스 내 대체 수단, 단일 작업자에게 적합 |
로컬 개발에는 .env이 필요하지 않습니다 — 모든 설정에 작동하는 기본값이 있습니다(임시 키, sqlite).
⚠️ 이동 또는 재배포 전에 백업하세요: Fernet 키(
TREG_SECRET_KEY)와 데이터베이스(프로덕션에서는 Postgres, 로컬 sqlite 실행에서는treg.db). Fernet 키를 잃으면 저장된 모든 비밀번호를 복구할 수 없게 됩니다.
아키텍처
/call 요청 흐름: 도구 해석(URL 호스트 + 가장 긴 base_url 접두사 또는 이름 기준) → 비밀번호 복호화 → 각 바인딩의 인젝터 적용 → 업스트림으로 스트리밍 → 감사 기록 파이어앤포겟. 인프라 릴레이는 비즈니스 로직 없이 바이트를 스트리밍합니다. 호출 애플리케이션은 결제 또는 소유권 증거가 필요한 응답을 최대 8MiB까지 버퍼링합니다. 더 큰 응답은 잘린 성공 대신 요금을 부과하지 않고 502를 반환합니다. 본문 증거가 필요 없는 승인된 무료 최종 다운로드는 전체 스트리밍되며, 자체 키 및 자체 도구 응답도 마찬가지입니다.
모듈 맵 (src/treg/):
| 모듈 | 역할 |
|---|---|
proxy.py | relay() — 하나의 함수에 제품 전체: 충실한 스트리밍 프록시 |
injectors.py | 인증 형태 시임: env, cli_auth, secret_file, oauth가 헤더/쿼리에 비밀번호를 배치합니다 |
oauth.py | 토큰 신선도(단일 비행 새로고침) + 연결 흐름(동의 URL, 코드 교환) |
health.py | 자격 증명 상태: oauth 새로고침, 도구 프로브, 손상된 항목의 소유자에게 웹훅 |
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 암호화 + 토큰 · 설정 · 비동기 DB · 지연 감사 기록자 |
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 세션 쿠키 — 모두 제거되며 업스트림으로 절대 유출되지 않음, - 주입된 자격 증명.
OAuth, 첫 토큰을 얻는 세 가지 방법: 수동 업로드 (token.json에 넣기) · 자동 새로고침 (토큰에 refresh_token + 클라이언트 자격 증명이 있으면 treg가 새로 유지, 다시 업로드할 필요 없음) · 호스팅 연결 흐름 (treg oauth connect → 브라우저 동의 → treg가 토큰을 직접 캡처).
상태 확인: 도구에 선택적 프로브({method, path, expect_status})를 제공하세요. 주기적 실행(요청 시 또는 cron을 통해)은 모든 자격 증명을 검증하고 OAuth를 새로고침하며 손상된 항목의 소유자에게 웹훅을 보냅니다.
심층 설계는 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/셸, 업로드/스캔, 조직 + 초대, 대시보드 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
│ └── ONBOARDING.md # first-time bootstrap
├── 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): 자유롭게 사용하세요 — 상업적 용도 포함, 자체 조직 내에서(자체 레지스트리 호스팅 권장). 제한 사항: 경쟁 호스팅/관리형 레지스트리 서비스로 제3자에게 코드를 재배포하려면 서면 허가가 필요합니다(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은 기존 권한을 유지합니다. 여러 핀, 마이그레이션 및 재생 동작은 다중 테넌시 계약을 참조하세요.