
오프라인 및 보안 우선 방식으로 에이전트 스킬을 동기화하고 관리하기 위한 도구
설치 전에 AI 에이전트 스킬에서 프롬프트 인젝션을 스캔하세요
```
╔════════════════════════════════════════════════════════╗
║ ███████╗██╗ ██╗██╗ ██╗██╗ ████████╗ ██████╗ ║
║ ██╔════╝██║ ██╔╝██║ ██║██║ ╚══██╔══╝██╔═══██╗ ║
║ ███████╗█████╔╝ ██║ ██║██║ ██║ ██║ ██║ ║
║ ╚════██║██╔═██╗ ██║ ██║██║ ██║ ██║ ██║ ║
║ ███████║██║ ██╗╚██████╔╝███████╗██║ ╚██████╔╝ ║
║ ╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ║
╠════════════════════════════════════════════════════════╣
║ CROSS-PLATFORM AI SKILLS MANAGEMENT ║
╚════════════════════════════════════════════════════════╝

## Skulto란 무엇인가요?
Skulto는 33개 플랫폼에서 AI 코딩 어시스턴트 스킬을 관리하기 위한 크로스 플랫폼 CLI 도구입니다. 다음과 같은 기능을 제공합니다:
1. **멀티 플랫폼 설치** - Claude Code, Cursor, Windsurf, Copilot, Codex, Cline, Roo Code, Gemini CLI, Kiro CLI 등 25개 이상의 플랫폼에 스킬 설치
2. **저장소 관리** - 스킬 저장소 추가, 동기화, 제거
3. **전체 텍스트 검색** - 인덱싱된 모든 스킬에 대한 SQLite FTS5 기반 검색
4. **보안 스캔** - 프롬프트 인젝션 및 위험한 코드 패턴 탐지
5. **플랫폼 감지** - 시스템에 설치된 AI 도구를 자동으로 감지
6. **대화형 TUI** - Bubble Tea 기반 터미널 인터페이스로 접이식 그룹, 다중 선택, 키보드 내비게이션 지원
7. **URL 기반 설치** - `skulto install owner/repo`를 통해 GitHub 저장소에서 직접 설치
## 기능

- **33개 플랫폼 지원** - Claude Code, Cursor, Windsurf, GitHub Copilot, OpenAI Codex, OpenCode, Cline, Roo Code, Gemini CLI, Kiro CLI, Amp, Continue, Goose, Junie, Qwen Code, Trae 등
- **플랫폼 감지** - 설치된 AI 도구를 감지하여 플랫폼 선택 화면에 표시
- **오프라인 우선** - 초기 동기화 후 인터넷 없이도 작동
- **빠른 검색** - BM25 랭킹을 사용한 FTS5 기반 전체 텍스트 검색(약 50ms 지연 시간)
- **Git 기반 동기화** - 안정적인 업데이트를 위한 저장소 클론 및 풀
- **보안 스캐너** - 프론트매터, 참조, 스크립트 및 위험한 패턴에서 프롬프트 인젝션을 위협 수준과 함께 탐지
- **스마트 멀티 스킬 설치** - 저장소 URL에서 여러 스킬을 설치하고 스킬별 충돌 해결 지원(이미 설치된 항목 건너뛰기, 새 위치 추가, 모두 건너뛰기)
- **범위 선택** - 스킬을 전역(`~/`) 또는 프로젝트별(`./`)로 설치하고 플랫폼별로 개별 제어
- **접이식 플랫폼 그룹** - 감지/선호 플랫폼을 상단에 표시하고, 나머지는 모든 선택 화면에서 접힌 그룹으로 표시
- **설치 위치 기억** - 향후 설치를 위해 플랫폼/범위 선택을 선택적으로 기억
- **즐겨찾기** - 데이터베이스 초기화 후에도 유지되는 즐겨찾기 스킬 저장
- **최근 본 항목** - 최근에 본 스킬을 추적하고 표시
- **MCP 서버** - AI 도구 통합을 위한 Model Context Protocol 서버(스킬 검색, 설치, 프로그래밍 방식 관리)
- **텔레메트리** - 익명 사용 통계(설정에서 환경 변수로 비활성화 가능)
### 지원 플랫폼
Skulto는 33개의 AI 코딩 도구에 스킬을 감지하고 설치합니다:
| | | | |
|---|---|---|---|
| Claude Code | Cursor | Windsurf | GitHub Copilot |
| OpenAI Codex | OpenCode | Cline | Roo Code |
| Gemini CLI | Kiro CLI | Amp | Continue |
| Goose | Junie | Kilo Code | Trae |
| Qwen Code | Kimi Code CLI | CodeBuddy | Command Code |
| Crush | Droid | Kode | MCPJam |
| Mux | OpenHands | Pi | Qoder |
| Zencoder | Neovate | Pochi | Antigravity |
| Moltbot | | | |
## 설치
### Homebrew```bash
brew install asteroid-belt/tap/skulto
업그레이드하려면:```bash brew upgrade asteroid-belt/tap/skulto
### Linux 패키지
GitHub 릴리스는 `amd64` 및 `arm64`용 `.deb` 및 `.rpm` 다운로드를 제공합니다.
배포판에 맞는 패키지 형식을 선택하고 아래 버전을 릴리스 태그로 바꾸세요:```bash
VERSION=vX.Y.Z
ARCH=amd64 # or arm64
# Debian/Ubuntu
curl -LO "https://github.com/asteroid-belt/skulto/releases/download/${VERSION}/skulto_${VERSION#v}_linux_${ARCH}.deb"
# Fedora/RHEL/openSUSE
curl -LO "https://github.com/asteroid-belt/skulto/releases/download/${VERSION}/skulto-${VERSION#v}-1.$([ "$ARCH" = amd64 ] && echo x86_64 || echo aarch64).rpm"
# Download the release checksums, then verify the downloaded asset.
curl -LO "https://github.com/asteroid-belt/skulto/releases/download/${VERSION}/checksums.txt"
sha256sum -c checksums.txt --ignore-missing
배포판의 패키지 관리자로 로컬 파일을 설치하세요:```bash sudo apt install ./skulto_.deb sudo dnf install ./skulto-.rpm sudo zypper install ./skulto-*.rpm
각 패키지는 `skulto`와 `skulto-mcp`를 `/usr/bin/skulto` 및
`/usr/bin/skulto-mcp`에 설치합니다. Skulto는 런타임 시 시스템 Git을 요구하지 않습니다. 이들은 구성된 패키지 저장소가 아닌 GitHub Release 다운로드입니다.
### 소스에서```bash
# Clone the repository
git clone https://github.com/asteroid-belt/skulto.git
cd skulto
# Install dependencies
make deps
# Build (outputs to ./build/)
make build-all
# Run
./build/skulto
GITHUB_TOKENskulto
skulto install asteroid-belt/skills
첫 실행 시 Skulto가 온보딩 과정을 안내합니다:
1. **플랫폼 선택** - 감지된 AI 도구가 상단에 표시됩니다. 스킬을 동기화할 플랫폼을 선택하세요.
2. **스킬 선택** - Asteroid Belt에서 제공하는 큐레이션된 시작용 스킬(superplan, superbuild, teach, agentsmd-generator 등)을 선택합니다.
3. **위치 선택기** - 플랫폼별로 전역 또는 프로젝트 범위를 선택하며, 이전 선택 항목이 미리 채워져 있습니다.
## 팀을 위한 스킬 관리
Skulto는 AI 에이전트 스킬을 위한 패키지 관리자처럼 작동합니다. `skulto.json`을 사용하여 프로젝트에 필요한 스킬을 정의한 다음 `skulto sync`로 설치하면 모든 개발자와 CI 환경이 동일한 스킬 구성을 갖게 됩니다.
### 워크플로우```bash
# 1. Install skills into your project
skulto install superplan
skulto install teach
# 2. Save project skills to a manifest
skulto save
# 3. Commit skulto.json to your repo
git add skulto.json
git commit -m "add skulto skill manifest"
# 4. Teammates (or CI) sync from the manifest
skulto sync
skulto.json매니페스트는 프로젝트가 의존하는 스킬과 해당 스킬의 출처를 추적합니다:```json { "version": 1, "skills": { "superplan": "asteroid-belt/skills", "teach": "asteroid-belt/skills", "resume-ats-optimizer": "paramchoudhary/resumeskills" } }
각 항목은 스킬 슬러그를 해당 소스 저장소(`owner/repo`)에 매핑합니다. 팀원이 `skulto sync`를 실행하면 Skulto는 누락된 저장소를 클론하고, 스킬을 해석한 뒤 선택한 플랫폼에 설치합니다.
### `skulto save`
현재 프로젝트 범위의 설치 항목을 `skulto.json`에 저장합니다:```bash
$ skulto save
SAVED to skulto.json
teach asteroid-belt/skills
superplan asteroid-belt/skills
2 skill(s) saved
프로젝트 범위 설치만 저장됩니다 — 전역 설치는 개인적인 것이며 매니페스트를 통해 공유되지 않습니다.
skulto syncskulto.json을 읽고 누락된 스킬을 설치합니다:```bash
$ skulto sync
SYNCING from skulto.json (2 skills) ──────────────────────────────────────────────── Done! Installed: 2, Skipped: 0
동기화 시, Skulto는:
1. 로컬 데이터베이스에 아직 없는 소스 저장소를 추가합니다
2. 각 스킬을 슬러그(slug)로 확인합니다
3. 플랫폼 및 범위 선택을 요청합니다(`-y` 사용 시 감지된 기본값 사용)
4. 선택한 위치에 이미 설치된 스킬은 건너뜁니다
### `skulto check`
설치된 모든 스킬과 설치 위치를 표시합니다:```bash
$ skulto check
SKILL INSTALLED LOCATIONS
─────────────────────────────────────────────────────────────
superplan claude (global), codex (global + project)
teach claude (global + project)
2 skill(s) installed
skulto save와 skulto check는 모두 디스크에 존재하지만(프로젝트의 플랫폼 디렉터리에 있는 심볼릭 링크로) 데이터베이스에는 없는 스킬을 자동으로 감지합니다. 이는 마이그레이션, 데이터베이스 초기화 후, 또는 팀원이 Skulto 외부에서 스킬을 설치할 때 발생합니다.```bash
$ skulto check
RECONCILED 2 project skill(s) brainstorming claude modern-python codex
SKILL INSTALLED LOCATIONS ───────────────────────────────────────────────────────────── brainstorming claude (project) modern-python codex (project)
2 skill(s) installed
프로젝트의 일반 디렉터리(리포지토리에 직접 커밋된 스킬)는 그대로 둡니다 — Skulto 관리가 필요하지 않습니다.
## 사용법
### TUI 모드(기본값)```bash
skulto

