99

최근 30분간 동시 방문자 수를 표시합니다. (~)

최고 동시 방문자 수 -
어제: 0명 / 오늘: 0명

하나의 스킬을 여러 AI 에이전트에 동기화하기

Agent SkillsClaudeCodexCLINode.js
한 시간 전
0
0
0

AI 에이전트 스킬(Agent Skills)은 SKILL.md 파일이 포함된 폴더 하나입니다.
개방형 표준으로 공개되어 여러 도구가 같은 형식을 사용하지만, 표준이 정하는 범위는 폴더 구조와 SKILL.md 형식까지입니다.
스킬을 어느 경로에서 찾을 것인지는 도구마다 다릅니다.

도구 프로젝트 스킬 경로
Claude Code .claude/skills/
Codex .agents/skills/
Gemini CLI .agents/skills/, .gemini/skills/
Cursor .agents/skills/, .cursor/skills/, .claude/skills/

.agents/skills/는 특정 도구에 속하지 않는 공용 경로지만, Claude Code는 .claude/skills/만 확인합니다.
하나의 프로젝트에서 Claude Code와 Codex, Cursor 같은 다른 AI 에이전트를 함께 사용하면 같은 스킬이 두 경로에 모두 존재해야 합니다.

단순히 폴더를 복사하면 같은 스킬이 2개 이상이 됩니다.
한쪽을 수정하면 각 스킬 내용이 달라지고, 어느 쪽이 최신인지 확인하거나 관리하기가 쉽지 않습니다.
이때 심볼릭 링크(Symbolic Link)를 사용하면 원본은 한 곳에만 두고 다른 경로에서 원본을 가리키게 할 수 있습니다.

# 심볼릭 링크란

심볼릭 링크는 다른 파일이나 폴더의 경로를 저장하고 있는 특수한 파일입니다.
링크를 열면 저장된 경로를 따라 원본이 열리기 때문에, 프로그램 입장에서는 링크와 원본을 구분하지 않고 같은 폴더로 사용합니다.
macOS와 리눅스에서는 ln -s 명령으로 생성합니다.

BASH
1
ln -s ../../.claude/skills/my-skill .agents/skills/my-skill
.agents/skills/my-skill 경로가 .claude/skills/my-skill 폴더를 가리키게 연결

이제 .agents/skills/my-skill/SKILL.md를 수정하면 .claude/skills/my-skill/SKILL.md도 수정됩니다.
두 경로가 같은 파일을 가리키므로, 어느 쪽에서 수정해도 다른 쪽에 바로 반영됩니다.
링크를 삭제해도 원본은 그대로 남고, 반대로 원본을 삭제하면 링크는 가리킬 곳이 없는 깨진 링크로 남습니다.

다만 스킬 폴더를 직접 연결하려면 확인할 것이 많습니다.

  • 상대 경로는 명령을 실행하는 위치가 아니라 링크가 생성되는 위치를 기준으로 합니다. 위 명령에서 ../../를 빠뜨리면 오류 없이 깨진 링크가 생성됩니다.
  • 스킬마다 명령을 하나씩 실행해야 하고, 스킬을 추가할 때마다 반복해야 합니다.
  • 원본이 .claude/skills에 있는 스킬과 .agents/skills에 있는 스킬이 섞여 있으면, 연결 방향도 스킬마다 확인해야 합니다.
  • 윈도우에서는 mklink 명령을 사용하며, 심볼릭 링크를 생성하려면 개발자 모드나 관리자 권한이 필요합니다.

# 쉬운 링크 생성

@heropy/symlink는 여러 폴더의 항목을 비교해서 없는 쪽에 심볼릭 링크를 생성하는 CLI 도구입니다.
연결할 폴더들을 인수로 전달하며, 설치 없이 npx로 실행할 수 있습니다.

Node.js 20.19 이상에서 동작합니다.

BASH
1
2
3
4
5
6
npx @heropy/symlink .claude/skills .agents/skills ## link .agents/skills/commit-push -> ../../.claude/skills/commit-push ## link .agents/skills/writing-style -> ../../.claude/skills/writing-style ## link .claude/skills/react-router -> ../../.agents/skills/react-router ## ## 3 linked

commit-pushwriting-style.claude/skills에 원본이 있어서 .agents/skills에 링크가 생성되었고, react-router는 그 반대입니다.
작성하는 인수의 순서와 상관없이 원본 폴더가 있는 쪽이 원본이 되고, 링크의 상대 경로도 링크 위치를 기준으로 계산됩니다.
그래서 스킬을 어느 경로에 추가했는지, 경로를 어떻게 작성해야 하는지 신경 쓰지 않아도 됩니다.

스킬을 새로 추가했다면 같은 명령을 다시 실행합니다.
이미 연결된 항목은 keep으로 보고되어 그대로 유지되고, 새 스킬만 연결됩니다.

BASH
1
2
3
4
5
6
7
npx @heropy/symlink .claude/skills .agents/skills ## keep .agents/skills/heropy-commit-push ## keep .agents/skills/heropy-writing-style ## link .agents/skills/lighthouse -> ../../.claude/skills/lighthouse ## keep .claude/skills/react-router ## ## 1 linked, 3 already fine
lighthouse 스킬을 추가한 뒤 다시 실행

여러 번 실행해도 결과가 같으므로 postinstall 스크립트에 추가해도 안전합니다.
자리를 만들려고 기존 파일이나 폴더를 삭제하는 경우는 없으며, 같은 이름의 원본이 양쪽에 모두 있는 것처럼 직접 판단해야 하는 항목은 건너뛰고 그 이유를 출력합니다.
윈도우에서는 권한이 필요 없는 디렉터리 정션(Junction)을 생성하므로, 운영체제와 상관없이 같은 명령을 사용할 수 있습니다.

AI 스킬은 이 도구를 만들게 된 계기일 뿐이고, 공용 설정, 프롬프트 모음, 정적 자산처럼 도구마다 정해진 경로의 폴더는 모두 같은 방식으로 연결할 수 있습니다.
--dry-run, --list, --unlink 같은 옵션과 윈도우에서의 주의 사항, Node.js API 등 더 자세한 내용은 GitHub 저장소에서 확인할 수 있습니다.