Plugins in CoCo Desktop

Plugins in CoCo Desktop (CoCo Desktop의 플러그인)

플러그인은 에이전트의 기능을 확장하는 재사용 가능한 패키지예요. 하나의 플러그인이 스킬, MCP 서버, 훅, 하위 에이전트의 어떤 조합이든 묶을 수 있어서, 한 단계로 전체 워크플로를 설치할 수 있어요.

출처: Plugins in CoCo Desktop

본문

플러그인이 담는 것

각 플러그인은 매니페스트 파일(.cortex-plugin/plugin.json)과 다음 구성 요소 중 하나 이상을 가진 폴더예요.

구성 요소 역할
Skills 에이전트가 특정 작업을 처리하는 방법을 가르치는 Markdown 기반 지침. 각 스킬은 skills/ 아래 하위 폴더에 SKILL.md 파일로 있어요. 스킬은 채팅에서 슬래시 명령으로 호출돼요.
MCP servers 에이전트에게 추가 도구를 제공하는 Model Context Protocol 서버(예: 데이터베이스 커넥터, API 통합). 매니페스트나 .mcp.json에서 구성돼요.
Hooks 도구 호출 전후 같은 이벤트에 반응해 자동으로 실행되는 셸 명령. 매니페스트나 .hooks.json에서 구성돼요.
Subagents 메인 에이전트가 작업을 위임할 수 있는 전문화된 에이전트(agents/ 폴더의 .md 파일로 정의).

Agent Settings 패널 열기

플러그인은 Agent Settings 패널에서 관리해요. 열려면 왼쪽 사이드바의 Agent Settings 탭을 클릭해요.

Agent Settings 패널에서 왼쪽 사이드바의 Plugins 카테고리를 선택해요. 이곳이 플러그인을 탐색, 설치, 활성화·비활성화, 동기화, 제거하기에 권장되는 곳이에요.

팁

다른 Agent Settings 카테고리(Skills, Profiles, MCP, Subagents, Hooks, Rules)도 같은 패널에서 관리돼요. 설치한 플러그인이 제공하는 스킬은 Skills 탭에 자동으로 나타나요.

여기에서 다음을 할 수 있어요.

  • 각 카드의 스위치로 플러그인을 켜거나 꺼요.
  • "Source" 드롭다운(All, User, Bundled, Project)으로 소스별 필터링.
  • 검색 바에서 이름이나 설명으로 검색.
  • 카드를 클릭해 플러그인 상세 뷰를 열어요.

플러그인 상세

플러그인 카드를 클릭하면 상세 뷰가 열리고, 설명, 소스, 버전, 상태, 구성 요소(스킬, 훅, MCP 서버, 하위 에이전트)가 표시돼요.

GitHub에서 가져온 플러그인은 상세 뷰에 소스 저장소 경로와, 동기화하면 최신 버전을 다시 복제하고 로컬 편집을 덮어쓴다는 안내 노트를 표시해요.

Plugins Catalog

Plugins Catalog는 조직 전체에서 플러그인을 공유하고 발견하기 위한 Snowflake의 내장 레지스트리예요. 카탈로그의 플러그인은 버전 관리된 Cortex Extension 객체로 저장되므로, 접근은 Snowflake 역할과 승인으로 관리돼요. Git 자격 증명이나 파일 공유가 필요 없어요.

카탈로그 탐색

Plugins 뷰의 Browse Plugins Catalog 링크를 클릭해요. 그러면 Snowsight의 Skills & Plugins 페이지가 열려 게시된 플러그인을 검색하고, 설명을 읽고, 가져오기 링크를 복사할 수 있어요.

카탈로그 출처 플러그인은 Plugins 그리드에 CATALOG 배지와 구름 아이콘으로 나타나요. Source 드롭다운에서 Catalog를 선택하면 카탈로그에서 가져온 플러그인만 보이도록 필터링할 수 있어요.