키 바인딩:
| 키 | 동작 |
|---|---|
/ | 검색 열기 |
j / k | 아래 / 위로 이동 |
h / l | 왼쪽 / 오른쪽으로 이동 (열 사이) |
↑ / ↓ | 결과 탐색 |
Enter | 선택 / 확인 |
Space | 선택 토글 (선택기에서) |
f | 즐겨찾기 / 북마크 토글 |
i | 스킬 위치 설치 / 관리 |
c | 스킬 콘텐츠를 클립보드에 복사 |
p | 저장소 풀 / 동기화 |
Esc | 뒤로 / 취소 |
q | 종료 |
홈 화면에는 세 개의 열이 표시됩니다:
스킬을 선택하면 다음이 표시됩니다:
c를 눌러 전체 스킬 콘텐츠 복사스킬을 설치할 때 설치 위치를 선택합니다:
~/.claude/skills/ (사용자 전체) 또는 ./.claude/skills/ (프로젝트 로컬)에 설치a 모두, n 없음, g 전역만, p 프로젝트만설치된 스킬에서 i를 눌러 해당 위치를 관리합니다:

Skulto는 스크립팅 및 자동화를 위한 CLI 하위 명령어를 제공합니다:
| 명령어 | 용도 |
|---|---|
skulto | 대화형 TUI 실행 |
skulto install <slug or repo> | 슬러그 또는 저장소 URL로 스킬 설치 |
skulto uninstall <slug> | 선택한 플랫폼에서 스킬 제거 |
skulto save | 프로젝트 범위 설치를 skulto.json에 저장 |
skulto sync | skulto.json 매니페스트에서 모든 스킬 설치 |
skulto check | 설치된 모든 스킬과 해당 위치 나열 |
skulto add <repo> | 스킬 저장소 추가 및 해당 스킬 동기화 |
skulto list | 구성된 모든 소스 저장소 나열 |
skulto pull | 모든 저장소 풀/동기화 및 설치된 스킬 조정 |
skulto remove [repo] | 저장소 제거 (저장소 미지정 시 대화형 선택) |
skulto scan | 보안 위협에 대한 스킬 스캔 |
skulto update | 변경 보고와 함께 풀 + 스캔 |
skulto info <slug> | 스킬에 대한 상세 정보 표시 |
skulto favorites add <slug> | 스킬을 즐겨찾기에 추가 |
skulto favorites remove <slug> | 스킬을 즐겨찾기에서 제거 |
skulto favorites list | 즐겨찾기된 모든 스킬 나열 |
skulto feedback | 피드백/버그 신고 페이지 열기 |
skulto install슬러그 또는 GitHub 저장소에서 직접 스킬 설치:
```bash
skulto install superplan
skulto install asteroid-belt/skills
skulto install https://github.com/asteroid-belt/skills
skulto install asteroid-belt/skills -y
When installing from a repository URL:
1. Skulto syncs the repository and presents all available skills
2. Select which skills to install with an interactive checklist
3. Choose target platforms with a collapsible platform chooser (detected platforms at top)
4. **Smart skip** for already-installed skills: prompted with `y` (add locations), `N` (skip, default), or `s` (skip all remaining)
5. Final summary shows installed, skipped, and failed counts
#### `skulto add <repo>`
Add a skill repository to Skulto:
```bash
# Short format
skulto add asteroid-belt/skills
# Full URL
skulto add https://github.com/asteroid-belt/skills
# Skip initial sync
skulto add asteroid-belt/skills --no-sync
skulto pull등록된 모든 저장소를 동기화합니다:
```bash
skulto pull
이 명령은 모든 저장소를 클론/업데이트하고 설치된 스킬 상태를 파일 시스템과 조정합니다.
#### `skulto remove`
저장소와 해당 스킬을 모두 제거합니다:```bash
# Interactive selection
skulto remove
# Specify repository
skulto remove asteroid-belt/skills
# Skip confirmation
skulto remove asteroid-belt/skills --force
skulto scan보안 위협에 대해 스킬을 스캔합니다:
```bash
skulto scan --all
skulto scan --skill teach
skulto scan --source asteroid-belt/skills
skulto scan --pending
위협 수준 보고: CRITICAL, HIGH, MEDIUM, LOW
#### `skulto update`
보고 기능을 포함한 결합된 pull + 스캔:
```bash
# Update and scan new/updated skills
skulto update
# Update and scan ALL skills
skulto update --scan-all
skulto favorites즐겨찾는 스킬을 관리합니다. 즐겨찾기는 데이터베이스 초기화 후에도 유지되며, ~/.agents/skulto/favorites.json에 별도로 저장됩니다.```bash
skulto favorites add docker-expert
skulto favorites remove docker-expert
skulto favorites list
TUI에서 스킬 상세 보기에서 `f`를 눌러 즐겨찾기를 전환할 수도 있습니다.
### MCP 서버 (`skulto-mcp`)
Skulto에는 스킬을 Claude Code 및 기타 MCP 호환 클라이언트에 노출하는 MCP(Model Context Protocol) 서버가 포함되어 있습니다. 이를 통해 AI 어시스턴트가 스킬과 저장소를 프로그래밍 방식으로 검색, 탐색, 설치 및 관리할 수 있습니다.


Claude Code 설정(`.claude.json`)에 추가하세요:```json
{
"mcpServers": {
"skulto": {
"command": "/opt/homebrew/bin/skulto-mcp",
"type": "stdio"
}
}
}
| 도구 | 설명 |
|---|---|
skulto_search | BM25 랭킹을 사용한 전문 검색으로 스킬 검색 |
skulto_get_skill | 전체 콘텐츠와 태그를 포함한 스킬의 상세 정보 가져오기 |
skulto_list_skills | 페이지네이션으로 모든 스킬 나열 |
skulto_browse_tags | 카테고리별(언어, 프레임워크, 도구, 개념, 도메인) 사용 가능한 태그 나열 |
skulto_get_stats | 데이터베이스 통계 가져오기(총 스킬, 태그, 소스) |
skulto_get_recent | 최근에 본 스킬 가져오기 |
skulto_install | 지원되는 모든 플랫폼(33개 플랫폼, 전역 또는 프로젝트 범위)에 스킬 설치 |
skulto_uninstall | 지정된 플랫폼에서 스킬 제거 |
skulto_favorite | 즐겨찾기에 스킬 추가 또는 제거 |
skulto_get_favorites | 즐겨찾기한 스킬 가져오기 |
skulto_check | 설치된 모든 스킬과 설치 위치 나열 |
skulto_add | 스킬 저장소 추가 및 해당 스킬 동기화 |
MCP 서버는 스킬에 직접 접근할 수 있는 리소스도 제공합니다:
| 리소스 URI | 설명 |
|---|---|
skulto://skill/{slug} | 스킬의 전체 마크다운 콘텐츠 |
skulto://skill/{slug}/metadata | 태그, 소스, 통계를 포함한 JSON 메타데이터 |
Skulto는 데이터를 ~/.agents/skulto/에 저장하며, 공유 ~/.agents/ 네임스페이스 아래에서 다른 에이전트 도구와 함께 존재합니다:
| 경로 | 용도 |
|---|---|
~/.agents/skulto/skulto.db | SQLite 데이터베이스 |
~/.agents/skulto/skulto.log | 로그 파일 |
~/.agents/skulto/repositories/ | 복제된 git 저장소 |
~/.agents/skulto/skills/ | 사용자의 로컬 스킬 디렉터리 |
~/.agents/skulto/favorites.json | 즐겨찾기한 스킬(DB 재설정 후에도 유지됨) |
이전 버전에서 업그레이드하시나요? 기존
~/.skulto/디렉터리가 있는 경우, Skulto는 첫 실행 시 데이터베이스 레코드와 설치된 스킬 심볼릭 링크를 포함하여 자동으로~/.agents/skulto/로 마이그레이션합니다. 수동 단계는 필요하지 않습니다.
make build # Production build make dev # Development build with race detector
make test # Run all tests with coverage make test-race # Run with race detector
make lint # Run golangci-lint make format # Format code
make clean # Remove build artifacts
## 아키텍처```
skulto/
├── cmd/skulto/ # Main CLI entry point
├── cmd/skulto-mcp/ # MCP server binary
├── internal/
│ ├── cli/ # Cobra CLI commands (add, install, pull, etc.)
│ │ └── prompts/ # Interactive CLI prompts (platform selector)
│ ├── config/ # Configuration (env vars only)
│ ├── db/ # GORM + SQLite + FTS5 database layer
│ ├── detect/ # AI tool detection on system
│ ├── embedding/ # Embedding provider abstraction
│ ├── favorites/ # File-based favorites persistence
│ ├── installer/ # Skill installation via symlinks (33 platforms)
│ ├── llm/ # LLM provider abstraction
│ ├── log/ # Structured logging
│ ├── mcp/ # MCP server implementation
│ ├── migration/ # Database migrations
│ ├── models/ # Data structures (Skill, Tag, Source, etc.)
│ ├── scraper/ # GitHub scraping (git clone based)
│ ├── search/ # Search service
│ ├── security/ # Security scanner for skills
│ ├── telemetry/ # PostHog analytics (opt-in)
│ ├── testutil/ # Test utilities
│ ├── tui/ # Bubble Tea TUI
│ │ ├── components/ # Reusable UI components (dialogs, selectors)
│ │ └── views/ # Screen views (home, search, detail, onboarding, manage)
│ └── vector/ # Vector store
├── pkg/version/ # Version info (set via ldflags)
└── scripts/ # Build and release scripts
Skulto는 구성 파일 없이 전적으로 환경 변수를 통해 구성됩니다:
| 변수 | 용도 |
|---|---|
GITHUB_TOKEN | 더 높은 GitHub API 요청 한도 (선택 사항) |
OPENAI_API_KEY | 의미 검색을 위한 임베딩 (선택 사항) |
SKULTO_TELEMETRY_TRACKING_ENABLED | false로 설정하면 텔레메트리를 비활성화합니다 |
Skulto는 도구 개선을 위해 익명 사용 통계(명령 빈도, 오류율)를 수집합니다. 텔레메트리는 기본적으로 활성화되어 있습니다.
비활성화하려면:```bash export SKULTO_TELEMETRY_TRACKING_ENABLED=false
개인 데이터나 IP 주소는 수집되지 않습니다. 자세한 내용은 [events](https://github.com/asteroid-belt/skulto/blob/main/internal/telemetry/events.go)를 참조하세요.
## 문서
- [개요](https://github.com/asteroid-belt/skulto/blob/main/docs/overview.md) - 프로젝트 정체성 및 주요 기능
- [아키텍처](https://github.com/asteroid-belt/skulto/blob/main/docs/architecture.md) - 시스템 설계, 구성 요소 및 데이터 흐름
- [시작하기](https://github.com/asteroid-belt/skulto/blob/main/docs/getting-started.md) - 사전 요구 사항, 설치 및 첫 실행
- [개발](https://github.com/asteroid-belt/skulto/blob/main/docs/development.md) - 기여 워크플로우, 테스트 및 CI/CD
- [아키텍처 결정 기록](https://github.com/asteroid-belt/skulto/blob/main/docs/adr/README.md) - 주요 기술 결정 및 근거
- [용어집](https://github.com/asteroid-belt/skulto/blob/main/docs/glossary.md) - 도메인 용어
## 기여
기여는 언제나 환영합니다! 먼저 [CONTRIBUTING.md](https://github.com/asteroid-belt/skulto/blob/main/CONTRIBUTING.md)를 읽어주세요.
## 라이선스
MIT 라이선스 - 자세한 내용은 [LICENSE](https://github.com/asteroid-belt/skulto/blob/main/LICENSE)를 참조하세요.
---
[Asteroid Belt](https://github.com/asteroid-belt)가 ❤️로 제작했습니다.