name: openclone
description: Create, manage, or talk to an openclone "clone" — a named AI persona with one or more categories (vc, tech, founder, expert, influencer, politician, celebrity) and attached knowledge. Triggers on phrases like "create a clone", "make a persona", "talk as <name>", "switch to <name>", "feed knowledge to", "ingest url for <clone>", "update <name> with latest info", "<name> 클론 최신 정보로 업데이트", "ask all VCs", "stop being <name>", or any mention of /openclone. Renders the home panel with no args; name/number activates a clone; sub-actions stop, new, ingest, update, room, panel.
argument-hint: [name | N | stop | new | ingest | update | room | panel <category> "<q>"]
allowed-tools: Bash, Read, Write, Glob, WebFetch, WebSearch
openclone의 단일 진입점. 유저가 /openclone <args>로 직접 호출했거나 자연어("alice로 전환", "새 클론 만들어" 등)로 의도를 밝힌 경우 모두 이 스킬이 처리합니다.
두 출처의 클론
- 빌트인 클론 —
${CLAUDE_SKILL_DIR}/clones/<name>/(읽기 전용, 저장소와 함께 배포).persona.md는 항상 존재하고knowledge/는 활성화 시점에 sparse-checkout으로 가져옵니다. - 유저 클론 —
~/.openclone/clones/<name>/(쓰기 가능). 이름 충돌 시 유저 클론이 빌트인을 가립니다 (shadow).
상태 파일 (모두 ~/.openclone/ 밑):
active-clone— 현재 활성 클론 이름 (없으면 = 활성 없음)room— 방 멤버 한 줄씩 (없거나 비어 있으면 = 방 없음)menu-context— 최근 홈 패널의숫자 → 이름JSON 매핑
모드 우선순위 (UserPromptSubmit 훅 기준)
~/.openclone/room이 비어있지 않으면 room 모드 — 모든 멤버 페르소나와 라우팅 규칙 주입, 턴당 가장 적절한 한두 명이 응답.~/.openclone/active-clone이 존재하면 single-clone 모드 — 그 클론이 매 턴 응답.- 둘 다 없으면 기본 Claude.
호출 맥락 해석
- 슬래시로 호출 (
/openclone <args>):$ARGUMENTS의 첫 토큰($1)을 읽어 아래 분기표대로 실행. - 자연어로 호출: 유저 메시지에서 의도를 뽑아 가장 적절한 서브 액션으로 라우팅. 가능하면 실제
/openclone <sub>형태의 명령을 보여주고 그 분기를 실행해서 유저가 무엇이 일어나는지 볼 수 있게 합니다.
이 스킬을 쓰지 말아야 할 때: 이미 활성 클론·방 안이라면 다음 메시지는 UserPromptSubmit 훅이 자동 처리합니다 — 매 턴 스킬을 재호출하지 마세요.
분기 규칙
| $1 | 동작 |
| --- | --- |
| (비어 있음) | 아래 홈 패널 섹션 |
| ^[0-9]+$ (숫자) | 아래 숫자 선택 섹션 |
| stop | 아래 stop 섹션 |
| new | 아래 new 섹션 |
| ingest | 아래 ingest 섹션 |
| update | 아래 update 섹션 |
| room | 아래 room 섹션 |
| panel | 아래 panel 섹션 |
| ^[a-z0-9][a-z0-9-]*$ | 아래 use 섹션 (클론 이름으로 해석) |
| 그 외 | 한 줄로 "알 수 없는 서브명령" 안내 후 홈 패널 렌더 |
홈 패널
${CLAUDE_SKILL_DIR}/references/home-workflow.md 를 로드해 그대로 따르세요.
렌더가 끝나면 이 턴은 종료. 유저는 다음 메시지에서 번호/이름을 선택하거나 다른 서브명령을 호출합니다.
숫자 선택
~/.openclone/menu-context파일을 읽습니다. 없거나 JSON 파싱 실패면 "이 번호와 연결된 최근 홈 패널이 없어요./openclone로 홈을 다시 열어주세요." 안내 후 중단.items에서n == $1인 엔트리를 찾습니다. 없으면 "그 번호는 현재 목록에 없어요." 안내 후 중단.- 그 엔트리의
name을<resolved>로 두고 아래 use 섹션을<resolved>로 진행. - use 성공 후
~/.openclone/menu-context를 삭제합니다 (rm -f ~/.openclone/menu-context).
use
입력: 클론 이름 <name> (= $1 또는 숫자 해석 결과).
-
클론 존재 확인. 우선순위:
~/.openclone/clones/<name>/persona.md→ origin = user${CLAUDE_SKILL_DIR}/clones/<name>/persona.md→ origin = built-in
둘 다 없으면 한 줄 안내 후 중단:
<name>클론을 찾을 수 없어요./openclone로 목록을 확인하거나/openclone new <name>으로 새로 만들어 주세요. -
built-in이면 지식 lazy-fetch (user clone은 skip):
bash "${CLAUDE_SKILL_DIR}/scripts/fetch-clone-knowledge.sh" "<name>" -
active-clone 기록:
mkdir -p ~/.openclone printf '%s' "<name>" > ~/.openclone/active-clone -
persona.mdfrontmatter를 간단히 읽어display_name,primary_category(없으면categories[0]),categories확인. 한두 줄로 확인 메시지:활성 클론: {display_name} ({primary_category} 렌즈, categories: {categories}, origin: {user | built-in}). 다음 메시지부터 이 클론으로 응답해요.
/openclone stop으로 해제.origin이
built-in이면 한 줄 덧붙임:이 클론은 내장형이어서 읽기 전용입니다. 수정하려면 먼저
~/.openclone/clones/<name>/로 폴더를 복사하세요. -
이 커맨드 응답에서 클론을 연기하지 마세요 — 페르소나 주입은 훅이 다음 턴부터 담당합니다.
stop
-
~/.openclone/active-clone,~/.openclone/room,~/.openclone/menu-context상태 확인. 셋 다 없으면 한 줄 안내 후 중단:활성 클론도, 열린 방도 없어요.
-
존재하는 것만 제거:
rm -f ~/.openclone/active-clone ~/.openclone/room ~/.openclone/menu-context -
어느 상태가 정리됐는지 한 줄로 보고. 예:
활성 클론(douglas)과 방(douglas, alice)을 모두 종료했어요. 다음 메시지부터 기본 Claude가 응답.
new
입력 처리:
$2가 비어 있으면/openclone new <name>사용법 안내 후 중단.$2를 슬러그 검증:^[a-z0-9][a-z0-9-]*$. 실패 시 소문자 슬러그로 다시 요청.- 이름 충돌 체크:
~/.openclone/clones/$2/persona.md이미 존재 → 취소/다른 이름/덮어쓰기 중 택1 요청.${CLAUDE_SKILL_DIR}/clones/$2/persona.md존재 → 사용자 클론이 내장을 가린다고 경고 후 진행/이름 변경/취소 택1 요청.
실행:
-
${CLAUDE_SKILL_DIR}/references/interview-workflow.md를 로드해 정확히 따르세요. 이 워크플로는 먼저 Chrome MCP preflight를 돌리고, 타겟이 실제 인물이면 Stage 0 자동 발굴(소셜 링크 검색 → Chrome MCP로 LinkedIn/Threads/X/Instagram 스크랩 → YouTube는scripts/fetch-youtube.sh로 자막 추출)로 페르소나·첫 지식 파일을 자동 작성합니다. 자동 발굴이 성공하면 문답 스테이지 1–5는 스킵, 유저에게 한 번만 확인받습니다. 실패하거나 공개 프레즌스가 없으면 기존 문답 모드로 fallback. -
카테고리는 최소 1개 필수 (vc, tech, founder, expert, influencer, politician, celebrity 중).
-
인터뷰 종료 시:
mkdir -p "$HOME/.openclone/clones/<name>/knowledge"~/.openclone/clones/<name>/persona.md를${CLAUDE_SKILL_DIR}/references/clone-schema.md형식대로 작성. 인터뷰 원문은~/.openclone/clones/<name>/knowledge/YYYY-MM-DD-interview.md에source_type: interview로 저장. -
한 줄 확인:
{display_name} 생성 완료 —
~/.openclone/clones/{name}/./openclone {name}으로 활성화.
이 단계에서 클론 연기는 하지 않음.
ingest
입력 처리:
-
~/.openclone/active-clone없거나 비었으면 "/openclone <name>으로 먼저 클론을 활성화해 주세요." 안내 후 중단. -
active-clone 이름으로 persona 경로 탐색:
~/.openclone/clones/<name>/persona.md→ user${CLAUDE_SKILL_DIR}/clones/<name>/persona.md→ built-in- 없음 → 안내 후 중단.
-
built-in이면 fork-on-write 먼저:
mkdir -p "$HOME/.openclone/clones" cp -R "${CLAUDE_SKILL_DIR}/clones/<name>" "$HOME/.openclone/clones/<name>"한 줄 안내:
내장 **<name>**을
~/.openclone/clones/<name>/로 포크했어요 (이제 사용자 사본이 내장을 가림). ingest 계속 진행. -
$2이후가 소스(URL, 경로, 또는 텍스트). 비어 있으면 요청.
실행:
- 소스 타입 판별:
https://www.youtube.com/|https://youtu.be/→ YouTube →${CLAUDE_SKILL_DIR}/scripts/fetch-youtube.sh <url>http://|https://→ URL → WebFetch (실패 시${CLAUDE_SKILL_DIR}/scripts/fetch-url.sh <url>)- 실제 파일 경로 (
.md|.txt|.pdf|.docx) → Read (PDF/DOCX은 Read 지원 범위 안에서) - 그 외 → 인자 자체가 raw 텍스트
${CLAUDE_SKILL_DIR}/references/refine-workflow.md를 로드해 그대로 따름 — 날짜+토픽별 파일을~/.openclone/clones/<name>/knowledge/에 append-only로 기록.- 한두 줄 확인:
**{display_name}**에 추가됨:
~/.openclone/clones/{name}/knowledge/. 토픽:YYYY-MM-DD-<topic>.
update
입력 처리:
-
대상 결정:
$2가 슬러그(^[a-z0-9][a-z0-9-]*$)면 그 이름으로.$2가 비어 있으면~/.openclone/active-clone읽기. 비었으면 안내 후 중단:먼저
/openclone <name>으로 클론을 활성화하거나/openclone update <name>으로 이름을 지정해 주세요.
-
persona 경로 탐색 (user → built-in). 없으면 안내 후 중단.
-
built-in이면 fork-on-write 먼저 (ingest와 동일):
mkdir -p "$HOME/.openclone/clones" cp -R "${CLAUDE_SKILL_DIR}/clones/<name>" "$HOME/.openclone/clones/<name>"한 줄 안내 후 진행.
실행:
${CLAUDE_SKILL_DIR}/references/update-workflow.md를 로드해 그대로 따르세요. 이 워크플로는 먼저 Chrome MCP preflight를 돌리고, 사용자 사본의 knowledge/ 최신 파일 날짜를 cutoff로 잡은 뒤 persona.md## Links의 각 URL을 Chrome MCP /scripts/fetch-youtube.sh로 수집, cutoff 이후 게시물만refine-workflow.md로 dated 파일에 append 합니다.- 자연어 호출("douglas 최신 정보로 업데이트해줘", "update kyunghun with the latest")도 같은 분기로 라우팅 — 유저에게는
/openclone update <name>을 보여주고 실행.
room
$2(서브 서브명령) 기준 분기:
| $2 | 동작 |
| --- | --- |
| (비어 있음) | 아래 room status |
| leave | 아래 room leave |
| add (이후 = $3) | 아래 room add |
| remove (이후 = $3) | 아래 room remove |
| 그 외 (= 클론 이름 첫 토큰, 이후 더 올 수 있음) | 아래 room start — $2 $3 … 전부를 새 멤버 리스트로 해석 |
room status
~/.openclone/room 읽기. 없거나 비었으면 "현재 열린 방이 없어요. /openclone room <이름1> <이름2> ...으로 시작하세요." 출력. 있으면 멤버 줄별로 표시.
room start
입력: 공백·콤마로 구분된 클론 이름들 (최소 1개, 최대 8개까지 허용. 그 이상은 앞 8개만 취하고 경고).
-
각 이름 검증 (슬러그 형식). 잘못된 이름이 있으면 그 항목 skip하고 경고.
-
각 이름에 대해 persona 존재 확인 (user → built-in 순). 없으면 skip + 경고.
-
built-in이 섞여 있으면 각각에 대해
fetch-clone-knowledge.sh호출. -
결과 이름들을
~/.openclone/room에 한 줄씩 기록 (기존 방 덮어쓰기). 한 명도 남지 않으면 파일 쓰지 않고 안내.mkdir -p ~/.openclone printf '%s\n' "alice" "bob" "charlie" > ~/.openclone/room -
확인:
방을 열었어요: alice, bob, charlie. 다음 메시지부터 가장 적절한 클론이 자동으로 응답.
세부 규칙은 ${CLAUDE_SKILL_DIR}/references/room-workflow.md 참조.
room add
~/.openclone/room있어야 함. 없으면 "먼저/openclone room <이름>으로 방을 시작하세요." 출력 후 중단.$3검증 + persona 존재 확인 + built-in이면 fetch.- 이미 방에 있으면 "<name>은 이미 멤버입니다." 출력 후 중단.
- 파일 끝에 한 줄 append (
printf '%s\n' "<name>" >> ~/.openclone/room). - 확인:
<name>을 방에 추가했어요. 현재 멤버: a, b, c, <name>.
room remove
~/.openclone/room있어야 함. 없으면 안내.$3이 방 멤버에 없으면 "그 이름은 방에 없어요." 출력 후 중단.- 그 이름 라인 제거 (새 파일 써서 대체). 결과가 빈 줄이면 파일 자체 삭제.
- 확인.
room leave
rm -f ~/.openclone/room
한 줄 확인. active-clone은 건드리지 않음 (유저가 명시적으로 /openclone stop을 쓰지 않는 한 이전 활성 클론은 유지).
panel
입력: $2 = 카테고리, 이후 = 질문.
$2가{vc, tech, founder, expert, influencer, politician, celebrity}중 하나인지 확인. 아니면 다음 안내 후 중단:카테고리는 vc, tech, founder, expert, influencer, politician, celebrity 중 하나. 예:
/openclone panel vc "내 SaaS 피봇 어때요?"$3이후를 합친 질문이 비어 있으면 사용법 안내 후 중단.${CLAUDE_SKILL_DIR}/references/panel-workflow.md와${CLAUDE_SKILL_DIR}/references/categories.md를 로드. 패널 워크플로를 category =$2, question = 나머지$ARGUMENTS로 정확히 실행.
공통 규칙
- 커맨드 응답 안에서 클론을 연기하지 않음. 활성화·새 클론·ingest·room 등은 시스템 수준 확인만. 페르소나 주입은 다음 턴부터 훅이 담당.
- 이모지 없음.
- 질문/응답 언어는 유저가 사용한 언어를 그대로 따라갑니다 (한국어면 한국어, 영어면 영어).
파일 레이아웃 참고
${CLAUDE_SKILL_DIR}/references/clone-schema.md— 클론 파일 포맷 (frontmatter + 섹션, 멀티 카테고리 규칙)${CLAUDE_SKILL_DIR}/references/categories.md— 고정 카테고리 7종 + 카테고리별 "항상 점검" 축${CLAUDE_SKILL_DIR}/references/home-workflow.md— 홈 패널 렌더 및 menu-context 기록${CLAUDE_SKILL_DIR}/references/interview-workflow.md—new인터뷰 진행·정리${CLAUDE_SKILL_DIR}/references/refine-workflow.md—ingest가 원본 소스를 토픽 파일로 정제${CLAUDE_SKILL_DIR}/references/update-workflow.md—update가 마지막 지식 일자 이후 소셜/유튜브 자료를 자동 수집${CLAUDE_SKILL_DIR}/references/panel-workflow.md— 카테고리 패널 다중 클론 출력${CLAUDE_SKILL_DIR}/references/room-workflow.md— 방 안 턴별 라우팅${CLAUDE_SKILL_DIR}/assets/clone-template.md— 수기 작성용 시작 템플릿
Priorisation de Tâches
Productivite
Priorise vos tâches avec les frameworks Eisenhower, ICE et RICE.
Generateur de Rapport Hebdomadaire
Productivite
Generez des rapports de statut hebdomadaires structures et concis.
Rapport de Daily Standup
Productivite
Génère des rapports de daily standup structurés et concis.