임의의 AI 제품(GitHub 레포 또는 라이브 사이트)을 로컬로 복제하고, 모든 paid API 호출을 사용자의 설치된 CLI(Claude Code, Codex, Gemini)나 로그인된 브라우저 세션으로 교체하는 스킬.
작성자
cskwork
라이선스
원본 레포 참조
트리거
clone X and make it use my CLIs / personalize this AI app / OAuth-replace this app / GitHub URL + CLI substitution
#skill#claude-code#codex#gemini#oauth#personalize
핵심 아이디어
서드파티 AI 제품을 로컬에서 돌리되, 모든 paid API 호출(OpenAI, Anthropic, Google AI Studio, Replicate, ElevenLabs 등)을 사용자가 이미 로그인/구독 중인 CLI(claude, codex, gemini)로 교체한다. 결과물은 API 키 없이 돌아간다.
두 가지 입력 모드:
Repo mode — Git 레포 URL → git clone 후 AI 콜 재배선
Site-clone mode — 라이브 사이트만 있을 때 → UX/기능을 역설계해서 로컬로 재구현
---name: clone-personalizedescription: Clone an AI product (GitHub repo or live site) into a local workspace and personalize every paid/API-keyed AI backend so it runs on the user's installed CLIs (Claude Code, Codex, Gemini) and logged-in browser sessions instead. Use when the user says "clone X and make it use my CLIs", "personalize this AI app to my accounts", "OAuth-replace this app", or gives a GitHub/site URL plus a list of CLI substitutions.argument-hint: "<source-url> [--site-clone] [--map chat=claude,image=codex,video=gemini-omni] [--out <dir>]"level: 3---<Purpose>Take any third-party AI product and produce a locally-running, personally-authenticated fork of it. Two source modes:1. **Repo mode** (default) — source is a Git repository. Clone it, then rewire its AI calls.2. **Site-clone mode** — source is only a live website (no public source). Reverse-engineer the UX/functionality from the live site and re-implement it locally end-to-end.In both modes, every paid AI API call (OpenAI, Anthropic, Google AI Studio, Replicate, third-party SaaS) is replaced with one of the user's installed CLIs or a browser-session bridge. The result runs without API keys.</Purpose><Use_When>- User gives a GitHub URL + a personalization spec ("make it use Gemini for X, Codex for Y, Claude Code for Z")- User gives only a live site URL and wants a local clone with full functionality- User wants to strip API-key dependencies from an AI app and route through CLI/browser instead- User says "personalize", "OAuth-replace", "make it use my logged-in account"</Use_When><Do_Not_Use_When>- Source is a non-AI app — just use `git clone` directly- User wants to use their own API keys (no personalization needed)- Target requires a paid CLI the user does not have installed (verify first)- A skill purpose-built for that specific product already exists</Do_Not_Use_When><Contract>- **Never invent CLI commands** — verify `claude --help`, `codex --help`, `gemini --help` (or `which`) before mapping. If a CLI is missing, report it and ask before substituting.- **Never hardcode secrets** — the whole point is to remove them. If the original needs an API key, the rewrite must remove the env var read, not paper over it.- **Preserve original UX** — the user wants the same product, just on their accounts. Do not redesign UI or rename features.- **Document every substitution** in `PERSONALIZATION.md` at the workspace root: original call site → CLI replacement → invocation contract.- **Failure mode for site-clone**: if a feature cannot be reverse-engineered with confidence, list it as a known gap rather than silently dropping it.</Contract><Workflow>**Step 0 — Verify installed CLIs.** `which claude codex gemini`, capture versions. If missing, stop and ask.**Step 1 — Resolve source.** Repo URL → `git clone` into `--out`. Site URL only → fetch landing + primary routes, extract stack hints / feature inventory / data flow.**Step 2 — Inventory AI call sites.** Grep for vendor SDKs (`openai`, `anthropic`, `@google/generative-ai`, `replicate`, `runwayml`, `elevenlabs`, `fal-ai`, `stability`, `cohere`, raw `fetch('https://api.*')`). Build a file:line → vendor → capability → IO-shape table.**Step 3 — Plan substitutions.** Write to `PERSONALIZATION.md` BEFORE editing.**Step 4 — Build CLI-bridge layer.** `lib/ai-cli/{claude,codex,gemini}.{ts,py}`. Each adapter spawns the CLI as subprocess, streams IO, normalizes output to the SDK's original shape.**Step 5 — Rewire call sites.** Replace SDK imports with bridge adapters. Keep signatures stable. Remove vendor env vars from `.env.example`.**Step 6 — Site-clone reconstruction (site mode only).** Scaffold same framework, recreate routes, wire bridges. Behavioral parity, not pixel parity (unless asked).**Step 7 — Verify locally.** Run dev command, exercise each substituted capability once, record in `PERSONALIZATION.md` → Verification.**Step 8 — Report.** Workspace path, substitution table, verified capabilities, known gaps, how to run.</Workflow><Required_Artifacts>- `PERSONALIZATION.md` (substitution plan, capability map, verification log, gaps)- `lib/ai-cli/` adapter modules- `.env.example` pruned- Original source preserved in git history</Required_Artifacts>
## 핵심 아이디어
서드파티 AI 제품을 로컬에서 돌리되, 모든 paid API 호출(OpenAI, Anthropic, Google AI Studio, Replicate, ElevenLabs 등)을 사용자가 이미 로그인/구독 중인 CLI(`claude`, `codex`, `gemini`)로 교체한다. 결과물은 **API 키 없이** 돌아간다.
두 가지 입력 모드:
- **Repo mode** — Git 레포 URL → `git clone` 후 AI 콜 재배선
- **Site-clone mode** — 라이브 사이트만 있을 때 → UX/기능을 역설계해서 로컬로 재구현
## 능력 라우팅 기본 표
| Capability | 기본 CLI | 이유 |
|---|---|---|
| Chat / 추론 | `claude` (Claude Code) | 가장 강한 reasoning, 세션 호스트 |
| Code 생성 | `codex` (Codex CLI) | 코드 특화, 별도 quota |
| Image 생성 | `codex` (image mode) 또는 브라우저 브릿지 | |
| Video 생성 | `gemini` (Gemini Omni) | 멀티모달 출력 |
| Audio / TTS / STT | `gemini` 또는 브라우저 브릿지 | |
| Web search / grounding | `gemini` (내장 grounding) | |
| Embeddings | local model 또는 `gemini` | paid embedding API 회피 |
| OAuth-gated SaaS (Drive, Notion, Slack) | `mcp__claude-in-chrome__*` | 로그인 브라우저 재사용 |
## 워크플로우 8단계 요약
1. 설치된 CLI 검증 (`which claude codex gemini`)
2. 소스 해결 (clone 또는 site 추출)
3. AI 콜 사이트 인벤토리 (SDK import grep)
4. 치환 계획을 `PERSONALIZATION.md`에 먼저 기록
5. `lib/ai-cli/` 어댑터 레이어 구축 (`claude.ts`, `codex.ts`, `gemini.ts`)
6. 콜 사이트 재배선 + `.env.example`에서 vendor 키 제거
7. (site 모드) UX 재구성
8. 로컬에서 각 능력 1회씩 검증, 결과를 `PERSONALIZATION.md`에 기록
## 절대 하지 말 것
- CLI 명령어 가공 (`--help`로 먼저 검증)
- 시크릿 하드코딩 (스킬의 존재 이유와 정반대)
- 원본 UX 재디자인 (능력 치환만 수행)
- 사이트 모드에서 재구성 불가능한 기능을 조용히 드롭
## 전체 SKILL.md (복사용)
````markdown
---
name: clone-personalize
description: Clone an AI product (GitHub repo or live site) into a local workspace and personalize every paid/API-keyed AI backend so it runs on the user's installed CLIs (Claude Code, Codex, Gemini) and logged-in browser sessions instead. Use when the user says "clone X and make it use my CLIs", "personalize this AI app to my accounts", "OAuth-replace this app", or gives a GitHub/site URL plus a list of CLI substitutions.
argument-hint: "<source-url> [--site-clone] [--map chat=claude,image=codex,video=gemini-omni] [--out <dir>]"
level: 3
---
<Purpose>
Take any third-party AI product and produce a locally-running, personally-authenticated fork of it. Two source modes:
1. **Repo mode** (default) — source is a Git repository. Clone it, then rewire its AI calls.
2. **Site-clone mode** — source is only a live website (no public source). Reverse-engineer the UX/functionality from the live site and re-implement it locally end-to-end.
In both modes, every paid AI API call (OpenAI, Anthropic, Google AI Studio, Replicate, third-party SaaS) is replaced with one of the user's installed CLIs or a browser-session bridge. The result runs without API keys.
</Purpose>
<Use_When>
- User gives a GitHub URL + a personalization spec ("make it use Gemini for X, Codex for Y, Claude Code for Z")
- User gives only a live site URL and wants a local clone with full functionality
- User wants to strip API-key dependencies from an AI app and route through CLI/browser instead
- User says "personalize", "OAuth-replace", "make it use my logged-in account"
</Use_When>
<Do_Not_Use_When>
- Source is a non-AI app — just use `git clone` directly
- User wants to use their own API keys (no personalization needed)
- Target requires a paid CLI the user does not have installed (verify first)
- A skill purpose-built for that specific product already exists
</Do_Not_Use_When>
<Contract>
- **Never invent CLI commands** — verify `claude --help`, `codex --help`, `gemini --help` (or `which`) before mapping. If a CLI is missing, report it and ask before substituting.
- **Never hardcode secrets** — the whole point is to remove them. If the original needs an API key, the rewrite must remove the env var read, not paper over it.
- **Preserve original UX** — the user wants the same product, just on their accounts. Do not redesign UI or rename features.
- **Document every substitution** in `PERSONALIZATION.md` at the workspace root: original call site → CLI replacement → invocation contract.
- **Failure mode for site-clone**: if a feature cannot be reverse-engineered with confidence, list it as a known gap rather than silently dropping it.
</Contract>
<Workflow>
**Step 0 — Verify installed CLIs.** `which claude codex gemini`, capture versions. If missing, stop and ask.
**Step 1 — Resolve source.** Repo URL → `git clone` into `--out`. Site URL only → fetch landing + primary routes, extract stack hints / feature inventory / data flow.
**Step 2 — Inventory AI call sites.** Grep for vendor SDKs (`openai`, `anthropic`, `@google/generative-ai`, `replicate`, `runwayml`, `elevenlabs`, `fal-ai`, `stability`, `cohere`, raw `fetch('https://api.*')`). Build a file:line → vendor → capability → IO-shape table.
**Step 3 — Plan substitutions.** Write to `PERSONALIZATION.md` BEFORE editing.
**Step 4 — Build CLI-bridge layer.** `lib/ai-cli/{claude,codex,gemini}.{ts,py}`. Each adapter spawns the CLI as subprocess, streams IO, normalizes output to the SDK's original shape.
**Step 5 — Rewire call sites.** Replace SDK imports with bridge adapters. Keep signatures stable. Remove vendor env vars from `.env.example`.
**Step 6 — Site-clone reconstruction (site mode only).** Scaffold same framework, recreate routes, wire bridges. Behavioral parity, not pixel parity (unless asked).
**Step 7 — Verify locally.** Run dev command, exercise each substituted capability once, record in `PERSONALIZATION.md` → Verification.
**Step 8 — Report.** Workspace path, substitution table, verified capabilities, known gaps, how to run.
</Workflow>
<Required_Artifacts>
- `PERSONALIZATION.md` (substitution plan, capability map, verification log, gaps)
- `lib/ai-cli/` adapter modules
- `.env.example` pruned
- Original source preserved in git history
</Required_Artifacts>
````