VintLin/skill-flow
요약
skill-flow는 Claude Code, Cursor, Copilot 등 다양한 코딩 에이전트의 스킬을 통합적으로 설치, 관리 및 배포할 수 있게 해주는 도구입니다. GitHub이나 로컬 소스에서 스킬 그룹을 가져와 여러 에이전트에 동시에 배포하고, TUI와 macOS 데스크톱 앱을 통해 체계적인 상태 관리를 지원합니다.
핵심 포인트
- Claude Code, Cursor, Windsurf 등 주요 코딩 에이전트 간의 스킬 공유 및 멀티 배포 지원
- 로컬, Git, skills.sh 등 다양한 소스를 동일한 모델로 가져오는 그룹화된 소스 관리
- TUI(Terminal User Interface)와 macOS 전용 데스크톱 앱을 통한 직관적인 설정 및 관리
- manifest.json과 lock.json을 활용한 명시적인 배포 상태 및 인벤토리 추적
- 진단 및 복구를 위한 전용 명령어(doctor, repair 등) 제공
Claude Code, Cursor, Copilot, Trae 등 모든 주요 코딩 에이전트(coding agent) 전반에 걸쳐 스킬(skills)을 설치, 관리 및 공유하세요.
skills.sh, GitHub 또는 로컬 소스에서 스킬을 검색하고 가져오세요. 여러 에이전트에 동시에 배포할 수 있습니다. 모든 것을 체계적으로 정리하고 최신 상태로 유지하세요.
스킬을 하나씩 설치하는 방식은 규모가 커지면 한계에 부딪힙니다:
- 저장소(Repos)에는 여러 관련 스킬이 포함되어 있지만, 이를 별도로 설치해야 합니다.
- 에이전트마다 요구하는 위치가 다릅니다.
- 업데이트가 조용히 어긋납니다.
- 관리되지 않는 폴더가 쌓입니다.
- 실제로 무엇이 배포되었는지 아무도 추적하지 않습니다.
skill-flow는
워크플로우 그룹(workflow group)을 보존합니다. 하나의 소스가 하나의 응집된 단위로 유지됩니다. 이를 검사하고, 스킬을 선택하고, 여러 대상에 배포하며, 깔끔하게 업데이트하고, 항상 상태를 파악할 수 있습니다.
그룹화된 소스 관리: 로컬, Git 및 skills.sh 소스가 모두 동일한 가져오기(import) 모델을 통해 흐릅니다. 멀티 에이전트 배포: 선택된 하나의 스킬 세트를 Claude Code, Codex, Cursor, Gemini CLI, OpenCode, OpenClaw, Hermes Agent, Trae, Windsurf 등에 배포합니다. 대화형 설정 흐름: 추가/설정 흐름, 선택 상태, 검토 및 복구를 위한 Ink 기반의 TUI(Terminal User Interface)를 제공합니다. macOS 15+용 데스크톱 앱: SwiftUI 메인 창, 가져오기 뷰, 상세 패널, 설정 및 메뉴 바 빠른 설정을 제공합니다. 명시적 상태: manifest.json은 의도(intent)를 저장하고, lock.json은 해결된 인벤토리(inventory)와 배포 상태를 저장합니다. 브리지 프로토콜(Bridge protocol): skill-flow bridge --json을 통해 기계가 읽을 수 있는 데스크톱/헬퍼 엔트리포인트를 제공합니다. 복구 및 진단: doctor, repair-source, repair-state, repair-targets가 보통 가장 먼저 손상되는 부분들을 처리합니다.
| 메뉴 바 | 가져오기 |
|---|
| 상세 | 설정 |
|---|
npm install -g skill-flow
skill-flow --help
또는 전역 설치 없이 실행하려면:
npx skill-flow --help
Skill Flow 데스크톱 릴리스 빌드에는 데스크톱 헬퍼를 위한 Node.js 런타임이 포함되어 있어, 더블 클릭 실행 시 asdf나 nvm 같은 도구의 셸 관리 node 경로에 의존하지 않습니다.
GitHub 이외의 Git 소스를 사용하려면 git이 필요하며, skills.sh 가져오기를 위해서는 npx가 필요합니다.
개발용 빌드(Development builds) 및 손상된 릴리스 번들(release bundles)은 여전히 Node.js 20 이상의 시스템 node로 폴백(fallback)할 수 있습니다. 데스크톱 앱이 누락된 종속성(dependency)을 감지하면, 조치 가능한 오류를 표시하고 이 섹션을 다시 참조하도록 안내합니다.
# 소스 추가
skill-flow add garrytan/gstack
# 설치된 워크플로우 그룹 검토
...
데스크톱 앱과 헬퍼 도구(helper tooling)는 버전 관리된 JSON 프로토콜을 통해 CLI와 통신합니다:
printf '%s' '{"protocolVersion":"1.0","command":"list"}' | skill-flow bridge --json
skill-flow add <source>는 다음을 지원합니다:
- 로컬 폴더
owner/repo형태의 GitHub 약식(shorthand)- 전체 HTTPS Git URL
- SSH Git URL
- GitHub 트리(tree) URL
clawhub:<slug>[@version]
예시:
skill-flow add ~/code/my-skills
skill-flow add garrytan/gstack
skill-flow add https://github.com/garrytan/gstack.git
...
저장소(repo)가 크지만 기본 선택 범위를 특정 서브트리(subtree)에서 시작해야 하는 경우 --path <repoSubpath>를 사용하십시오.
현재 내장된 타겟(built-in targets):
- Claude Code
- Codex
- Cursor
- GitHub Copilot
- Gemini CLI
- OpenCode
- OpenClaw
- Hermes Agent
- Pi
- Trae
- Windsurf
- Roo Code
- Cline
- Amp
- Kiro
타겟 경로(Target paths)는 SKILL_FLOW_TARGET_* 환경 변수로 재정의할 수 있습니다.
| 명령어 | 기능 |
|---|---|
add <source> | 소스를 가져오고 기술(skills)/타겟(targets)을 선택합니다 |
list | 워크플로우 그룹과 현재 상태(health)를 표시합니다 |
find <query> / search <query> | 설치된 기술, 내장된 Git 카탈로그 및 skills.sh를 검색합니다 |
config | 대화형 설정 UI를 엽니다 |
update [sourceId] --all | 하나의 소스 또는 등록된 모든 소스를 새로고침합니다 |
doctor | 드리프트(drift), 누락된 경로 및 프로젝션(projection) 문제를 진단합니다 |
repair-source [sourceId] --all | 소스 체크아웃 메타데이터를 재구축합니다 |
repair-state [sourceId] --all | 소스 측 상태(state)를 재구축합니다 |
repair-targets [sourceId] --all | 프로젝션된 타겟 콘텐츠를 복구합니다 |
uninstall <sourceIds...> | 그룹 및 해당 배포(deployments)를 제거합니다 |
bridge --json | 머신 프로토콜(machine protocol) 요청을 실행합니다 |
skill-flow
하나의 상태 루트(state root)를 유지하며, 기본값은 ~/.skillflow/입니다.
.
manifest.json
: 사용자가 원하는 것
lock.json
: 실제로 설치된 것
source/local/*
: 가져온 로컬 소스 또는 채택된 관리되지 않는(unmanaged) 소스
source/git/*
: Git 소스 캐시(cache)
source/clawhub/*
: skills.sh 소스 캐시(cache)
catalog/git/*
: 내장된 Git 카탈로그 캐시(cache)
대상 디렉터리(Target directories)는 배포 출력물(deployment outputs)이며, 신뢰할 수 있는 원천(source of truth)이 아닙니다.
기본적으로 상태는 ~/.skillflow/ 아래에 존재합니다.
manifest.json은 사용자가 원하는 워크플로(workflow)를 기록하고, lock.json은 해결된 인벤토리(inventory)와 배포(deployments)를 기록하며, source/* 디렉터리는 가져온 소스들을 캐시(cache)합니다.
skill-flow는 대상 디렉터리를 배포 출력물로 취급합니다. 워크플로 그룹을 위해 선택된 스킬(skills)들은 상태(state)로부터 해당 위치에 투영(projected)되므로, 해당 파일들을 신뢰할 수 있는 원천(source of truth)으로 편집하기보다는 생성된 결과물로 취급해야 합니다.
무언가 잘못된 것처럼 보이고 진단이 먼저 필요할 때는 skill-flow doctor로 시작하세요. 소스 체크아웃 메타데이터(source checkout metadata)가 손상되었을 때는 repair-source를, 소스 측 상태(source-side state)를 재구축해야 할 때는 repair-state를, 배포된 대상 콘텐츠가 현재 상태와 달라졌을(drifted) 때는 repair-targets를 사용하세요.
.
├── apps
│ ├── cli/ # 게시된 npm 패키지 및 CLI 엔트리포인트(entrypoint)
...
npm install
npm run build
npm test
CLI 개발 루프(dev loop):
npm run -w skill-flow dev -- --help
데스크톱(Desktop) 개발 루프:
npm run build
cd apps/desktop-mac
swift build
...
로컬 CLI 빌드에 대해 데스크톱 셸(desktop shell)을 디버깅하기:
export SKILL_FLOW_DESKTOP_HELPER_OVERRIDE=/absolute/path/to/apps/cli/dist/cli.js
서명되지 않은(Unsigned) 데스크톱 패키징:
scripts/release/package-desktop-mac.sh --arch arm64
scripts/release/package-desktop-mac.sh --arch x86_64
scripts/release/package-desktop-mac.sh --arch universal
오픈 소스 macOS 릴리스(release) 흐름:
scripts/release/release-github.sh all
서명되지 않은 macOS 설치 참고 사항:
- Apple Silicon Mac은
Skill-Flow-arm64.dmg또는Skill-Flow-universal.dmg를 사용할 수 있습니다. - Intel Mac은
Skill-Flow-x86_64.dmg또는Skill-Flow-universal.dmg를 사용할 수 있습니다.
Skill Flow.app을 Applications 폴더로 복사합니다. 만약 Gatekeeper에 의해 차단될 경우, Finder의 열기 (Open) 동작을 사용하여 한 번 실행하십시오. 만약 macOS가 여전히 해당 앱을 격리 (quarantined) 상태로 표시한다면, 다음 명령어를 실행하십시오:
xattr -dr com.apple.quarantine "/Applications/Skill Flow.app"
Apache License 2.0. LICENSE를 참조하십시오.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Claude Ecosystem의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기