{"id":50412296,"url":"https://github.com/cskwork/cc-agent-call","last_synced_at":"2026-05-31T04:04:52.883Z","repository":{"id":360333232,"uuid":"1249679732","full_name":"cskwork/cc-agent-call","owner":"cskwork","description":"Cross-CLI delegation skills: Claude Code / Codex / agy / kiro-cli / NotebookLM. 5 skills, each fully tested.","archived":false,"fork":false,"pushed_at":"2026-05-26T01:25:54.000Z","size":76,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-26T02:27:03.840Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://cskwork.github.io/cc-agent-call/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cskwork.png","metadata":{"files":{"readme":"README.ko.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-26T00:24:13.000Z","updated_at":"2026-05-26T01:25:58.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/cskwork/cc-agent-call","commit_stats":null,"previous_names":["cskwork/cc-agent-call"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/cskwork/cc-agent-call","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cskwork%2Fcc-agent-call","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cskwork%2Fcc-agent-call/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cskwork%2Fcc-agent-call/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cskwork%2Fcc-agent-call/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cskwork","download_url":"https://codeload.github.com/cskwork/cc-agent-call/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cskwork%2Fcc-agent-call/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33718495,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-31T04:04:51.996Z","updated_at":"2026-05-31T04:04:52.875Z","avatar_url":"https://github.com/cskwork.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cc-agent-call\n\n**한국어** · [English](./README.md)\n\n\u003e 한 줄 요약: 사용 중인 AI CLI(예: Claude Code)가 못 하는 일을 다른 AI CLI(Codex, Antigravity, Kiro, NotebookLM)에게 **자동으로 떠넘기게** 해주는 \"위임 스킬\" 모음입니다.\n\n---\n\n## 0. 이 문서를 읽기 전에 — 용어 미리보기\n\n처음 보는 단어가 많을 수 있어 먼저 정리합니다.\n\n| 용어 | 풀어쓰면 |\n|---|---|\n| **Agentic CLI** | 터미널에서 도는 AI 도구. 사람이 \"이거 해줘\" 하면 스스로 파일을 읽고/고치고/명령을 실행함. 대표 예: Claude Code, OpenAI Codex CLI, Google Antigravity(`agy`), AWS Kiro CLI(`kiro-cli`). |\n| **Host (호스트)** | 지금 당신이 켜놓고 대화 중인 CLI. 보통 Claude Code 또는 Codex. |\n| **Skill (스킬)** | Claude Code / Codex가 \"특정 상황에서 어떻게 행동할지\"를 적어둔 폴더. `SKILL.md` 한 장 + 부속 스크립트로 구성. 호스트가 자동으로 발견·로드. |\n| **Delegation (위임)** | 호스트가 직접 처리하지 않고 **다른 CLI를 셸에서 실행**시켜 결과를 받아오는 행동. 이 저장소가 제공하는 핵심 동작. |\n| **MCP** | Model Context Protocol. 여러 AI 도구가 공통으로 외부 서버(파일·DB·웹 등)에 접근하기 위한 규약. `kiro-call`의 cross-registry 기능에서 등장. |\n| **RAG** | Retrieval-Augmented Generation. 모델이 답하기 전에 외부 문서를 먼저 검색해 근거로 사용하는 방식. NotebookLM이 잘하는 일. |\n\n---\n\n## 1. 왜 만들었나요?\n\n요즘 비슷한 시기에 여러 회사가 \"내 AI CLI\"를 내놓았습니다. 다 똑같아 보이지만 **각자 잘하는 게 다릅니다.**\n\n- **Claude Code** — 코드 편집·기획·1M 토큰 컨텍스트로 큰 코드베이스 분석에 강함. 이미지 생성은 못 함.\n- **OpenAI Codex CLI** — 이미지 생성(`gpt-image-2`)이 가능하고, `codex review`로 PR 단위 리뷰가 강함.\n- **Google Antigravity (`agy`)** — Google Search를 모델 추론 단계에 끼워주는 grounding 기능, gnomAD/UniProt 같은 과학 DB 직결.\n- **AWS Kiro CLI (`kiro-cli`)** — 헤드리스 자동화에 강하고, \"자연어 → 셸 명령\" 번역 기능이 있으며, AWS Bedrock 계열 모델로 2차 의견을 받음.\n- **NotebookLM** — PDF·웹·유튜브를 통째로 넣고 정확한 RAG 답변, 오디오 개요 생성.\n\n이 상황에서 흔히 일어나는 불편:\n\n\u003e \"지금 Claude Code로 작업 중인데 다이어그램 이미지가 하나 필요해. 일일이 다른 터미널 열어서 Codex 켜고… 귀찮네.\"\n\n**cc-agent-call**은 그 귀찮음을 없앱니다. Claude Code 안에서 \"이미지 하나 만들어줘\" 라고 하면, Claude Code가 알아서 `codex-call` 스킬을 통해 Codex를 실행해 이미지를 받아옵니다. 사용자는 CLI를 갈아탈 필요가 없습니다.\n\n---\n\n## 2. 어떤 경우에 자동으로 호출되나요?\n\n각 스킬은 두 가지 조건 중 하나일 때만 발동합니다. 의도치 않게 외부 CLI가 호출되면 비용·시간 낭비라서 일부러 좁게 잡았습니다.\n\n1. **사용자가 도구 이름을 명시한 경우** — \"agy로 검색해줘\", \"kiro한테 물어봐\", \"ask codex\", \"NotebookLM에 넣어줘\" 등.\n2. **호스트 CLI가 native로 못 하는 기능을 요청한 경우** — 예: Claude Code 사용 중에 \"이 도식 이미지로 그려줘\" → Claude Code는 이미지 생성을 못 하므로 `codex-call` 발동.\n\n루틴한 작업(`이 코드 리뷰해줘`, `이 기능 계획 짜줘`)에는 발동하지 않습니다. 호스트 본인이 충분히 잘하기 때문입니다.\n\n---\n\n## 3. 들어있는 스킬 5개\n\n| 스킬 | 어디서 동작? | 어떤 능력을 빌려오나? | 자주 쓰는 사례 |\n|---|---|---|---|\n| [`agy-call`](skills/agy-call/) | Claude Code | Google Antigravity | 최신 웹 정보 grounding, 이미지 생성, gnomAD/UniProt/PubMed 같은 생명과학 DB 조회, 2차 의견 |\n| [`kiro-call`](skills/kiro-call/) | Claude Code | AWS Kiro CLI(`kiro-cli`) | \"이거 하는 셸 명령 알려줘\"식 자연어 → 셸 번역, MCP 서버 교차 등록, AWS Bedrock 모델로 2차 의견 |\n| [`codex-call`](skills/codex-call/) | Claude Code | OpenAI Codex | 고품질 이미지 생성(`gpt-image-2`), `codex review`로 명시적 코드 리뷰 |\n| [`notebooklm-call`](skills/notebooklm-call/) | Claude Code + Codex | Google NotebookLM | PDF/URL/YouTube 문서 묶음에 대한 RAG QA, 오디오 개요 |\n| [`claude-call`](skills/claude-call/) | Codex CLI | Claude Code | Codex 사용자가 1M 컨텍스트 기획(plan-mode), 대형 코드베이스 심층 리뷰가 필요할 때 |\n\n\u003e \"Host\"는 **당신이 현재 켜놓고 대화 중인 CLI**입니다. 예를 들어 `claude-call`은 Codex 사용자가 설치하는 스킬입니다(거꾸로!).\n\n각 스킬 폴더 안 `SKILL.md`를 열어보면 정확한 트리거 키워드와 호출 예시가 적혀 있습니다.\n\n---\n\n## 4. 설치\n\n### 4-1. 사전 준비 (스킬마다 다름)\n\n본인이 **실제로 쓸 스킬만** 준비하면 됩니다. 전부 설치할 필요 없음.\n\n| 스킬 | 필요한 바이너리 | 인증 방법 |\n|---|---|---|\n| `agy-call` | `agy` (Antigravity CLI) | `agy install` → Google 계정 로그인 |\n| `kiro-call` | `kiro-cli` (AWS Kiro CLI) | `kiro-cli login` |\n| `codex-call` | `codex` | `codex login` (ChatGPT) 또는 `OPENAI_API_KEY` 환경변수 |\n| `notebooklm-call` | Python 3.10+, `notebooklm` CLI | `notebooklm login` (브라우저 1회) |\n| `claude-call` | `claude` (Claude Code) | `claude auth login` 또는 `ANTHROPIC_API_KEY` 환경변수 |\n\n### 4-2. 저장소 클론\n\n```bash\n# GitHub에서\ngit clone https://github.com/cskwork/cc-agent-call\n# 또는 사내 Gitea에서\ngit clone https://gitea.agentic-worker.store/Donga-AX/cc-agent-call.git\n\ncd cc-agent-call\n```\n\n### 4-3. 스킬 심볼릭 링크 생성\n\n`install.sh`는 이 저장소의 `skills/\u003cname\u003e` 폴더를 호스트 CLI가 보는 위치(`~/.claude/skills/\u003cname\u003e` 또는 `~/.codex/skills/\u003cname\u003e`)로 **symlink** 해줍니다. 복사가 아니라 링크라 저장소를 `git pull` 하면 호스트도 즉시 새 버전을 봅니다.\n\n```bash\n./install.sh                # 5개 전부 설치\n./install.sh agy-call       # 하나만 설치\n./install.sh --dry-run      # 실제로는 안 하고 어디에 무엇이 연결될지만 미리보기\n./install.sh --uninstall    # 만들어둔 symlink 전부 제거\n```\n\n설치 후 호스트 CLI(Claude Code 등)를 새 세션으로 열면 스킬이 자동 로드됩니다.\n\n\u003e 참고: `notebooklm-call`은 Claude Code와 Codex 양쪽에서 모두 동작하므로 두 디렉터리 모두에 링크됩니다.\n\n---\n\n## 5. 처음 써보기 — 5분 워크스루\n\n상황: **Claude Code로 작업 중인데 README용 일러스트가 필요하다.**\n\n```text\n\u003e README 상단에 들어갈 추상적 일러스트 하나 만들어줘. 1:1 비율.\n```\n\nClaude Code는 이미지 생성을 native로 못 합니다. 설치된 `codex-call` 스킬이 트리거되어 다음을 자동 수행합니다:\n\n1. 프롬프트를 Codex 형식으로 다듬어 셸에서 `codex` 실행\n2. Codex가 `gpt-image-2`로 이미지 생성\n3. 결과 파일 경로를 받아 Claude Code 대화창에 보고\n\n당신은 CLI를 갈아타지 않았습니다.\n\n다른 예:\n\n- \"agy로 'gpt-image-2 가격' 검색해줘\" → `agy-call`이 Google Search grounding으로 응답\n- \"이 PDF 5개에 대해 NotebookLM에 묶고 'Section 3 결론' 물어봐\" → `notebooklm-call`이 corpus 생성 후 질의\n\n---\n\n## 6. 트리거 정책 상세\n\n각 `SKILL.md`에는 다음과 비슷한 정책이 들어 있습니다:\n\n\u003e Use ONLY when the user explicitly says \"codex\" / \"kiro\" / \"agy\" / \"notebooklm\", OR the task is image generation / NL-to-shell / scientific DB / document RAG. Do NOT use for routine code edits, planning, or analysis that the host can do natively.\n\n**왜 이렇게 보수적으로 잡았나?**\n\n- 외부 CLI 호출은 보통 별도 토큰/크레딧을 소비합니다.\n- 호스트가 스스로 잘하는 일을 굳이 외주 보내면 응답 속도가 느려집니다.\n- 자동 호출이 폭주하면 사용자가 \"이 도구가 지금 뭘 하고 있는지\" 추적하기 어려워집니다.\n\n따라서 \"확실히 필요할 때만\" 발동하도록 키워드를 좁게 잡았습니다.\n\n---\n\n## 7. 테스트\n\n설치 후 동작 확인:\n\n```bash\n./tests/run-all.sh                 # L0 + L1: 바이너리 존재 \u0026 --help 동작 확인\nRUN_L2=1 ./tests/run-all.sh        # L2 추가: 실제 round-trip 프롬프트 (크레딧 소모)\nRUN_L3=1 ./tests/run-all.sh        # L3 추가: 핵심 기능(이미지 생성 등) 실행 (크레딧 소모)\n```\n\n각 스킬별 개별 스모크 테스트:\n\n```bash\n./skills/agy-call/tests/smoke.sh\n./skills/codex-call/tests/smoke.sh\n# ... 등\n```\n\nL2/L3은 실제로 외부 모델을 호출하므로 비용이 발생할 수 있습니다. CI에 거는 경우 L0/L1만 켜두는 것을 권장합니다.\n\n---\n\n## 8. 자주 묻는 질문\n\n**Q. 호스트 CLI를 안 쓰는데 그냥 외부 CLI만 쓰면 안 되나요?**\n됩니다. 이 저장소는 **호스트 안에서 흐름을 끊지 않고 외부 CLI를 부르는 경우**에만 의미가 있습니다. 단독 사용이라면 그냥 해당 CLI를 직접 쓰는 게 빠릅니다.\n\n**Q. 스킬이 자동 호출되는 게 싫어요.**\n호스트 CLI 측에서 스킬을 비활성화하거나, `install.sh --uninstall`로 symlink만 제거하면 됩니다. 저장소 자체는 그대로 둬도 무방합니다.\n\n**Q. 새 CLI(예: 차세대 도구)도 추가할 수 있나요?**\n가능합니다. `skills/\u003cnew-name\u003e/SKILL.md`를 만들고 `install.sh`의 `declare_targets()` 케이스에 호스트 위치를 추가하면 됩니다.\n\n**Q. 보안은?**\n이 저장소는 토큰을 보관하지 않습니다. 각 CLI의 인증은 해당 도구의 표준 방식(설정 파일 / 환경변수)을 그대로 사용합니다.\n\n---\n\n## 9. License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcskwork%2Fcc-agent-call","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcskwork%2Fcc-agent-call","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcskwork%2Fcc-agent-call/lists"}