카탈로그에서 플러그인 가져오기

  1. Snowsight에서 원하는 플러그인을 찾아 snow://skill_catalog/로 시작하는 URI인 공유 링크를 복사해요.
  2. CoCo Desktop에서 Agent Settings 패널을 열고 Plugins 카테고리를 선택해요.
    • 버튼을 클릭하고 Add from Plugins Catalog를 선택해요.
  3. Import link 필드에 snow:// 링크를 붙여넣고 Import를 클릭해요.

CoCo Desktop은 Snowflake에서 플러그인 파일을 다운로드하고, 매니페스트를 파싱하고, 플러그인을 등록해요. 그리드에 CATALOG 배지와 함께 나타나요. 원본 공유 링크가 저장되어 나중에 더 새로운 버전으로 동기화할 수 있어요.

참고

가져오기 링크는 snow://skill_catalog/ 또는 snow://cortex_extension/로 시작하고 특정 버전 번호를 포함해야 해요(예: .../versions/version$1/). SQL 메타문자(;, --, /* */, 백틱)를 포함한 URI는 거부돼요.

카탈로그 플러그인 동기화

카탈로그 플러그인은 제거·재설치 없이 최신 게시 버전으로 업데이트할 수 있어요.

플러그인의 상세 페이지를 열고 Sync 버튼(↻)을 클릭해요. CoCo Desktop은 Snowflake에 최신 게시 버전을 조회하고, 다운로드한 뒤 로컬 캐시를 덮어써요.

