在安装 AI 智能体技能之前,扫描其中的提示注入风险
```
╔════════════════════════════════════════════════════════╗
║ ███████╗██╗ ██╗██╗ ██╗██╗ ████████╗ ██████╗ ║
║ ██╔════╝██║ ██╔╝██║ ██║██║ ╚══██╔══╝██╔═══██╗ ║
║ ███████╗█████╔╝ ██║ ██║██║ ██║ ██║ ██║ ║
║ ╚════██║██╔═██╗ ██║ ██║██║ ██║ ██║ ██║ ║
║ ███████║██║ ██╗╚██████╔╝███████╗██║ ╚██████╔╝ ║
║ ╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ║
╠════════════════════════════════════════════════════════╣
║ CROSS-PLATFORM AI SKILLS MANAGEMENT ║
╚════════════════════════════════════════════════════════╝

## 什么是 Skulto?
Skulto 是一款跨平台 CLI 工具,用于在 33 个平台上管理 AI 编程助手技能。它提供:
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 工具并在平台选择器中显示
- **离线优先** - 初始同步后无需联网即可使用
- **快速搜索** - 基于 FTS5 的全文搜索,采用 BM25 排序(约 50ms 延迟)
- **基于 Git 的同步** - 克隆和拉取仓库以获得可靠的更新
- **安全扫描器** - 检测 frontmatter、引用、脚本中的提示注入及危险模式,并标注威胁等级
- **智能多技能安装** - 从仓库 URL 安装多个技能,支持逐技能冲突解决(跳过已安装的、添加新位置或全部跳过)
- **作用域选择** - 全局(`~/`)或按项目(`./`)安装技能,每个平台可单独控制
- **可折叠平台分组** - 已检测/首选平台置顶,其他所有平台在所有选择器中折叠显示
- **安装位置记忆** - 可选择记住平台/作用域选择,便于后续安装
- **收藏夹** - 保存收藏的技能,数据库重置后依然保留
- **最近查看** - 跟踪并显示最近查看过的技能
- **MCP 服务器** - 用于 AI 工具集成的模型上下文协议服务器(可编程搜索、安装和管理技能)
- **遥测** - 匿名使用统计(可在设置中通过环境变量选择退出)
### 支持的平台
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 Releases 为 `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_TOKEN 用于更高的 API 速率限制skulto
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" } }
每个条目将技能 slug 映射到其源仓库(`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 sync读取 skulto.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

按键绑定:
主视图显示三列:
当您选择一个技能时,您将看到:
c 复制完整技能内容安装技能时,您可以选择安装位置:
~/.claude/skills/(用户级)或 ./.claude/skills/(项目级)a 全部,n 无,g 仅全局,p 仅项目在已安装技能上按 i 以管理其位置:

Skulto 提供 CLI 子命令,用于脚本编写和自动化:
skulto install按 slug 或直接从 GitHub 仓库安装技能:
```bash
skulto install superplan
skulto install asteroid-belt/skills
skulto install https://github.com/asteroid-belt/skills
skulto install asteroid-belt/skills -y
当从仓库 URL 安装时:
1. Skulto 会同步该仓库并展示所有可用的技能
2. 通过交互式复选框选择要安装哪些技能
3. 使用可折叠的平台选择器选择目标平台(已检测到的平台显示在顶部)
4. **智能跳过**已安装的技能:会提示输入 `y`(添加位置)、`N`(跳过,默认)或 `s`(跳过所有剩余项)
5. 最终摘要会显示已安装、已跳过和失败的数量
#### `skulto add <repo>`
向 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`
组合拉取与扫描并生成报告:
```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 包含一个 MCP(模型上下文协议)服务器,可将技能暴露给 Claude Code 及其他兼容 MCP 的客户端。这使得 AI 助手能够以编程方式搜索、浏览、安装和管理技能及仓库。


添加到您的 Claude Code 设置中(`.claude.json`):```json
{
"mcpServers": {
"skulto": {
"command": "/opt/homebrew/bin/skulto-mcp",
"type": "stdio"
}
}
}
MCP 服务器还提供用于直接访问技能的资源:
| 资源 URI | 描述 |
|---|---|
skulto://skill/{slug} | 技能的完整 Markdown 内容 |
skulto://skill/{slug}/metadata | JSON 元数据,包括标签、来源和统计信息 |
Skulto 将数据存储在 ~/.agents/skulto/ 中,与共享的 ~/.agents/ 命名空间下的其他代理工具共存:
从旧版本升级? 如果您已有
~/.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) 用 ❤️ 制作
| 按键 | 操作 |
|---|
/ | 打开搜索 |
j / k | 向下 / 向上导航 |
h / l | 向左 / 向右导航(列之间) |
↑ / ↓ | 导航结果 |
Enter | 选择 / 确认 |
Space | 切换选择(在选择器中) |
f | 切换收藏 / 书签 |
i | 安装 / 管理技能位置 |
c | 将技能内容复制到剪贴板 |
p | 拉取 / 同步仓库 |
Esc | 返回 / 取消 |
q | 退出 |
| 命令 | 用途 |
|---|
skulto | 启动交互式 TUI |
skulto install <slug 或仓库> | 按 slug 或从仓库 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_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 | 添加技能仓库并同步其技能 |
| 路径 | 用途 |
|---|
~/.agents/skulto/skulto.db | SQLite 数据库 |
~/.agents/skulto/skulto.log | 日志文件 |
~/.agents/skulto/repositories/ | 克隆的 git 仓库 |
~/.agents/skulto/skills/ | 用户的本地技能目录 |
~/.agents/skulto/favorites.json | 收藏的技能(在数据库重置后仍保留) |