npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

rerent-cli

v0.3.0

Published

Rerent CLI — 미사용 GPU 시간 마켓플레이스(rerent.ai). SKU·오더북 조회, 매수·매도 주문, 풀·노드·인스턴스. 의존성 없음, Node 20+.

Readme

rerent-cli

Rerent(https://rerent.ai)는 미사용 GPU 노드 시간을 노드·시간 단위로 사고파는 마켓플레이스예요. 공급자는 빈 GPU 서버를 등록해 시간을 팔고, 구매자는 필요한 시간 창만 사서 그 위에 컨테이너(인스턴스)를 띄우고, 남는 시간은 다시 팔아요. rerent 는 그 REST API(https://rerent.ai/docs/api) 전체를 다루는 의존성 없는 단일 파일 CLI(Node 20+)이고, 이 설명서는 CLI 자신이 rerent manual 로 출력해요 — 사이트 문서(/docs/cli)와 npm README 도 같은 명세에서 생성되므로 항상 코드와 같아요.

설치·인증

npm i -g rerent-cli            # 명령 이름은 rerent · 또는 npx rerent-cli …
curl -fsSL https://rerent.ai/cli/rerent.mjs -o /usr/local/bin/rerent && chmod +x /usr/local/bin/rerent   # npm 없이
rerent login --token rlt_…     # 설정 → API 토큰에서 발급 · ~/.rerent/config.json 에 저장 (RERENT_TOKEN / RERENT_URL 환경변수가 우선)
rerent whoami

규약 — 모든 명령에 공통

  • --json 을 붙이면 사람용 표 대신 API 응답 JSON 원본을 그대로 출력해요. 스크립트·에이전트는 이걸 쓰세요. 목록은 {object:"list", data:[…], has_more, cursor}, 오류는 종료 코드 1 + stderr 에 <HTTP> <code>: <message>.
  • 시각(--start --end --until --from): now · "in 3h"(m/h/d/w) · tomorrow(KST 0시) · ISO(2026-09-15T09:00:00+09:00) · epoch 초. 분 단위로 내림 정렬돼요. 기간(--duration --min-runtime): 30m 1h 12h 3d 2w. --end 가 있으면 --duration 대신 써요.
  • 금액은 노드·시간당 원(₩) 정수(30000 · ₩30,000 모두 됨). 노드 = SKU 가 정한 GPU 묶음(예 8× H100). GPU·시간당 값이 필요하면 SKU 의 gpus_per_node 로 나누세요.
  • 자원 지정은 ID(ordr_… inst_…)나 이름(풀·템플릿·이미지·배포·워크스페이스·SKU alias) 어느 쪽이든 돼요. 자원 경로 rerent:pool:<조직>:<워크스페이스>:<이름> 도 받아요.
  • 목록 필터: --tag k=v[,k2=v2](모두 만족) · --tag-key k · --workspace W · --pool P · --deployment D · --limit N — 명령이 지원하는 것만 적용돼요(각 명령의 사용법 참고).
  • 태그는 --tag k=v,k2=v2 로 생성 시 붙이고 set 으로 전부 교체해요(키 ≤128자 · 값 ≤256자 · 쉼표와 = 금지 · 자원당 50개).
  • 역할: 토큰의 역할이 곧 권한. admin 전부 · member 매수·인스턴스·조회(매도·토큰·클러스터 불가) · viewer 조회만(변경 명령은 403 read_only).
  • 멱등성: orders create 는 자동 Idempotency-Key. 재시도가 안전해요.

흔한 흐름(에이전트용)

  1. GPU 시간 사서 SSH 접속: rerent market → rerent availability --sku icn-1-h100 --duration 24h → rerent orders create --side buy --sku icn-1-h100 --start now --duration 12h --nodes 1 --max-rate 30000 --estimate(견적) → 같은 명령에서 --estimate 빼기 → rerent ssh-keys add --name laptop --file ~/.ssh/id_ed25519.pub → rerent instances create --pool default --image pytorch → rerent instances(ssh 명령 확인) 또는 rerent instances ssh <id>.
  2. 항상 N대 유지(자동 매수): rerent templates create --name train --image ghcr.io/me/train:latest --mode custom --command "python train.py" → rerent deployments create --pool default --sku icn-1-h100 --target 2 --max-rate 30000 --horizon 6 --template train → rerent deployments get <name> 으로 확보율·오류 확인. 끝낼 땐 deployments set <name> --target 0 또는 rm.
  3. 남는 시간 되팔기: rerent pool default(보유 스케줄) → rerent pools sellable default --sku icn-1-h100 → rerent orders create --side sell --pool default --sku icn-1-h100 --start "in 8h" --duration 4h --nodes 1 --min-rate 20000 --allow-standing --allow-partial → rerent realized.
  4. 내 GPU 서버 팔기(공급자): rerent clusters create --name lab --sku icn-1-h100 --nodes gpu1.lab.internal,gpu2.lab.internal --until "in 30d" --auto-sell --price 28000 --floor 18000 → 출력된 설치 명령을 각 서버에서 sudo bash → rerent clusters get <id>(온라인 확인) → rerent clusters assignments <id> · rerent credits payout ….
  5. 상태 변화 받기: rerent events --type instance.running,order.filled 폴링, 또는 rerent webhooks create --url https://my.app/hook --events instance.running 뒤 서명 검증(https://rerent.ai/docs/events).

CLI 에 없는 조합은 rerent api <METHOD> </v1/…> --data '{…}' 로 어떤 엔드포인트든 그대로 부를 수 있어요. 아래 표의 「API」열이 각 명령이 실제로 부르는 엔드포인트예요.

계정·인증·조직

토큰 하나가 조직 하나를 대표해요. 토큰 역할(admin·member·viewer)이 곧 CLI 의 권한이고, viewer 토큰은 조회(GET) 명령만 돼요.

| 명령 | 하는 일 | API | |---|---|---| | rerent login --token rlt_… [--url https://rerent.ai] | 토큰을 ~/.rerent/config.json 에 저장(RERENT_TOKEN 환경변수로도 됨) | — | | rerent whoami | 조직 · 사용자 · 역할 · 잔액/홀드/가용 크레딧 | GET /v1/account | | rerent tokens [list] | API 토큰 목록(접두·역할·만료) | GET /v1/tokens | | rerent tokens create --name N [--role admin\|member\|viewer] [--expires-days 90] | 토큰 발급(값은 지금 한 번만 출력) | POST /v1/tokens | | rerent tokens rm <id> | 토큰 회수 | DELETE /v1/tokens/{id} | | rerent members [list] | 조직 멤버와 역할 | GET /v1/members | | rerent members set <userId> --role owner\|admin\|member\|viewer | 멤버 역할 변경(소유자만) | PATCH /v1/members/{userId} | | rerent members rm <userId> | 멤버 제거 | DELETE /v1/members/{userId} | | rerent invites create --email E [--role admin\|member\|viewer] | 초대 링크 발급(메일로도 전송) | POST /v1/invites | | rerent users [list] | 조직 사용자(members 와 같은 데이터 · resource_path 포함) | GET /v1/users | | rerent users get <id\|email> | 사용자 한 명 | GET /v1/users/{id} | | rerent ssh-keys [list] | 조직 SSH 공개키(돌고 있는 인스턴스에 즉시 반영) | GET /v1/ssh-keys | | rerent ssh-keys add --name N --file ~/.ssh/id_ed25519.pub | 공개키 등록(--key "ssh-ed25519 AAAA…" 로 직접도 됨) | POST /v1/ssh-keys | | rerent ssh-keys rm <id> | 공개키 삭제 | DELETE /v1/ssh-keys/{id} | | rerent limits | 내 한도와 사용량(노드·시간 총량 · 개수 한도) | GET /v1/limits |

마켓 조회(공개 · 토큰 없이 가능)

가격은 「노드·시간당 원(₩)」이에요. 시각은 분 단위 epoch 초(60의 배수)로 맞춰져요.

| 명령 | 하는 일 | API | |---|---|---| | rerent skus [--all] | 거래 중인 SKU(--all 이면 중단 포함) | GET /v1/skus | | rerent sku <id\|alias> | SKU 상세 | GET /v1/skus/{id} | | rerent availability [--sku S] [--start now] [--duration 24h] | 살 수 있는 노드 수 스케줄(가격 무관) — SKU 하나 또는 전부 | GET /v1/skus/availabilityGET /v1/skus/{id}/availability | | rerent market | SKU 별 최저 매도 호가 · 가능 노드 · 24시간 체결 | GET /v1/orderbook/summary | | rerent windows --sku S [--start now] [--duration 7d] | 열린 주문이 있는 시간 창과 최우선 매수/매도 | GET /v1/orderbook/windows | | rerent quote --sku S --start <t> --duration <d> | 한 시간 창의 톱오브북(최고 매수·최저 매도·스프레드) | GET /v1/orderbook/quote | | rerent depth --sku S --start <t> --duration <d> [--depth 20] | 가격 레벨별 매도·매수 노드 수 | GET /v1/orderbook/depth | | rerent fills [--sku S] [--start <t> --duration <d>] [--limit 50] | 체결 내역(익명 · 가격 발견용) | GET /v1/orderbook/fills |

사기·팔기 — 주문

주문은 「SKU × 시간 창 × 노드 수 × 지정가」예요. 매수는 --max-rate(상한), 매도는 --min-rate(하한). 즉시 체결 안 되는 나머지는 기본으로 취소되고, --allow-standing 을 주면 호가에 남아요. --estimate 는 체결 없이 견적만.

| 명령 | 하는 일 | API | |---|---|---| | rerent orders create --side buy\|sell --pool P --sku S --start <t> --duration <d> --nodes N --max-rate\|--min-rate ₩ [--allow-standing] [--allow-partial] [--memo M] [--tag k=v] [--idempotency-key K] [--estimate] | 매수·매도 주문(또는 견적) | POST /v1/ordersPOST /v1/orders/estimate | | rerent orders [list] [--side buy\|sell] [--state standing\|filled\|…] [--pool P] [--deployment D] [--managed 0] [--tag k=v] | 내 주문(--managed 0 이면 자동 매수 주문 제외) | GET /v1/orders | | rerent orders get <id> | 주문 상세와 체결(fills) | GET /v1/orders/{id} | | rerent orders cancel <id> | 남은(미체결) 부분 취소 — 이미 체결된 시간은 그대로 | POST /v1/orders/{id}/cancelDELETE /v1/orders/{id}/cancel |

  • orders create — orders create 는 자동으로 Idempotency-Key 를 붙여서 네트워크 오류 뒤 같은 명령을 다시 실행해도 중복 주문이 나지 않아요(--idempotency-key 로 직접 지정 가능). 매수 주문이 한도를 넘으면 403 limit_exceeded 로 주문 없이 거절돼요.

내 컴퓨트 — 풀

산 시간은 풀에 쌓여요(기본 풀 default). 풀 단위로 인스턴스를 띄우고, 남는 시간은 풀에서 다시 팔아요. 풀 간 전송(transfers)으로 시간을 옮길 수도 있어요.

| 명령 | 하는 일 | API | |---|---|---| | rerent pools [list] [--workspace W] [--tag k=v] | 풀 목록과 남은 노드·시간 | GET /v1/pools | | rerent pools create --name N [--workspace W] [--tag k=v] | 풀 만들기 | POST /v1/pools | | rerent pools set <id\|name> [--name N] [--workspace W] [--tag k=v,…] | 이름 변경 · 워크스페이스 이동 · 태그 교체 | PATCH /v1/pools/{id} | | rerent pools launch <id\|name> --image I [--mode ssh\|custom] [--command C] [--startup-script FILE] [--env K=V,…] [--ports 8000,8888] [--priority 1-4] \| --off | 자동 시작 템플릿 — 이 풀에 시간이 배정되면 인스턴스가 자동으로 뜸(--off 로 해제) | PATCH /v1/pools/{id} | | rerent pools rm <id\|name> | 풀 삭제(열린 주문·남은 할당이 없을 때만) | DELETE /v1/pools/{id} | | rerent pools sellable <id\|name> --sku S | 이 풀에서 지금 팔 수 있는 시간 스케줄 | GET /v1/pools/{id}/sellable | | rerent pools extend <id\|name> --sku S --duration <d>\|--end <t> --max-rate ₩ [--allow-standing] [--estimate] | 보유 스케줄의 끝을 같은 노드 수로 연장 매수 | POST /v1/pools/{id}/extend | | rerent pool <id\|name> | 풀 하나의 SKU 별 보유 스케줄 | GET /v1/pools/{id} | | rerent transfers [list] | 풀 간 시간 전송 기록 | GET /v1/pools/transfers | | rerent transfers create --from P --to P --sku S --start <t> --duration <d>\|--end <t> --nodes N | 보유 시간을 다른 풀로 옮김 | POST /v1/pools/transfers | | rerent transfers get <id> | 전송 하나 | GET /v1/pools/transfers/{id} | | rerent realized | 실현 할인 — 산 값 대비 재판매로 회수한 금액 · 공급자 매출 | GET /v1/stats/realized |

인스턴스 — 산 시간 위에서 컨테이너 돌리기

인스턴스는 풀에 배정된 노드 위에서 도는 컨테이너예요. 노드가 비어 있으면 1분 안에 시작하고, 배정이 없으면 「대기」로 남아 배정되는 순간 떠요. ssh 모드는 SSH 서버가 든 컨테이너(조직 SSH 키 자동 주입), custom 은 지정한 명령만 실행해요.

| 명령 | 하는 일 | API | |---|---|---| | rerent nodes | 내게 배정된 노드(현재·예정) · 온라인 여부 · 그 위의 인스턴스와 ssh 명령 | GET /v1/nodes | | rerent instances [list] [--all] [--pool P] [--deployment D] [--workspace W] [--tag k=v] | 내 인스턴스(--all 이면 종료된 것 포함) | GET /v1/instances | | rerent instances create --pool P [--sku S] [--template T] [--image I] [--mode ssh\|custom] [--command C] [--startup-script FILE] [--env K=V,…] [--ports 8000,8888] [--priority 1-4\|--level yield\|normal\|preferred\|critical] [--allow-cidrs 1.2.3.0/24] [--tag k=v] [--count N] [--name NAME] | 인스턴스 생성(템플릿 + 덮어쓰기 가능 · --count 로 여러 개) | POST /v1/instances | | rerent instances get <id> | 인스턴스 상세(이미지·노드·배정·SSH) | GET /v1/instances/{id} | | rerent instances set <id> \| --ids a,b,c [--name N] [--priority 1-4\|--level L] [--tag k=v,…] | 이름·우선순위·태그 변경(--ids 로 여러 개 한 번에 · 전부 성공 아니면 전부 실패) | PATCH /v1/instances/{id}PATCH /v1/instances | | rerent instances ssh <id> | 접속 정보(ssh 명령 · host · port · 허용 대역 · 등록 키) | GET /v1/instances/{id}/ssh | | rerent instances logs <id> [--tail 300] | 컨테이너 로그 | GET /v1/instances/{id}/logs | | rerent instances exec <id> -- <cmd…> | 명령 한 번 실행(≤50초) · 출력 반환 | POST /v1/instances/{id}/exec | | rerent instances replace <id> | 종료 + 같은 설정으로 새 인스턴스 대기열(이미지 재pull · 노드 교체) | POST /v1/instances/{id}/replace | | rerent instances rm <id> | 인스턴스 종료(산 시간은 남음 · 배포 관리면 1분 안에 다시 채워짐) | DELETE /v1/instances/{id} | | rerent instances presets | 공개 이미지 프리셋(pytorch·cuda 등)과 기본값 | GET /v1/instances/presets | | rerent templates [list] [--workspace W] [--tag k=v] | 인스턴스 템플릿(재사용 설정 · 불변) | GET /v1/instance-templates | | rerent templates get <id\|name> | 템플릿 하나(전체 설정 JSON) | GET /v1/instance-templates/{id} | | rerent templates create --name N --image I [--mode ssh\|custom] [--command C] [--startup-script FILE] [--env K=V,…] [--ports 8000] [--priority 1-4] [--allow-cidrs 1.2.3.0/24,…] [--tag k=v] [--workspace W] [--description D] | 템플릿 만들기(--image 에 이미지 카탈로그 이름도 됨 · 응답에 env 는 값 없이 키만 env_keys) | POST /v1/instance-templates | | rerent templates set <id\|name> [--tag k=v,…] [--description D] | 태그·설명만 변경(그 밖은 불변 → 새 이름으로 다시 만들기) | PATCH /v1/instance-templates/{id} | | rerent templates rm <id\|name> | 삭제(배포·살아 있는 인스턴스가 쓰면 409) | DELETE /v1/instance-templates/{id} | | rerent images [list] [--workspace W] [--tag k=v] [--status active\|revoked] | 이미지 카탈로그(내 것 + 공개 프리셋) | GET /v1/images | | rerent images get <id\|name> | 이미지 하나(자격증명은 절대 안 나옴) | GET /v1/images/{id} | | rerent images create --name N --image-ref REF [--registry ghcr.io --username U --password P] [--tag k=v] [--workspace W] [--description D] | 이미지 등록(비공개 레지스트리 자격증명은 pull 에만 쓰이고 응답에 안 나옴 · 비밀번호는 RERENT_REGISTRY_PASSWORD 환경변수로도) | POST /v1/images | | rerent images set <id\|name> [--tag k=v,…] [--description D] [--username U --password P \| --no-auth] | 태그·설명·자격증명 교체 | PATCH /v1/images/{id} | | rerent images revoke\|reinstate <id\|name> | 회수(새 인스턴스에 못 씀 · 돌던 것은 그대로) / 복구 | POST /v1/images/{id}/revokePOST /v1/images/{id}/reinstate | | rerent images rm <id\|name> | 삭제(살아 있는 인스턴스·템플릿이 쓰면 409) | DELETE /v1/images/{id} |

  • instances create — 우선순위는 같은 풀에 노드가 모자랄 때 누가 먼저 노드를 받는지(4=critical 이 먼저). --allow-cidrs 는 SSH 접속을 허용할 IPv4 대역이고 컨테이너 sshd 규칙으로 실제 적용돼요(노출 포트에는 적용되지 않음).

자동 매수 · 배포(deployments)

배포는 「이 SKU 노드 N대를 항상 유지」하는 자동화예요. spot(기본)은 확보 기간(앞으로 H시간) 안의 빈 구간을 상한가 이하 매물에서 매 분 즉시 사고, 템플릿이 있으면 산 노드에 인스턴스를 목표 수만큼 유지해요. generic 은 매수 없이 이미 산 시간 위에서 인스턴스 수만 맞춰요(템플릿 필수). 풀×SKU 마다 배포는 하나.

| 명령 | 하는 일 | API | |---|---|---| | rerent deployments [list] [--pool P] [--kind spot\|generic] [--workspace W] [--tag k=v] | 배포 목록 · 인스턴스 현황 · 상태 메시지 | GET /v1/deployments | | rerent deployments get <id\|name> | 배포 상세(확보율 · 다음 빈 구간 · 쓴 돈 · 마지막 오류) | GET /v1/deployments/{id} | | rerent deployments create --pool P --sku S --target N [--kind spot\|generic] [--max-rate ₩] [--horizon 6] [--min-runtime 60m] [--template T] [--name-template "w-{{nanoid(8)}}"] [--name NAME] [--tag k=v] | 배포 만들기(spot 은 --max-rate 필수 · generic 은 --template 필수) | POST /v1/deployments | | rerent deployments set <id\|name> [--target N] [--enabled true\|false] [--max-rate ₩] [--horizon H] [--min-runtime 60m] [--template T] [--name N] [--tag k=v,…] | 목표 수·정지/재개·상한가·템플릿 변경(정지는 대기 인스턴스만 내리고 도는 것은 유지) | PATCH /v1/deployments/{id} | | rerent deployments run <id\|name> | (spot) 지금 한 번 매수 시도 — 꺼져 있어도 | POST /v1/deployments/{id}/run | | rerent deployments rm <id\|name> | 배포 삭제(generic 은 관리 인스턴스 종료 · spot 은 도는 것은 두고 더 사지 않음) | DELETE /v1/deployments/{id} |

  • deployments create — --horizon 은 지금부터 몇 시간 앞까지 항상 확보해 둘지(1~168), --min-runtime 은 한 번에 사는 최소 길이(1분짜리 조각 매수 방지 · 시간 단위로 올림 1~24h → 응답 min_runtime_minutes/block_hours). 인스턴스 이름 템플릿은 {{nanoid(n)}} 이 필수.

워크스페이스

조직 안에서 풀·템플릿·이미지를 묶는 단위예요. 목록 명령의 --workspace W 필터가 이걸 써요. 자원 경로 rerent:pool:<조직>:<워크스페이스>:<이름> 을 id 자리에 써도 돼요.

| 명령 | 하는 일 | API | |---|---|---| | rerent workspaces [list] | 워크스페이스와 안의 자원 수 | GET /v1/workspaces | | rerent workspaces get <id\|name> | 하나 | GET /v1/workspaces/{id} | | rerent workspaces create --name N [--description D] | 만들기 | POST /v1/workspaces | | rerent workspaces set <id\|name> [--name N] [--description D] | 이름·설명 변경 | PATCH /v1/workspaces/{id} | | rerent workspaces rm <id\|name> | 삭제(풀·템플릿·이미지가 남아 있으면 409) | DELETE /v1/workspaces/{id} |

크레딧 — 충전·출금·원장

모든 매수는 선충전 크레딧(₩)에서 나가고, 매도 대금은 수수료를 뺀 순액이 크레딧으로 들어와요. 충전은 요청 뒤 운영자가 입금을 확인하면 반영돼요.

| 명령 | 하는 일 | API | |---|---|---| | rerent credits ledger [--limit 100] | 원장(입출금·매수·매도·수수료 한 줄씩 · 잔액 추이) | GET /v1/credits/ledger | | rerent credits topups [list] | 충전 요청 목록(입금 계좌 안내 포함) | GET /v1/credits/topups | | rerent credits topup --amount ₩ [--memo M] | 충전 요청(최소 ₩10,000 · 입금 확인 뒤 반영) | POST /v1/credits/topups | | rerent credits payouts [list] | 출금 요청 목록 | GET /v1/credits/payouts | | rerent credits payout --amount ₩ --bank "은행 계좌번호 예금주" | 출금 요청(소유자만 · 최소 ₩10,000) | POST /v1/credits/payouts |

이벤트 · 웹훅

조직에서 일어난 일(체결·인스턴스 상태·배포·노드·충전 등 18종)이 이벤트로 남고, 웹훅으로 내 서버에 POST 돼요(HMAC-SHA256 서명 · 5회 재시도). 폴링 대신 events 를, 실시간이 필요하면 웹훅을 쓰세요.

| 명령 | 하는 일 | API | |---|---|---| | rerent events types | 이벤트 종류 카탈로그 | GET /v1/events | | rerent events [--type T] [--object <id>] [--limit 50] [--after evt_…] | 활동 기록(최근순 · 커서) | GET /v1/events | | rerent webhooks [list] | 웹훅 목록 · 실패 수 · 마지막 응답 | GET /v1/webhooks | | rerent webhooks get <id> | 하나(마지막 오류 포함) | GET /v1/webhooks/{id} | | rerent webhooks create --url https://… [--events order.filled,instance.running] [--description D] | 웹훅 등록(서명 비밀은 지금 한 번만 출력) | POST /v1/webhooks | | rerent webhooks set <id> [--url U] [--events a,b] [--enabled true\|false] [--description D] | 주소·이벤트·켬/꺼짐 변경 | PATCH /v1/webhooks/{id} | | rerent webhooks test <id> | webhook.test 이벤트를 바로 보내고 결과 확인 | POST /v1/webhooks/{id}/test | | rerent webhooks deliveries <id> [--limit 20] | 배달 기록(상태 · 시도 · 오류 · 다음 재시도) | GET /v1/webhooks/{id}/deliveries | | rerent webhooks rm <id> | 삭제 | DELETE /v1/webhooks/{id} |

공급자 — 내 GPU 팔기(클러스터)

공급자는 클러스터(같은 SKU 의 노드 묶음)를 등록하고 각 노드에서 설치 명령 한 줄을 실행하면 끝이에요. 자동 매도(auto_sell)를 켜면 빈 시간을 정한 가격으로 계속 내놓고, 시간이 가까워질수록 하한가까지 내려가요.

| 명령 | 하는 일 | API | |---|---|---| | rerent clusters [list] | 내 클러스터 · 온라인 노드 · 자동 매도 · 매출 | GET /v1/clusters | | rerent clusters get <id> | 클러스터 상세(노드별 상태 · GPU · 설치 여부) | GET /v1/clusters/{id} | | rerent clusters create --name N --sku S --nodes host1,host2 [--from now] [--until "in 30d"] [--auto-sell --price ₩ --floor ₩ --keep-nodes 0] [--tag k=v] | 클러스터 등록 → 노드별 설치 명령(curl 한 줄 · 24시간 유효 · 지금 한 번만) | POST /v1/clusters | | rerent clusters set <id> [--name N] [--until <t>] [--auto-sell on\|off] [--price ₩] [--floor ₩] [--keep-nodes N] [--tag k=v,…] | 이름 · 공급 종료 시각 · 자동 매도 켬/끔·가격 · 태그 | PATCH /v1/clusters/{id} | | rerent clusters rm <id> | 클러스터 제거(팔린 시간에 인스턴스가 돌고 있으면 409) | DELETE /v1/clusters/{id} | | rerent clusters nodes add <id> --nodes host3,host4 \| rm <id> <nodeId> \| install <id> <nodeId> | 노드 추가(설치 명령 발급) · 제거 · 설치 명령 다시 받기(재설치·토큰 재발급) | POST /v1/clusters/{id}/nodesDELETE /v1/clusters/{id}/nodes/{nodeId}POST /v1/clusters/{id}/nodes/{nodeId}/install | | rerent clusters assignments <id> | 노드별 배정(누가 언제 쓰는지 · 구매자는 익명 꼬리표) | GET /v1/clusters/{id}/assignments |

그 밖에

| 명령 | 하는 일 | API | |---|---|---| | rerent api <GET\|POST\|PATCH\|DELETE> </v1/경로?쿼리> [--data '{"json":…}'] [--data-file body.json] | REST 엔드포인트를 직접 호출(CLI 에 없는 조합이나 새 필드용 · 응답 JSON 그대로) | 전부 | | rerent manual [--section <group>] | 이 설명서 전체(마크다운) — 코딩 에이전트는 이걸 먼저 읽으세요 | — | | rerent help [명령] | 짧은 도움말(명령을 주면 그 묶음의 설명서) | — | | rerent --version | CLI 버전 | — |


버전 0.3.0 · 이 README 는 CLI 의 rerent manual 출력에서 생성돼요 — 설치한 CLI 에서 같은 내용을 rerent manual 로 볼 수 있어요. REST API 전체는 https://rerent.ai/docs/api · 이벤트·웹훅은 https://rerent.ai/docs/events.