상세 페이지는 플러그인의 업스트림 URI(설치된 snow:// 링크)도 표시해요. 알약을 클릭하면 URI를 클립보드에 복사해요.

참고

Sync는 캐시된 플러그인 파일에 내가 한 로컬 편집을 덮어써요. 카탈로그 플러그인을 사용자 지정해야 한다면, 자신의 포크를 카탈로그에 게시하는 대신 그렇게 해요.

카탈로그에 플러그인 게시

로컬에서 만든 플러그인은 Plugins Catalog에 게시해 조직의 다른 사람이 가져올 수 있게 할 수 있어요.

  1. Agent Settings 패널을 열고 Plugins 카테고리를 선택해요.
  2. 게시할 플러그인을 클릭해 상세 뷰를 열어요.
  3. Publish to Plugins Catalog(구름 업로드 아이콘)를 클릭해요.

채팅 세션이 열리고 게시 워크플로가 실행돼요. 이 워크플로는:

  1. Snowflake 계정에 CORTEX EXTENSION 객체(TYPE=PLUGIN)를 만들어요.
  2. 플러그인 파일을 Snowflake의 버전 관리 저장소에 업로드해요.
  3. 버전을 커밋하고 읽기 접근을 부여해요(PUBLIC에, 또는 지정한 역할에).
  4. 팀과 공유할 수 있는 snow://skill_catalog/... URI를 반환해요.

참고

Publish to Plugins Catalog 버튼은 로컬에서 만든 플러그인(User 또는 Project 위치)에만 사용할 수 있어요. 카탈로그, GitHub, 또는 git URL에서 이미 가져온 플러그인은 이 워크플로로 다시 게시할 수 없어요.

카탈로그 플러그인 제거

카탈로그 플러그인을 제거하려면 플러그인 상세 뷰에서 Remove를 클릭해요. 플러그인 등록이 해제되고 로컬 캐시 디렉터리가 삭제돼요. Snowflake 계정의 Cortex Extension 객체는 영향을 받지 않아요.

플러그인 가져오기

기존 플러그인을 가져오려면 Plugins 도구 모음의 + 버튼을 클릭해요.

Add Local Plugin

.cortex-plugin/plugin.json 매니페스트가 있는 파일 시스템의 폴더를 선택해요. 플러그인은 참조로 등록돼요. 디스크에 있던 자리에 유지되고, 어떤 파일도 복사되지 않아요.

팁

로컬 플러그인은 자동으로 업데이트돼요. 파일 감시자가 스킬 파일, 훅, MCP 구성의 변경을 감지하므로, 동기화하거나 새로고침할 필요 없이 편집이 즉시 적용돼요.

Claude 플러그인 형식 호환성

CoCo Desktop은 네이티브 Cortex 형식과 Claude 플러그인 형식을 모두 인식하므로, 어느 도구용으로 만들어진 플러그인도 수동 변환 없이 사용할 수 있어요.

폴더 레이아웃 CoCo Desktop이 처리하는 방식
.cortex-plugin/plugin.json 있음 그대로 로드돼요. 이것이 네이티브 CoCo Desktop 형식이에요.
.claude-plugin/plugin.json 있음(.cortex-plugin/ 없음) 매니페스트를 직접 읽어요. 변환이 필요 없어요.
commands/ 폴더 있음(구버전 Claude Code 스타일) 대화형 변환이 필요해요. local-plugin-installer 스킬을 사용해 commands/ 항목을 skills/<name>/SKILL.md 레이아웃으로 변환해요(아래 참고).

워크스페이스 발견: CoCo Desktop은 네이티브 <workspace>/.cortex/plugins/ 경로 외에도 <workspace>/.claude/plugins/를 프로젝트 범위 플러그인으로 스캔해요. 기존 Claude Code 프로젝트가 있고 .claude/plugins/ 아래에 커밋된 플러그인이 있다면, 그 워크스페이스를 열 때 자동으로 발견·활성화돼요.

commands/ 스타일 플러그인 변환: 구버전 Claude Code 플러그인은 commands/ 디렉터리 아래에 슬래시 명령을 저장하고 skills/가 아니에요. 각 명령이 skills/<name>/SKILL.md 항목이 되어야 하므로 CoCo Desktop은 이들을 그대로 로드할 수 없어요. 변환하려면:

  1. 채팅 패널에서 install local plugin을 입력하거나 local-plugin-installer 스킬을 명시적으로 호출해요.
  2. 스킬을 플러그인의 루트 디렉터리에 지정해요.
  3. 스킬이 각 명령을 스킬로 이름 바꾸고 필요한 SKILL.md 파일을 생성하는 과정을 안내해요.
  4. 완료되면 플러그인이 등록되고 다른 로컬 플러그인처럼 동작해요.

참고

commands/-to-skills/ 변환은 대화형이에요. 각 명령에 에이전트가 자동 호출에 사용하는 설명 필드가 필요한데, 명령 이름만으로는 추론할 수 없기 때문이에요.

Add from GitHub

owner/repo 형식의 GitHub 저장소를 제공해요(선택적으로 하위 경로와 브랜치 포함, 예: owner/repo/plugins/my-plugin#main). 저장소는 ~/.snowflake/cortex/plugins/에 복제되고 GitHub 출처 플러그인으로 등록돼요.

GitHub 출처 플러그인은 원격 저장소에서 업데이트를 가져오는 sync(아래 참고)를 지원해요. 복제된 저장소가 Claude 플러그인 형식(.claude-plugin/plugin.json 또는 commands/ 디렉터리)을 사용한다면, CoCo Desktop은 동기화 중 위에서 설명한 것과 같은 호환성 처리를 자동으로 적용해요.

GitHub sync

GitHub에서 가져온 플러그인은 원격 저장소에서 최신 버전을 가져오도록 동기화할 수 있어요. 플러그인 상세 페이지의 동기화 아이콘을 클릭해 동기화를 시작해요.

동기화 과정:

  1. 고정된 ref(브랜치 또는 커밋)에서 저장소를 다시 복제해요.
  2. 복제된 콘텐츠가 유효한 Cortex 플러그인인지 검증해요.
  3. 설치 디렉터리를 원자적으로 교체해요. 교체 중 구버전은 백업으로 유지되고, 문제가 생기면 복원돼요.
  4. 레지스트리를 동기화 타임스탬프로 업데이트해요.

참고

Sync는 플러그인의 설치 디렉터리에 내가 한 로컬 편집을 덮어써요. GitHub 출처 플러그인을 사용자 지정해야 한다면 저장소를 포크하거나 별도의 로컬 플러그인을 만드는 것을 고려해요.

플러그인 만들기

Plugins 도구 모음의 Create 버튼을 클릭해 새 플러그인을 스캐폴딩해요. 필수 매니페스트 파일과 디렉터리 구조를 가진 플러그인 폴더가 만들어져요.

플러그인 매니페스트

모든 플러그인은 .cortex-plugin/plugin.json 파일이 있어야 해요. 예시는 다음과 같아요.

{
  "name": "my-plugin",
  "version": "1.0.0",
  "description": "A custom plugin for my workflow",
  "skills": ["skills"],
  "hooks": {},
  "mcpServers": {}
}
필드 필수 설명
name 예 플러그인 식별자. 문자나 숫자로 시작해야 하고, A-Z a-z 0-9 _ -만 사용하며, 최대 64자예요.
version 아니요 시맨틱 버전 문자열(예: 1.0.0).
description 아니요 Plugins 패널에 표시되는 짧은 설명.
skills 아니요 스킬 디렉터리 경로(기본 skills/).
hooks 아니요 훅 구성 객체, 또는 .hooks.json에서 로드.
mcpServers 아니요 MCP 서버 구성 객체, 또는 .mcp.json에서 로드.

디렉터리 구조

my-plugin/
  .cortex-plugin/
    plugin.json
  skills/
    my-skill/
      SKILL.md
  agents/
    my-agent.md
  .hooks.json        (optional)
  .mcp.json          (optional)

Refresh 버튼

Plugins 도구 모음의 원형 화살표 아이콘(↻)은 플러그인 레지스트리를 강제로 완전히 다시 로드해요. 모든 캐시를 무효화하고, 레지스트리 파일을 다시 읽고, 활성화된 모든 플러그인을 다시 활성화해요.

다음 때 refresh 버튼을 사용해요.

  • CoCo 밖에서 플러그인 파일을 수동으로 편집했는데 변경이 나타나지 않을 때.
  • 플러그인이 오래 보이거나 예상대로 활성화되지 않을 때.
  • 레지스트리 파일을 직접 수정했을 때.

팁

로컬 플러그인은 보통 수동 새로고침이 필요 없어요. 파일 감시자가 변경을 자동 감지해요. refresh 버튼은 대량 작업 후나 외부 도구가 플러그인 디렉터리를 수정할 때 가장 유용해요.

플러그인 저장 위치

위치 경로 비고
Bundled 앱과 함께 제공 CoCo에 포함된 읽기 전용 플러그인. 기본 비활성화(옵트인).
User ~/.snowflake/cortex/plugins/ 내가 설치하거나 만든 플러그인. 모든 워크스페이스에서 사용 가능.
Project 프로젝트 루트의 .cortex/plugins/ 버전 관리로 팀과 공유되는 워크스페이스 범위 플러그인.

중요

플러그인은 Snowflake가 암호화 서명하거나 검증하지 않아요. 각 플러그인 소스를 그 작성자의 코드를 실행하는 것으로 취급해요. 설치 전에 매니페스트, 번들된 스킬, 등록된 MCP 서버와 훅을 검토해요.

참고

프로젝트 범위 플러그인은 자동 활성화 전에 워크스페이스 신뢰가 필요해요. 워크스페이스가 신뢰되지 않으면 프로젝트 플러그인은 기본적으로 비활성화돼요. Plugins 패널의 토글로 개별 활성화하거나, 워크스페이스를 신뢰해 전부 활성화할 수 있어요.

더 알아보기